2020DEFAULT_OPENOCD_TCL_PORT  =  6333 
2121DEFAULT_OPENOCD_TELNET_PORT  =  4444 
2222DEFAULT_OPENOCD_GDB_PORT  =  3333 
23- 
23+ DEFAULT_OPENOCD_RESET_HALT_CMD   =   'reset halt' 
2424
2525class  OpenOcdBinaryRunner (ZephyrBinaryRunner ):
2626    '''Runner front-end for openocd.''' 
2727
28-     def  __init__ (self , cfg , pre_init = None , pre_load = None ,
29-                  load_cmd = None , verify_cmd = None , post_verify = None ,
28+     def  __init__ (self , cfg , pre_init = None , reset_halt_cmd = DEFAULT_OPENOCD_RESET_HALT_CMD ,
29+                  pre_load = None ,  load_cmd = None , verify_cmd = None , post_verify = None ,
3030                 tui = None , config = None , serial = None , use_elf = None ,
3131                 no_halt = False ,
3232                 tcl_port = DEFAULT_OPENOCD_TCL_PORT ,
@@ -54,6 +54,7 @@ def __init__(self, cfg, pre_init=None, pre_load=None,
5454        # them to POSIX style just to be sure. 
5555        self .elf_name  =  Path (cfg .elf_file ).as_posix ()
5656        self .pre_init  =  pre_init  or  []
57+         self .reset_halt_cmd  =  reset_halt_cmd 
5758        self .pre_load  =  pre_load  or  []
5859        self .load_cmd  =  load_cmd 
5960        self .verify_cmd  =  verify_cmd 
@@ -84,6 +85,9 @@ def do_add_parser(cls, parser):
8485        parser .add_argument ('--cmd-pre-init' , action = 'append' ,
8586                            help = '''Command to run before calling init; 
8687                            may be given multiple times''' )
88+         parser .add_argument ('--cmd-reset-halt' , default = DEFAULT_OPENOCD_RESET_HALT_CMD ,
89+                             help = f'''Command to run for resetting and halting the target, 
90+                             defaults to "{ DEFAULT_OPENOCD_RESET_HALT_CMD }  )
8791        parser .add_argument ('--cmd-pre-load' , action = 'append' ,
8892                            help = '''Command to run before flashing; 
8993                            may be given multiple times''' )
@@ -113,7 +117,7 @@ def do_add_parser(cls, parser):
113117    def  do_create (cls , cfg , args ):
114118        return  OpenOcdBinaryRunner (
115119            cfg ,
116-             pre_init = args .cmd_pre_init ,
120+             pre_init = args .cmd_pre_init ,  reset_halt_cmd = args . cmd_reset_halt , 
117121            pre_load = args .cmd_pre_load , load_cmd = args .cmd_load ,
118122            verify_cmd = args .cmd_verify , post_verify = args .cmd_post_verify ,
119123            tui = args .tui , config = args .config , serial = args .serial ,
@@ -214,9 +218,9 @@ def do_flash(self, **kwargs):
214218        cmd  =  (self .openocd_cmd  +  self .serial  +  self .cfg_cmd  + 
215219               pre_init_cmd  +  ['-c' , 'init' ,
216220                                '-c' , 'targets' ] + 
217-                pre_load_cmd  +  ['-c' , 'reset halt' ,
221+                pre_load_cmd  +  ['-c' , self . reset_halt_cmd ,
218222                                '-c' , self .load_cmd  +  ' '  +  hex_name ,
219-                                 '-c' , 'reset halt' ] + 
223+                                 '-c' , self . reset_halt_cmd ] + 
220224               ['-c' , self .verify_cmd  +  ' '  +  hex_name ] + 
221225               post_verify_cmd  + 
222226               ['-c' , 'reset run' ,
@@ -240,7 +244,7 @@ def do_flash_elf(self, **kwargs):
240244        cmd  =  (self .openocd_cmd  +  self .serial  +  self .cfg_cmd  + 
241245                      pre_init_cmd  +  ['-c' , 'init' ,
242246                                       '-c' , 'targets' ,
243-                                        '-c' , 'reset halt' ,
247+                                        '-c' , self . reset_halt_cmd ,
244248                                       '-c' , 'load_image '  +  self .elf_name ,
245249                                       '-c' , 'resume '  +  ep_addr ,
246250                                       '-c' , 'shutdown' ])
@@ -288,6 +292,6 @@ def do_debugserver(self, **kwargs):
288292                '-c' , 'gdb_port {}' .format (self .gdb_port )] + 
289293               pre_init_cmd  +  ['-c' , 'init' ,
290294                                '-c' , 'targets' ,
291-                                 '-c' , 'reset halt' ])
295+                                 '-c' , self . reset_halt_cmd ])
292296        self .print_gdbserver_message ()
293297        self .check_call (cmd )
0 commit comments