try: import configparser except ImportError: import ConfigParser as configparser import os Import("env", "projenv") # access to global build environment print(env) # access to project build environment (is used source files in "src" folder) print(projenv) config = configparser.ConfigParser() config.read("platformio.ini") #com_port = config.get("env:STM32F103RC_meeb", "upload_port") #print('Use the {0:s} to reboot the board to dfu mode.'.format(com_port)) # # Upload actions # def before_upload(source, target, env): print("before_upload") # do some actions # use com_port # env.Execute("pwd") def after_upload(source, target, env): print("after_upload") # do some actions # # env.Execute("pwd") print("Current build targets", map(str, BUILD_TARGETS)) env.AddPreAction("upload", before_upload) env.AddPostAction("upload", after_upload) flash_size = 0 vect_tab_addr = 0 for define in env['CPPDEFINES']: if define[0] == "VECT_TAB_ADDR": vect_tab_addr = define[1] if define[0] == "STM32_FLASH_SIZE": flash_size = define[1] print('Use the {0:s} address as the marlin app entry point.'.format(vect_tab_addr)) print('Use the {0:d}KB flash version of stm32f103rct6 chip.'.format(flash_size)) custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/STM32F103RC_MEEB_3DP.ld") for i, flag in enumerate(env["LINKFLAGS"]): if "-Wl,-T" in flag: env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script elif flag == "-T": env["LINKFLAGS"][i + 1] = custom_ld_script