Rename, clean up boards/variants (#21655)
* Consolidate variant scripts * Rename Marlin-local boards * Simplify variants where possible * Rename variants * CHITU_F103 and MEEB_3DP: Maple platform `platformio-build-stm32f1.py` uses the 'board' name, not 'board_build.variant' so folder names match 'board' and not `board_build.variant`.
This commit is contained in:
		
							
								
								
									
										1
									
								
								.github/workflows/test-builds.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/test-builds.yml
									
									
									
									
										vendored
									
									
								
							| @@ -90,6 +90,7 @@ jobs: | |||||||
|         - NUCLEO_F767ZI |         - NUCLEO_F767ZI | ||||||
|         - REMRAM_V1 |         - REMRAM_V1 | ||||||
|         - BTT_SKR_SE_BX |         - BTT_SKR_SE_BX | ||||||
|  |         - chitu_f103 | ||||||
|  |  | ||||||
|         # Put lengthy tests last |         # Put lengthy tests last | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,65 +0,0 @@ | |||||||
| { |  | ||||||
|   "build": { |  | ||||||
|     "core": "stm32", |  | ||||||
|     "cpu": "cortex-m4", |  | ||||||
|     "extra_flags": "-DSTM32F407xx", |  | ||||||
|     "f_cpu": "168000000L", |  | ||||||
|     "hwids": [ |  | ||||||
|       [ |  | ||||||
|         "0x1EAF", |  | ||||||
|         "0x0003" |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         "0x0483", |  | ||||||
|         "0x3748" |  | ||||||
|       ] |  | ||||||
|     ], |  | ||||||
|     "mcu": "stm32f407zgt6", |  | ||||||
|     "variant": "LERDGE", |  | ||||||
|     "ldscript": "LERDGE.ld" |  | ||||||
|   }, |  | ||||||
|   "debug": { |  | ||||||
|     "jlink_device": "STM32F407ZG", |  | ||||||
|     "openocd_target": "stm32f4x", |  | ||||||
|     "svd_path": "STM32F40x.svd", |  | ||||||
|     "tools": { |  | ||||||
|       "stlink": { |  | ||||||
|         "server": { |  | ||||||
|           "arguments": [ |  | ||||||
|             "-f", |  | ||||||
|             "scripts/interface/stlink.cfg", |  | ||||||
|             "-c", |  | ||||||
|             "transport select hla_swd", |  | ||||||
|             "-f", |  | ||||||
|             "scripts/target/stm32f4x.cfg", |  | ||||||
|             "-c", |  | ||||||
|             "reset_config none" |  | ||||||
|           ], |  | ||||||
|           "executable": "bin/openocd", |  | ||||||
|           "package": "tool-openocd" |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   "frameworks": [ |  | ||||||
|     "arduino", |  | ||||||
|     "stm32cube" |  | ||||||
|   ], |  | ||||||
|   "name": "STM32F407ZGT6(192k RAM. 1024k Flash)", |  | ||||||
|   "upload": { |  | ||||||
|     "disable_flushing": false, |  | ||||||
|     "maximum_ram_size": 196608, |  | ||||||
|     "maximum_size": 1048576, |  | ||||||
|     "protocol": "stlink", |  | ||||||
|     "protocols": [ |  | ||||||
|       "stlink", |  | ||||||
|       "dfu", |  | ||||||
|       "jlink" |  | ||||||
|     ], |  | ||||||
|     "require_upload_port": true, |  | ||||||
|     "use_1200bps_touch": false, |  | ||||||
|     "wait_for_upload_port": false |  | ||||||
|   }, |  | ||||||
|   "url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f407ZG.html", |  | ||||||
|   "vendor": "Generic" |  | ||||||
| } |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| { |  | ||||||
|   "build": { |  | ||||||
|     "core": "arduino", |  | ||||||
|     "extra_flags": "-DARDUINO_AVR_MEGA2560", |  | ||||||
|     "f_cpu": "16000000L", |  | ||||||
|     "hwids": [ |  | ||||||
|       [ |  | ||||||
|         "0x27b2", |  | ||||||
|         "0x0002" |  | ||||||
|       ] |  | ||||||
|     ], |  | ||||||
|     "mcu": "atmega2560", |  | ||||||
|     "variant": "fysetcf6" |  | ||||||
|   }, |  | ||||||
|   "debug": { |  | ||||||
|     "simavr_target": "atmega2560", |  | ||||||
|     "avr-stub": { |  | ||||||
|       "speed": 115200 |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   "frameworks": [ |  | ||||||
|     "arduino" |  | ||||||
|   ], |  | ||||||
|   "name": "FYSETC F6", |  | ||||||
|   "upload": { |  | ||||||
|     "maximum_ram_size": 8192, |  | ||||||
|     "maximum_size": 258048, |  | ||||||
|     "protocol": "wiring", |  | ||||||
|     "require_upload_port": true, |  | ||||||
|     "speed": 115200 |  | ||||||
|   }, |  | ||||||
|   "url": "https://www.fysetc.com/", |  | ||||||
|   "vendor": "FYSETC" |  | ||||||
| } |  | ||||||
| @@ -5,7 +5,7 @@ | |||||||
|     "extra_flags": "-DSTM32H743xx", |     "extra_flags": "-DSTM32H743xx", | ||||||
|     "f_cpu": "400000000L", |     "f_cpu": "400000000L", | ||||||
|     "mcu": "stm32h743iit6", |     "mcu": "stm32h743iit6", | ||||||
|     "variant": "BTT_SKR_SE_BX" |     "variant": "MARLIN_BTT_SKR_SE_BX" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32H743II", |     "jlink_device": "STM32H743II", | ||||||
| @@ -15,7 +15,7 @@ | |||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "mcu": "stm32f407vgt6", |     "mcu": "stm32f407vgt6", | ||||||
|     "variant": "BIGTREE_BTT002" |     "variant": "MARLIN_BIGTREE_BTT002" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F407VG", |     "jlink_device": "STM32F407VG", | ||||||
| @@ -15,7 +15,7 @@ | |||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "mcu": "stm32f407zgt6", |     "mcu": "stm32f407zgt6", | ||||||
|     "variant": "BIGTREE_GTR_V1" |     "variant": "MARLIN_BIGTREE_GTR_V1" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F407ZG", |     "jlink_device": "STM32F407ZG", | ||||||
| @@ -15,7 +15,7 @@ | |||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "mcu": "stm32f407zgt6", |     "mcu": "stm32f407zgt6", | ||||||
|     "variant": "BIGTREE_SKR_PRO_1v1" |     "variant": "MARLIN_BIGTREE_SKR_PRO_11" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F407ZG", |     "jlink_device": "STM32F407ZG", | ||||||
| @@ -15,8 +15,7 @@ | |||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "mcu": "stm32f103zet6", |     "mcu": "stm32f103zet6", | ||||||
|     "variant": "CHITU_F103", |     "variant": "marlin_CHITU_F103" | ||||||
|     "ldscript": "chitu_f103.ld" |  | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F103ZE", |     "jlink_device": "STM32F103ZE", | ||||||
| @@ -16,7 +16,7 @@ | |||||||
|     ], |     ], | ||||||
|     "ldscript": "stm32f401rc.ld", |     "ldscript": "stm32f401rc.ld", | ||||||
|     "mcu": "stm32f401rct6", |     "mcu": "stm32f401rct6", | ||||||
|     "variant": "FYSETC_CHEETAH_V20" |     "variant": "MARLIN_FYSETC_CHEETAH_V20" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F401RC", |     "jlink_device": "STM32F401RC", | ||||||
| @@ -18,7 +18,7 @@ | |||||||
|       "ldscript": "stm32f103xc.ld" |       "ldscript": "stm32f103xc.ld" | ||||||
|     }, |     }, | ||||||
|     "mcu": "stm32f103rct6", |     "mcu": "stm32f103rct6", | ||||||
|     "variant": "MEEB_3DP" |     "variant": "marlin_MEEB_3DP" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F103RC", |     "jlink_device": "STM32F103RC", | ||||||
| @@ -14,9 +14,8 @@ | |||||||
|         "0x3748" |         "0x3748" | ||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "ldscript": "stm32f401xe.ld", |  | ||||||
|     "mcu": "stm32f401vet6", |     "mcu": "stm32f401vet6", | ||||||
|     "variant": "STEVAL_F401VE" |     "variant": "MARLIN_STEVAL_F401VE" | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F401VE", |     "jlink_device": "STM32F401VE", | ||||||
| @@ -14,8 +14,7 @@ | |||||||
|         "0x3748" |         "0x3748" | ||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|     "mcu": "stm32f407zgt6", |     "mcu": "stm32f407zgt6" | ||||||
|     "variant": "FLY_F407ZG" |  | ||||||
|   }, |   }, | ||||||
|   "debug": { |   "debug": { | ||||||
|     "jlink_device": "STM32F407ZG", |     "jlink_device": "STM32F407ZG", | ||||||
| @@ -49,7 +48,7 @@ | |||||||
|     "disable_flushing": false, |     "disable_flushing": false, | ||||||
|     "maximum_ram_size": 196608, |     "maximum_ram_size": 196608, | ||||||
|     "maximum_size": 1048576, |     "maximum_size": 1048576, | ||||||
|     "protocol": "dfu", |     "protocol": "stlink", | ||||||
|     "protocols": [ |     "protocols": [ | ||||||
|       "stlink", |       "stlink", | ||||||
|       "dfu", |       "dfu", | ||||||
| @@ -21,7 +21,7 @@ | |||||||
|     "ldscript": "linker_scripts/gcc/flash.ld", |     "ldscript": "linker_scripts/gcc/flash.ld", | ||||||
|     "mcu": "at91sam3x8e", |     "mcu": "at91sam3x8e", | ||||||
|     "usb_product": "Archim", |     "usb_product": "Archim", | ||||||
|     "variant": "archim" |     "variant": "MARLIN_ARCHIM" | ||||||
|   }, |   }, | ||||||
|   "connectivity": [ |   "connectivity": [ | ||||||
|     "can" |     "can" | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| # | # | ||||||
| # STM32F103RC_MEEB_3DP.py | # buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py | ||||||
| # | # | ||||||
| try: | try: | ||||||
|     import configparser |     import configparser | ||||||
| @@ -54,9 +54,5 @@ for define in env['CPPDEFINES']: | |||||||
| print('Use the {0:s} address as the marlin app entry point.'.format(vect_tab_addr)) | 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)) | 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") | import marlin | ||||||
| for i, flag in enumerate(env["LINKFLAGS"]): | marlin.custom_ld_script("STM32F103RC_MEEB_3DP.ld") | ||||||
|     if "-Wl,-T" in flag: |  | ||||||
|         env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script |  | ||||||
|     elif flag == "-T": |  | ||||||
|         env["LINKFLAGS"][i + 1] = custom_ld_script |  | ||||||
|   | |||||||
| @@ -1,23 +0,0 @@ | |||||||
| # |  | ||||||
| # STM32F103RC_SKR_MINI.py |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| STM32_FLASH_SIZE = 256 |  | ||||||
|  |  | ||||||
| for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
|     if define[0] == "STM32_FLASH_SIZE": |  | ||||||
|         STM32_FLASH_SIZE = define[1] |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/STM32F103RC_SKR_MINI_" + str(STM32_FLASH_SIZE) + "K.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 |  | ||||||
| @@ -1,24 +1,11 @@ | |||||||
| # | # | ||||||
| # STM32F103RC_fysetc.py | # buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py | ||||||
| # | # | ||||||
| import os | import os | ||||||
| from os.path import join | from os.path import join | ||||||
| from os.path import expandvars | from os.path import expandvars | ||||||
| Import("env") | Import("env") | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08008000 |  | ||||||
| #for define in env['CPPDEFINES']: |  | ||||||
| #    if define[0] == "VECT_TAB_ADDR": |  | ||||||
| #        env['CPPDEFINES'].remove(define) |  | ||||||
| #env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08008000")) |  | ||||||
|  |  | ||||||
| #custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/fysetc_stm32f103rc.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 |  | ||||||
|  |  | ||||||
| # Custom HEX from ELF | # Custom HEX from ELF | ||||||
| env.AddPostAction( | env.AddPostAction( | ||||||
| 	join("$BUILD_DIR","${PROGNAME}.elf"), | 	join("$BUILD_DIR","${PROGNAME}.elf"), | ||||||
|   | |||||||
| @@ -1,20 +0,0 @@ | |||||||
| # |  | ||||||
| # STM32F103RET6_creality.py |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 |  | ||||||
| for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
|  |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/creality.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 |  | ||||||
| @@ -1,19 +0,0 @@ | |||||||
| # |  | ||||||
| # STM32F103RE_SKR_E3_DIP.py |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/STM32F103RE_SKR_E3_DIP.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 |  | ||||||
| @@ -1,36 +1,22 @@ | |||||||
| # | # | ||||||
| # STM32F103VE_longer.py | # buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py | ||||||
| # Customizations for env:STM32F103VE_longer | # Customizations for env:STM32F103VE_longer | ||||||
| # | # | ||||||
| import os | import os,marlin | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08010000 |  | ||||||
| for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08010000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/STM32F103VE_longer.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 |  | ||||||
|  |  | ||||||
| # Rename ${PROGNAME}.bin and save it as 'project.bin' (No encryption on the Longer3D) | # Rename ${PROGNAME}.bin and save it as 'project.bin' (No encryption on the Longer3D) | ||||||
| def encrypt(source, target, env): | def encrypt(source, target, env): | ||||||
|     firmware = open(target[0].path, "rb") |     firmware = open(target[0].path, "rb") | ||||||
|     marlin_alfa = open(target[0].dir.path +'/project.bin', "wb") |     renamed = open(target[0].dir.path + '/project.bin', "wb") | ||||||
|     length = os.path.getsize(target[0].path) |     length = os.path.getsize(target[0].path) | ||||||
|     position = 0 |     position = 0 | ||||||
|     try: |     try: | ||||||
|         while position < length: |         while position < length: | ||||||
|             byte = firmware.read(1) |             byte = firmware.read(1) | ||||||
|             marlin_alfa.write(byte) |             renamed.write(byte) | ||||||
|             position += 1 |             position += 1 | ||||||
|     finally: |     finally: | ||||||
|         firmware.close() |         firmware.close() | ||||||
|         marlin_alfa.close() |         renamed.close() | ||||||
|  |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); | marlin.add_post_action(encrypt); | ||||||
|   | |||||||
| @@ -1,19 +1,10 @@ | |||||||
| # | # | ||||||
| # STM32F1_create_variant.py | # STM32F1_create_variant.py | ||||||
| # | # | ||||||
| import os,shutil | import os,shutil,marlin | ||||||
| from SCons.Script import DefaultEnvironment | from SCons.Script import DefaultEnvironment | ||||||
| from platformio import util | from platformio import util | ||||||
|  |  | ||||||
| def copytree(src, dst, symlinks=False, ignore=None): |  | ||||||
|     for item in os.listdir(src): |  | ||||||
|         s = os.path.join(src, item) |  | ||||||
|         d = os.path.join(dst, item) |  | ||||||
|         if os.path.isdir(s): |  | ||||||
|             shutil.copytree(s, d, symlinks, ignore) |  | ||||||
|         else: |  | ||||||
|             shutil.copy2(s, d) |  | ||||||
|  |  | ||||||
| env = DefaultEnvironment() | env = DefaultEnvironment() | ||||||
| platform = env.PioPlatform() | platform = env.PioPlatform() | ||||||
| board = env.BoardConfig() | board = env.BoardConfig() | ||||||
| @@ -36,4 +27,4 @@ if os.path.isdir(variant_dir): | |||||||
| if not os.path.isdir(variant_dir): | if not os.path.isdir(variant_dir): | ||||||
|     os.mkdir(variant_dir) |     os.mkdir(variant_dir) | ||||||
|  |  | ||||||
| copytree(source_dir, variant_dir) | marlin.copytree(source_dir, variant_dir) | ||||||
|   | |||||||
| @@ -1,13 +0,0 @@ | |||||||
| # |  | ||||||
| # STM32F401VE_STEVAL.py |  | ||||||
| # Customizations for env:STM32F401VE_STEVAL |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/variants/STEVAL_F401VE/ldscript.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 |  | ||||||
| @@ -1,21 +1,11 @@ | |||||||
| # | # | ||||||
| # chitu_crypt.py | # buildroot/share/PlatformIO/scripts/chitu_crypt.py | ||||||
| # Customizations for Chitu boards | # Customizations for Chitu boards | ||||||
| # | # | ||||||
| Import("env") | import os,random,struct,uuid,marlin | ||||||
| import os,random,struct,uuid |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08008800 | # Relocate firmware from 0x08000000 to 0x08008800 | ||||||
| env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000")) | marlin.relocate_firmware("0x08008800") | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08008800")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/chitu_f103.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def calculate_crc(contents, seed): | def calculate_crc(contents, seed): | ||||||
|     accumulating_xor_value = seed; |     accumulating_xor_value = seed; | ||||||
| @@ -43,7 +33,7 @@ def xor_block(r0, r1, block_number, block_size, file_key): | |||||||
|  |  | ||||||
|     for loop_counter in range(0, block_size): |     for loop_counter in range(0, block_size): | ||||||
|         # meant to make sure different bits of the key are used. |         # meant to make sure different bits of the key are used. | ||||||
|         xor_seed = int(loop_counter/key_length) |         xor_seed = int(loop_counter / key_length) | ||||||
|  |  | ||||||
|         # IP is a scratch register / R12 |         # IP is a scratch register / R12 | ||||||
|         ip = loop_counter - (key_length * xor_seed) |         ip = loop_counter - (key_length * xor_seed) | ||||||
| @@ -69,7 +59,6 @@ def xor_block(r0, r1, block_number, block_size, file_key): | |||||||
|         #increment the loop_counter |         #increment the loop_counter | ||||||
|         loop_counter = loop_counter + 1 |         loop_counter = loop_counter + 1 | ||||||
|  |  | ||||||
|  |  | ||||||
| def encrypt_file(input, output_file, file_length): | def encrypt_file(input, output_file, file_length): | ||||||
|     input_file = bytearray(input.read()) |     input_file = bytearray(input.read()) | ||||||
|     block_size = 0x800 |     block_size = 0x800 | ||||||
| @@ -113,11 +102,10 @@ def encrypt_file(input, output_file, file_length): | |||||||
|     output_file.write(input_file) |     output_file.write(input_file) | ||||||
|     return |     return | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'update.cbd' | # Encrypt ${PROGNAME}.bin and save it as 'update.cbd' | ||||||
| def encrypt(source, target, env): | def encrypt(source, target, env): | ||||||
|     firmware = open(target[0].path, "rb") |     firmware = open(target[0].path, "rb") | ||||||
|     update = open(target[0].dir.path +'/update.cbd', "wb") |     update = open(target[0].dir.path + '/update.cbd', "wb") | ||||||
|     length = os.path.getsize(target[0].path) |     length = os.path.getsize(target[0].path) | ||||||
|  |  | ||||||
|     encrypt_file(firmware, update, length) |     encrypt_file(firmware, update, length) | ||||||
| @@ -125,4 +113,4 @@ def encrypt(source, target, env): | |||||||
|     firmware.close() |     firmware.close() | ||||||
|     update.close() |     update.close() | ||||||
|  |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); | marlin.add_post_action(encrypt); | ||||||
|   | |||||||
| @@ -1,49 +0,0 @@ | |||||||
| # |  | ||||||
| # copy_marlin_variant_to_framework.py |  | ||||||
| # |  | ||||||
| import os,shutil |  | ||||||
| from SCons.Script import DefaultEnvironment |  | ||||||
| from platformio import util |  | ||||||
| from platformio.package.meta import PackageSpec |  | ||||||
|  |  | ||||||
| def copytree(src, dst, symlinks=False, ignore=None): |  | ||||||
|     for item in os.listdir(src): |  | ||||||
|         s = os.path.join(src, item) |  | ||||||
|         d = os.path.join(dst, item) |  | ||||||
|         if os.path.isdir(s): |  | ||||||
|             shutil.copytree(s, d, symlinks, ignore) |  | ||||||
|         else: |  | ||||||
|             shutil.copy2(s, d) |  | ||||||
|  |  | ||||||
| env = DefaultEnvironment() |  | ||||||
| platform = env.PioPlatform() |  | ||||||
| board = env.BoardConfig() |  | ||||||
| variant = board.get("build.variant") |  | ||||||
|  |  | ||||||
| platform_packages = env.GetProjectOption('platform_packages') |  | ||||||
| # if there's no framework defined, take it from the class name of platform |  | ||||||
| framewords = { |  | ||||||
|     "Ststm32Platform": "framework-arduinoststm32", |  | ||||||
|     "AtmelavrPlatform": "framework-arduino-avr" |  | ||||||
| } |  | ||||||
| if len(platform_packages) == 0: |  | ||||||
|     platform_name = framewords[platform.__class__.__name__] |  | ||||||
| else: |  | ||||||
|     platform_name = PackageSpec(platform_packages[0]).name |  | ||||||
|  |  | ||||||
| FRAMEWORK_DIR = platform.get_package_dir(platform_name) |  | ||||||
| assert os.path.isdir(FRAMEWORK_DIR) |  | ||||||
| assert os.path.isdir("buildroot/share/PlatformIO/variants") |  | ||||||
|  |  | ||||||
| variant_dir = os.path.join(FRAMEWORK_DIR, "variants", variant) |  | ||||||
|  |  | ||||||
| source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant) |  | ||||||
| assert os.path.isdir(source_dir) |  | ||||||
|  |  | ||||||
| if os.path.isdir(variant_dir): |  | ||||||
|     shutil.rmtree(variant_dir) |  | ||||||
|  |  | ||||||
| if not os.path.isdir(variant_dir): |  | ||||||
|     os.mkdir(variant_dir) |  | ||||||
|  |  | ||||||
| copytree(source_dir, variant_dir) |  | ||||||
							
								
								
									
										13
									
								
								buildroot/share/PlatformIO/scripts/custom_board.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								buildroot/share/PlatformIO/scripts/custom_board.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | # | ||||||
|  | # buildroot/share/PlatformIO/scripts/custom_board.py | ||||||
|  | # | ||||||
|  | import marlin | ||||||
|  | board = marlin.env.BoardConfig() | ||||||
|  |  | ||||||
|  | address = board.get("build.address", "") | ||||||
|  | if address: | ||||||
|  | 	marlin.relocate_firmware(address) | ||||||
|  |  | ||||||
|  | ldscript = board.get("build.ldscript", "") | ||||||
|  | if ldscript: | ||||||
|  | 	marlin.custom_ld_script(ldscript) | ||||||
| @@ -1,5 +1,6 @@ | |||||||
| # | # | ||||||
| # download_mks_assets.py | # buildroot/share/PlatformIO/scripts/download_mks_assets.py | ||||||
|  | # Added by HAS_TFT_LVGL_UI to download assets from Makerbase repo | ||||||
| # | # | ||||||
| Import("env") | Import("env") | ||||||
| import os,requests,zipfile,tempfile,shutil | import os,requests,zipfile,tempfile,shutil | ||||||
|   | |||||||
| @@ -1,20 +0,0 @@ | |||||||
| # |  | ||||||
| # fly_mini.py |  | ||||||
| # Customizations for env:FLY_MINI |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x08005000 |  | ||||||
| for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/fly_mini.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 |  | ||||||
|  |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| # |  | ||||||
| # STM32F401VE_STEVAL.py |  | ||||||
| # Customizations for env:STM32F401VE_STEVAL |  | ||||||
| # |  | ||||||
| import os |  | ||||||
| Import("env") |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/variants/FYSETC_CHEETAH_V20/ldscript.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 |  | ||||||
| @@ -1,30 +1,54 @@ | |||||||
| # | # | ||||||
| # Generate a generic variant | # generic_create_variant.py | ||||||
| # | # | ||||||
| import os,shutil | # Copy one of the variants from buildroot/platformio/variants into | ||||||
|  | # the appropriate framework variants folder, so that its contents | ||||||
|  | # will be picked up by PlatformIO just like any other variant. | ||||||
|  | # | ||||||
|  | import os,shutil,marlin | ||||||
| from SCons.Script import DefaultEnvironment | from SCons.Script import DefaultEnvironment | ||||||
| from platformio import util | from platformio import util | ||||||
|  |  | ||||||
| env = DefaultEnvironment() | env = DefaultEnvironment() | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Get the platform name from the 'platform_packages' option, | ||||||
|  | # or look it up by the platform.class.name. | ||||||
|  | # | ||||||
| platform = env.PioPlatform() | platform = env.PioPlatform() | ||||||
|  |  | ||||||
|  | from platformio.package.meta import PackageSpec | ||||||
|  | platform_packages = env.GetProjectOption('platform_packages') | ||||||
|  | if len(platform_packages) == 0: | ||||||
|  |     framewords = { | ||||||
|  |         "Ststm32Platform": "framework-arduinoststm32", | ||||||
|  |         "AtmelavrPlatform": "framework-arduino-avr" | ||||||
|  |     } | ||||||
|  |     platform_name = framewords[platform.__class__.__name__] | ||||||
|  | else: | ||||||
|  |     platform_name = PackageSpec(platform_packages[0]).name | ||||||
|  |  | ||||||
|  | if platform_name in [ "usb-host-msc", "usb-host-msc-cdc-msc", "tool-stm32duino" ]: | ||||||
|  |     platform_name = "framework-arduinoststm32" | ||||||
|  |  | ||||||
|  | FRAMEWORK_DIR = platform.get_package_dir(platform_name) | ||||||
|  | assert os.path.isdir(FRAMEWORK_DIR) | ||||||
|  |  | ||||||
| board = env.BoardConfig() | board = env.BoardConfig() | ||||||
|  |  | ||||||
| FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32") | #mcu_type = board.get("build.mcu")[:-2] | ||||||
| assert os.path.isdir(FRAMEWORK_DIR) |  | ||||||
| assert os.path.isdir("buildroot/share/PlatformIO/variants") |  | ||||||
|  |  | ||||||
| mcu_type = board.get("build.mcu")[:-2] |  | ||||||
| variant = board.get("build.variant") | variant = board.get("build.variant") | ||||||
| series = mcu_type[:7].upper() + "xx" | #series = mcu_type[:7].upper() + "xx" | ||||||
|  |  | ||||||
|  | # Prepare a new empty folder at the destination | ||||||
| variant_dir = os.path.join(FRAMEWORK_DIR, "variants", variant) | variant_dir = os.path.join(FRAMEWORK_DIR, "variants", variant) | ||||||
|  | if os.path.isdir(variant_dir): | ||||||
| source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant) |     shutil.rmtree(variant_dir) | ||||||
| assert os.path.isdir(source_dir) |  | ||||||
|  |  | ||||||
| if not os.path.isdir(variant_dir): | if not os.path.isdir(variant_dir): | ||||||
|     os.mkdir(variant_dir) |     os.mkdir(variant_dir) | ||||||
|  |  | ||||||
| for file_name in os.listdir(source_dir): | # Source dir is a local variant sub-folder | ||||||
|     full_file_name = os.path.join(source_dir, file_name) | source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant) | ||||||
|     if os.path.isfile(full_file_name): | assert os.path.isdir(source_dir) | ||||||
|         shutil.copy(full_file_name, variant_dir) |  | ||||||
|  | marlin.copytree(source_dir, variant_dir) | ||||||
|   | |||||||
| @@ -1,30 +1,21 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py | ||||||
|  | # Customizations for env:jgaurora_a5s_a1 | ||||||
|  | # | ||||||
|  | import os,marlin | ||||||
|  |  | ||||||
| # Relocate firmware from 0x08000000 to 0x0800A000 | # Append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin' | ||||||
| env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000")) | def addboot(source, target, env): | ||||||
| #alternatively, for STSTM <=5.1.0 use line below |  | ||||||
| #env['CPPDEFINES'].remove(("VECT_TAB_ADDR", 134217728)) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x0800A000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/jgaurora_a5s_a1.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 |  | ||||||
|  |  | ||||||
| #append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin' |  | ||||||
| def addboot(source,target,env): |  | ||||||
| 	firmware = open(target[0].path, "rb") | 	firmware = open(target[0].path, "rb") | ||||||
| 	lengthfirmware = os.path.getsize(target[0].path) | 	lengthfirmware = os.path.getsize(target[0].path) | ||||||
| 	bootloader_dir = "buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin" | 	bootloader_bin = "buildroot/share/PlatformIO/scripts/" + "jgaurora_bootloader.bin" | ||||||
| 	bootloader = open(bootloader_dir, "rb") | 	bootloader = open(bootloader_bin, "rb") | ||||||
| 	lengthbootloader = os.path.getsize(bootloader_dir) | 	lengthbootloader = os.path.getsize(bootloader_bin) | ||||||
| 	firmware_with_boothloader_dir = target[0].dir.path +'/firmware_with_bootloader.bin' |  | ||||||
| 	if os.path.exists(firmware_with_boothloader_dir): | 	firmware_with_boothloader_bin = target[0].dir.path + '/firmware_with_bootloader.bin' | ||||||
| 		os.remove(firmware_with_boothloader_dir) | 	if os.path.exists(firmware_with_boothloader_bin): | ||||||
| 	firmwareimage = open(firmware_with_boothloader_dir, "wb") | 		os.remove(firmware_with_boothloader_bin) | ||||||
|  | 	firmwareimage = open(firmware_with_boothloader_bin, "wb") | ||||||
| 	position = 0 | 	position = 0 | ||||||
| 	while position < lengthbootloader: | 	while position < lengthbootloader: | ||||||
| 		byte = bootloader.read(1) | 		byte = bootloader.read(1) | ||||||
| @@ -38,11 +29,11 @@ def addboot(source,target,env): | |||||||
| 	bootloader.close() | 	bootloader.close() | ||||||
| 	firmware.close() | 	firmware.close() | ||||||
| 	firmwareimage.close() | 	firmwareimage.close() | ||||||
| 	firmware_without_bootloader_dir = target[0].dir.path+'/firmware_for_sd_upload.bin' |  | ||||||
| 	if os.path.exists(firmware_without_bootloader_dir): | 	firmware_without_bootloader_bin = target[0].dir.path + '/firmware_for_sd_upload.bin' | ||||||
| 		os.remove(firmware_without_bootloader_dir) | 	if os.path.exists(firmware_without_bootloader_bin): | ||||||
| 	os.rename(target[0].path, firmware_without_bootloader_dir) | 		os.remove(firmware_without_bootloader_bin) | ||||||
|  | 	os.rename(target[0].path, firmware_without_bootloader_bin) | ||||||
| 	#os.rename(target[0].dir.path+'/firmware_with_bootloader.bin', target[0].dir.path+'/firmware.bin') | 	#os.rename(target[0].dir.path+'/firmware_with_bootloader.bin', target[0].dir.path+'/firmware.bin') | ||||||
|  |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", addboot); | marlin.add_post_action(addboot); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,20 +1,16 @@ | |||||||
| # | # | ||||||
| # lerdge.py | # buildroot/share/PlatformIO/scripts/lerdge.py | ||||||
| # Customizations for Lerdge build environments | # Customizations for Lerdge build environments: | ||||||
|  | #   env:LERDGEX  env:LERDGEX_usb_flash_drive | ||||||
|  | #   env:LERDGES  env:LERDGES_usb_flash_drive | ||||||
|  | #   env:LERDGEK  env:LERDGEK_usb_flash_drive | ||||||
| # | # | ||||||
| import os,sys | import os,marlin | ||||||
| Import("env") | Import("env") | ||||||
|  |  | ||||||
| from SCons.Script import DefaultEnvironment | from SCons.Script import DefaultEnvironment | ||||||
| board = DefaultEnvironment().BoardConfig() | board = DefaultEnvironment().BoardConfig() | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/lerdge.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 |  | ||||||
|  |  | ||||||
| def encryptByte(byte): | def encryptByte(byte): | ||||||
|     byte = 0xFF & ((byte << 6) | (byte >> 2)) |     byte = 0xFF & ((byte << 6) | (byte >> 2)) | ||||||
|     i = 0x58 + byte |     i = 0x58 + byte | ||||||
| @@ -35,16 +31,16 @@ def encrypt_file(input, output_file, file_length): | |||||||
| def encrypt(source, target, env): | def encrypt(source, target, env): | ||||||
|     print("Encrypting to:", board.get("build.firmware")) |     print("Encrypting to:", board.get("build.firmware")) | ||||||
|     firmware = open(target[0].path, "rb") |     firmware = open(target[0].path, "rb") | ||||||
|     result = open(target[0].dir.path + "/" + board.get("build.firmware"), "wb") |     renamed = open(target[0].dir.path + "/" + board.get("build.firmware"), "wb") | ||||||
|     length = os.path.getsize(target[0].path) |     length = os.path.getsize(target[0].path) | ||||||
|  |  | ||||||
|     encrypt_file(firmware, result, length) |     encrypt_file(firmware, renamed, length) | ||||||
|  |  | ||||||
|     firmware.close() |     firmware.close() | ||||||
|     result.close() |     renamed.close() | ||||||
|  |  | ||||||
| if 'firmware' in board.get("build").keys(): | if 'firmware' in board.get("build").keys(): | ||||||
|   env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |   marlin.add_post_action(encrypt); | ||||||
| else: | else: | ||||||
|   print("You need to define output file via board_build.firmware = 'filename' parameter") |   print("You need to define output file via board_build.firmware = 'filename' parameter") | ||||||
|   exit(1); |   exit(1); | ||||||
|   | |||||||
							
								
								
									
										75
									
								
								buildroot/share/PlatformIO/scripts/marlin.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								buildroot/share/PlatformIO/scripts/marlin.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | # | ||||||
|  | # buildroot/share/PlatformIO/scripts/marlin.py | ||||||
|  | # Helper module with some commonly-used functions | ||||||
|  | # | ||||||
|  | import os,shutil | ||||||
|  |  | ||||||
|  | from SCons.Script import DefaultEnvironment | ||||||
|  | env = DefaultEnvironment() | ||||||
|  |  | ||||||
|  | def copytree(src, dst, symlinks=False, ignore=None): | ||||||
|  |    for item in os.listdir(src): | ||||||
|  |         s = os.path.join(src, item) | ||||||
|  |         d = os.path.join(dst, item) | ||||||
|  |         if os.path.isdir(s): | ||||||
|  |             shutil.copytree(s, d, symlinks, ignore) | ||||||
|  |         else: | ||||||
|  |             shutil.copy2(s, d) | ||||||
|  |  | ||||||
|  | def replace_define(field, value): | ||||||
|  | 	for define in env['CPPDEFINES']: | ||||||
|  | 		if define[0] == field: | ||||||
|  | 			env['CPPDEFINES'].remove(define) | ||||||
|  | 	env['CPPDEFINES'].append((field, value)) | ||||||
|  |  | ||||||
|  | # Relocate the firmware to a new address, such as "0x08005000" | ||||||
|  | def relocate_firmware(address): | ||||||
|  | 	replace_define("VECT_TAB_ADDR", address) | ||||||
|  |  | ||||||
|  | # Relocate the vector table with a new offset | ||||||
|  | def relocate_vtab(address): | ||||||
|  | 	replace_define("VECT_TAB_OFFSET", address) | ||||||
|  |  | ||||||
|  | # Replace the existing -Wl,-T with the given ldscript path | ||||||
|  | def custom_ld_script(ldname): | ||||||
|  | 	apath = os.path.abspath("buildroot/share/PlatformIO/ldscripts/" + ldname) | ||||||
|  | 	for i, flag in enumerate(env["LINKFLAGS"]): | ||||||
|  | 		if "-Wl,-T" in flag: | ||||||
|  | 			env["LINKFLAGS"][i] = "-Wl,-T" + apath | ||||||
|  | 		elif flag == "-T": | ||||||
|  | 			env["LINKFLAGS"][i + 1] = apath | ||||||
|  |  | ||||||
|  | # Encrypt ${PROGNAME}.bin and save it with a new name | ||||||
|  | # Called by specific encrypt() functions, mostly for MKS boards | ||||||
|  | def encrypt_mks(source, target, env, new_name): | ||||||
|  | 	import sys | ||||||
|  |  | ||||||
|  | 	key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] | ||||||
|  |  | ||||||
|  | 	firmware = open(target[0].path, "rb") | ||||||
|  | 	renamed = open(target[0].dir.path + "/" + new_name, "wb") | ||||||
|  | 	length = os.path.getsize(target[0].path) | ||||||
|  | 	position = 0 | ||||||
|  | 	try: | ||||||
|  | 		while position < length: | ||||||
|  | 			byte = firmware.read(1) | ||||||
|  | 			if position >= 320 and position < 31040: | ||||||
|  | 				byte = chr(ord(byte) ^ key[position & 31]) | ||||||
|  | 				if sys.version_info[0] > 2: | ||||||
|  | 					byte = bytes(byte, 'latin1') | ||||||
|  | 			renamed.write(byte) | ||||||
|  | 			position += 1 | ||||||
|  | 	finally: | ||||||
|  | 		firmware.close() | ||||||
|  | 		renamed.close() | ||||||
|  |  | ||||||
|  | def add_post_action(action): | ||||||
|  | 	env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", action); | ||||||
|  |  | ||||||
|  | # Apply customizations for a MKS Robin | ||||||
|  | def prepare_robin(address, ldname, fwname): | ||||||
|  | 	def encrypt(source, target, env): | ||||||
|  | 		encrypt_mks(source, target, env, fwname) | ||||||
|  | 	relocate_firmware(address) | ||||||
|  | 	custom_ld_script(ldname) | ||||||
|  | 	add_post_action(encrypt); | ||||||
| @@ -1,32 +1,28 @@ | |||||||
| import os,sys | # | ||||||
|  | # buildroot/share/PlatformIO/scripts/mks_encrypt.py | ||||||
|  | # | ||||||
|  | # Apply encryption and save as 'build.firmware' for these environments: | ||||||
|  | #  - env:mks_robin_stm32 | ||||||
|  | #  - env:flsun_hispeedv1 | ||||||
|  | #  - env:mks_robin_nano35_stm32 | ||||||
|  | # | ||||||
| Import("env") | Import("env") | ||||||
|  |  | ||||||
| from SCons.Script import DefaultEnvironment | from SCons.Script import DefaultEnvironment | ||||||
| board = DefaultEnvironment().BoardConfig() | board = DefaultEnvironment().BoardConfig() | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as build.firmware ('Robin.bin') |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|   key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|   firmware = open(target[0].path, "rb") |  | ||||||
|   robin = open(target[0].dir.path +'/'+ board.get("build.firmware"), "wb") |  | ||||||
|   length = os.path.getsize(target[0].path) |  | ||||||
|   position = 0 |  | ||||||
|   try: |  | ||||||
|     while position < length: |  | ||||||
|       byte = firmware.read(1) |  | ||||||
|       if position >= 320 and position < 31040: |  | ||||||
|         byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|         if sys.version_info[0] > 2: |  | ||||||
|           byte = bytes(byte, 'latin1') |  | ||||||
|       robin.write(byte) |  | ||||||
|       position += 1 |  | ||||||
|   finally: |  | ||||||
|     firmware.close() |  | ||||||
|     robin.close() |  | ||||||
|  |  | ||||||
| if 'firmware' in board.get("build").keys(): | if 'firmware' in board.get("build").keys(): | ||||||
|   env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|  | 	import marlin | ||||||
|  |  | ||||||
|  | 	# Encrypt ${PROGNAME}.bin and save it as build.firmware | ||||||
|  | 	def encrypt(source, target, env): | ||||||
|  | 		marlin.encrypt_mks(source, target, env, "build.firmware") | ||||||
|  |  | ||||||
|  | 	marlin.add_post_action(encrypt); | ||||||
|  |  | ||||||
| else: | else: | ||||||
|   print("You need to define output file via board_build.firmware = 'filename' parameter", file=sys.stderr) |  | ||||||
|   exit(1); | 	import sys | ||||||
|  | 	print("You need to define output file via board_build.firmware = 'filename' parameter", file=sys.stderr) | ||||||
|  | 	env.Exit(1); | ||||||
|   | |||||||
| @@ -1,39 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08007000", "mks_robin.ld", "Robin.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin.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 |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'Robin.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_e3.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08005000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08005000", "mks_robin_e3.ld", "Robin_e3.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_e3.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'mksLite.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_e3.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_e3p.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08007000", "mks_robin_e3p.ld", "Robin_e3p.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_e3p.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'mks_robin_e3p.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_e3p.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_lite.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08005000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08005000", "mks_robin_lite.ld", "mksLite.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_lite.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'mksLite.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/mksLite.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_lite3.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08005000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08005000", "mks_robin_lite.ld", "mksLite3.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_lite.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'mksLite.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/mksLite3.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_mini.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08005000", "mks_robin_mini.ld", "Robin_mini.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_mini.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'Robin_mini.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_mini.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_nano.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08007000", "mks_robin_nano.ld", "Robin_nano.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_nano.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'Robin_nano.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_nano.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,40 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_nano35.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08007000", "mks_robin_nano.ld", "Robin_nano35.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_nano.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 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'Robin_nano35.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_nano35.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,39 +1,5 @@ | |||||||
| import os | # | ||||||
| Import("env") | # buildroot/share/PlatformIO/scripts/mks_robin_pro.py | ||||||
|  | # | ||||||
| # Relocate firmware from 0x08000000 to 0x08007000 | import marlin | ||||||
| for define in env['CPPDEFINES']: | marlin.prepare_robin("0x08007000", "mks_robin_pro.ld", "Robin_pro.bin") | ||||||
|     if define[0] == "VECT_TAB_ADDR": |  | ||||||
|         env['CPPDEFINES'].remove(define) |  | ||||||
| env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000")) |  | ||||||
|  |  | ||||||
| custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_pro.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 |  | ||||||
|  |  | ||||||
| # Encrypt ${PROGNAME}.bin and save it as 'Robin.bin' |  | ||||||
| def encrypt(source, target, env): |  | ||||||
|     import sys |  | ||||||
|  |  | ||||||
|     key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E] |  | ||||||
|  |  | ||||||
|     firmware = open(target[0].path, "rb") |  | ||||||
|     robin = open(target[0].dir.path +'/Robin_pro.bin', "wb") |  | ||||||
|     length = os.path.getsize(target[0].path) |  | ||||||
|     position = 0 |  | ||||||
|     try: |  | ||||||
|         while position < length: |  | ||||||
|             byte = firmware.read(1) |  | ||||||
|             if position >= 320 and position < 31040: |  | ||||||
|                 byte = chr(ord(byte) ^ key[position & 31]) |  | ||||||
|                 if sys.version_info[0] > 2: |  | ||||||
|                     byte = bytes(byte, 'latin1') |  | ||||||
|             robin.write(byte) |  | ||||||
|             position += 1 |  | ||||||
|     finally: |  | ||||||
|         firmware.close() |  | ||||||
|         robin.close() |  | ||||||
| env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt); |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| # | # | ||||||
| # stm32_bootloader.py | # stm32_bootloader.py | ||||||
| # | # | ||||||
| import os,sys,shutil | import os,sys,shutil,marlin | ||||||
| Import("env") | Import("env") | ||||||
|  |  | ||||||
| from SCons.Script import DefaultEnvironment | from SCons.Script import DefaultEnvironment | ||||||
| @@ -11,35 +11,30 @@ board = DefaultEnvironment().BoardConfig() | |||||||
| # Copy the firmware.bin file to build.firmware, no encryption | # Copy the firmware.bin file to build.firmware, no encryption | ||||||
| # | # | ||||||
| def noencrypt(source, target, env): | def noencrypt(source, target, env): | ||||||
|   firmware = os.path.join(target[0].dir.path, board.get("build.firmware")) | 	firmware = os.path.join(target[0].dir.path, board.get("build.firmware")) | ||||||
|   shutil.copy(target[0].path, firmware) | 	shutil.copy(target[0].path, firmware) | ||||||
|  |  | ||||||
| # | # | ||||||
| # For build.offset define LD_FLASH_OFFSET, used by ldscript.ld | # For build.offset define LD_FLASH_OFFSET, used by ldscript.ld | ||||||
| # | # | ||||||
| if 'offset' in board.get("build").keys(): | if 'offset' in board.get("build").keys(): | ||||||
|   LD_FLASH_OFFSET = board.get("build.offset") | 	LD_FLASH_OFFSET = board.get("build.offset") | ||||||
|  |  | ||||||
|   # Remove an existing VECT_TAB_OFFSET from CPPDEFINES | 	marlin.relocate_vtab(LD_FLASH_OFFSET) | ||||||
|   for define in env['CPPDEFINES']: |  | ||||||
|     if define[0] == "VECT_TAB_OFFSET": |  | ||||||
|       env['CPPDEFINES'].remove(define) |  | ||||||
|  |  | ||||||
|   # Replace VECT_TAB_OFFSET with our LD_FLASH_OFFSET | 	# Get upload.maximum_ram_size (defined by /buildroot/share/PlatformIO/boards/VARIOUS.json) | ||||||
|   env['CPPDEFINES'].append(("VECT_TAB_OFFSET", LD_FLASH_OFFSET)) | 	maximum_ram_size = board.get("upload.maximum_ram_size") | ||||||
|  |  | ||||||
|   # Get upload.maximum_ram_size (defined by /buildroot/share/PlatformIO/boards/VARIOUS.json) | 	for i, flag in enumerate(env["LINKFLAGS"]): | ||||||
|   maximum_ram_size = board.get("upload.maximum_ram_size") | 		if "-Wl,--defsym=LD_FLASH_OFFSET" in flag: | ||||||
|  | 			env["LINKFLAGS"][i] = "-Wl,--defsym=LD_FLASH_OFFSET=" + LD_FLASH_OFFSET | ||||||
|   for i, flag in enumerate(env["LINKFLAGS"]): | 		if "-Wl,--defsym=LD_MAX_DATA_SIZE" in flag: | ||||||
|     if "-Wl,--defsym=LD_FLASH_OFFSET" in flag: | 			env["LINKFLAGS"][i] = "-Wl,--defsym=LD_MAX_DATA_SIZE=" + str(maximum_ram_size - 40) | ||||||
|       env["LINKFLAGS"][i] = "-Wl,--defsym=LD_FLASH_OFFSET=" + LD_FLASH_OFFSET |  | ||||||
|     if "-Wl,--defsym=LD_MAX_DATA_SIZE" in flag: |  | ||||||
|       env["LINKFLAGS"][i] = "-Wl,--defsym=LD_MAX_DATA_SIZE=" + str(maximum_ram_size - 40) |  | ||||||
|  |  | ||||||
| # | # | ||||||
| # Only copy the file if there's no encrypt | # Only copy the file if there's no encrypt | ||||||
| # | # | ||||||
| board_keys = board.get("build").keys() | board_keys = board.get("build").keys() | ||||||
| if 'firmware' in board_keys and not 'encrypt' in board_keys: | if 'firmware' in board_keys and not 'encrypt' in board_keys: | ||||||
|   env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", noencrypt) | 	import marlin | ||||||
|  | 	marlin.add_post_action(noencrypt) | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user