1717from os import makedirs
1818from os .path import isdir , join
1919
20- from SCons .Script import (COMMAND_LINE_TARGETS , AlwaysBuild , Builder , Default ,
21- DefaultEnvironment )
20+ from SCons .Script import (ARGUMENTS , COMMAND_LINE_TARGETS , AlwaysBuild ,
21+ Builder , Default , DefaultEnvironment )
2222
2323env = DefaultEnvironment ()
2424platform = env .PioPlatform ()
25+ board = env .BoardConfig ()
2526
2627env .Replace (
2728 AR = "arm-none-eabi-ar" ,
8384
8485target_elf = None
8586if "nobuild" in COMMAND_LINE_TARGETS :
87+ target_elf = join ("$BUILD_DIR" , "${PROGNAME}.elf" )
8688 target_firm = join ("$BUILD_DIR" , "${PROGNAME}.bin" )
8789else :
8890 target_elf = env .BuildProgram ()
@@ -122,7 +124,7 @@ def _jlink_cmd_script(env, source):
122124 script_path = join (build_dir , "upload.jlink" )
123125 commands = [
124126 "h" ,
125- "loadbin %s, %s" % (source , env . BoardConfig () .get (
127+ "loadbin %s, %s" % (source , board .get (
126128 "upload.offset_address" , "0x0" )),
127129 "r" ,
128130 "q"
@@ -135,7 +137,7 @@ def _jlink_cmd_script(env, source):
135137 __jlink_cmd_script = _jlink_cmd_script ,
136138 UPLOADER = "JLink.exe" if system () == "Windows" else "JLinkExe" ,
137139 UPLOADERFLAGS = [
138- "-device" , env . BoardConfig () .get ("debug" , {}).get ("jlink_device" ),
140+ "-device" , board .get ("debug" , {}).get ("jlink_device" ),
139141 "-speed" , "4000" ,
140142 "-if" , ("jtag" if upload_protocol == "jlink-jtag" else "swd" ),
141143 "-autoconnect" , "1"
@@ -166,7 +168,7 @@ def _jlink_cmd_script(env, source):
166168 ]
167169
168170elif upload_protocol == "cmsis-dap" :
169- debug_server = env . BoardConfig () .get ("debug.tools" , {}).get (
171+ debug_server = board .get ("debug.tools" , {}).get (
170172 upload_protocol , {}).get ("server" )
171173 assert debug_server
172174
@@ -178,16 +180,23 @@ def _jlink_cmd_script(env, source):
178180 UPLOADCMD = '"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS $SOURCE'
179181 )
180182 elif debug_server .get ("package" ) == "tool-openocd" :
183+ openocd_args = [
184+ "-d%d" % (2 if int (ARGUMENTS .get ("PIOVERBOSE" , 0 )) else 1 )
185+ ]
186+ openocd_args .extend (debug_server .get ("arguments" , []))
187+ openocd_args .extend ([
188+ "-c" , "program {$SOURCE} %s verify reset; shutdown;" %
189+ board .get ("upload.offset_address" , "" )
190+ ])
191+ openocd_args = [
192+ f .replace ("$PACKAGE_DIR" ,
193+ platform .get_package_dir ("tool-openocd" ) or "" )
194+ for f in openocd_args
195+ ]
181196 env .Replace (
182197 UPLOADER = "openocd" ,
183- UPLOADERFLAGS = ["-s" , platform .get_package_dir ("tool-openocd" ) or "" ] +
184- debug_tools .get (upload_protocol ).get ("server" ).get ("arguments" , []) + [
185- "-c" ,
186- "program {$SOURCE} verify reset %s; shutdown;" %
187- env .BoardConfig ().get ("upload.offset_address" , "" )
188- ],
189- UPLOADCMD = "$UPLOADER $UPLOADERFLAGS"
190- )
198+ UPLOADERFLAGS = openocd_args ,
199+ UPLOADCMD = "$UPLOADER $UPLOADERFLAGS" )
191200 upload_actions = [
192201 env .VerboseAction ("$UPLOADCMD" , "Uploading $SOURCE" )
193202 ]
0 commit comments