@@ -116,22 +116,30 @@ class RTTHelper:
116116 Helper to start rtt. Takes arguments from user
117117 """
118118
119- def __init__ (self , default_cfg , default_search_base , default_search_range ):
119+ def __init__ (
120+ self ,
121+ cfg ,
122+ search_base ,
123+ search_range ,
124+ openocd = DEFAULT_SYSROOT / "usr" / "bin" / "openocd" ,
125+ rtt_port = DEFAULT_RTT_PORT ,
126+ search_dir = DEFAULT_SYSROOT / "usr" / "share" / "openocd" / "scripts" ,
127+ ):
120128 """
121129 Inits the RTT helper with default values
122- @param default_cfg: default config to use for openocd
123- @param default_search_base: default search base for RTT
124- @param default_search_range: default search range for RTT
130+ @param cfg: default config to use for openocd
131+ @param search_base: default search base for RTT
132+ @param search_range: default search range for RTT
133+ @param openocd: default value for openocd executable
134+ @param rtt_port: default port to use for rtt
135+ @param search_dir: default directory for search
125136 """
126- self ._default_cfg = default_cfg
127- self ._default_search_base = default_search_base
128- self ._default_search_range = default_search_range
129- self ._openocd = None
130- self ._search_dir = None
131- self ._cfg = None
132- self ._rtt_port = None
133- self ._search_base = None
134- self ._search_range = None
137+ self ._cfg = cfg
138+ self ._search_base = search_base
139+ self ._search_range = search_range
140+ self ._openocd = openocd
141+ self ._rtt_port = rtt_port
142+ self ._search_dir = search_dir
135143
136144 def parse_args (self ):
137145 """
@@ -144,42 +152,42 @@ def parse_args(self):
144152 "-c" ,
145153 "--config" ,
146154 type = Path ,
147- default = self ._default_cfg ,
155+ default = self ._cfg ,
148156 help = "OpenOCD config file to use" ,
149157 )
150158 parser .add_argument (
151159 "-a" ,
152160 "--search_base" ,
153161 type = int ,
154- default = self ._default_search_base ,
162+ default = self ._search_base ,
155163 help = "Base address to search for RTT block" ,
156164 )
157165 parser .add_argument (
158166 "-r" ,
159167 "--search_range" ,
160168 type = int ,
161- default = self ._default_search_range ,
169+ default = self ._search_range ,
162170 help = "Range to search for RTT block" ,
163171 )
164172 parser .add_argument (
165173 "-p" ,
166174 "--rtt_port" ,
167175 type = int ,
168- default = DEFAULT_RTT_PORT ,
176+ default = self . _rtt_port ,
169177 help = "Port to use for RTT server" ,
170178 )
171179 parser .add_argument (
172180 "-o" ,
173181 "--openocd" ,
174- default = DEFAULT_SYSROOT / "usr" / "bin" / "openocd" ,
182+ default = self . _openocd ,
175183 help = "Path to OpenOCD executable" ,
176184 metavar = "FILE" ,
177185 type = Path ,
178186 )
179187 parser .add_argument (
180188 "-s" ,
181189 "--search_dir" ,
182- default = DEFAULT_SYSROOT / "usr" / "share" / "openocd" / "scripts" ,
190+ default = self . _search_dir ,
183191 help = "Path to OpenOCD search directory" ,
184192 )
185193 parser .add_argument (
@@ -296,5 +304,8 @@ def dump_rtt_data(self):
296304 except socket .timeout :
297305 # No data was sent within 0.5 seconds, close connection
298306 break
307+ except UnicodeDecodeError :
308+ print ("Invalid byte" )
309+ break
299310 sock .close ()
300311 openocd .stop_openocd_server ()
0 commit comments