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 parent
69d85cce2d
commit
ee016e605c
167 files changed
+340
-840
No files matched your search
@@ -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"
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
"extra_flags": "-DSTM32H743xx",
|
||||
"f_cpu": "400000000L",
|
||||
"mcu": "stm32h743iit6",
|
||||
"variant": "BTT_SKR_SE_BX"
|
||||
"variant": "MARLIN_BTT_SKR_SE_BX"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32H743II",
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
]
|
||||
],
|
||||
"mcu": "stm32f407vgt6",
|
||||
"variant": "BIGTREE_BTT002"
|
||||
"variant": "MARLIN_BIGTREE_BTT002"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F407VG",
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
]
|
||||
],
|
||||
"mcu": "stm32f407zgt6",
|
||||
"variant": "BIGTREE_GTR_V1"
|
||||
"variant": "MARLIN_BIGTREE_GTR_V1"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F407ZG",
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
]
|
||||
],
|
||||
"mcu": "stm32f407zgt6",
|
||||
"variant": "BIGTREE_SKR_PRO_1v1"
|
||||
"variant": "MARLIN_BIGTREE_SKR_PRO_11"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F407ZG",
|
||||
+1
-2
@@ -15,8 +15,7 @@
|
||||
]
|
||||
],
|
||||
"mcu": "stm32f103zet6",
|
||||
"variant": "CHITU_F103",
|
||||
"ldscript": "chitu_f103.ld"
|
||||
"variant": "marlin_CHITU_F103"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F103ZE",
|
||||
+1
-1
@@ -16,7 +16,7 @@
|
||||
],
|
||||
"ldscript": "stm32f401rc.ld",
|
||||
"mcu": "stm32f401rct6",
|
||||
"variant": "FYSETC_CHEETAH_V20"
|
||||
"variant": "MARLIN_FYSETC_CHEETAH_V20"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F401RC",
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
"ldscript": "stm32f103xc.ld"
|
||||
},
|
||||
"mcu": "stm32f103rct6",
|
||||
"variant": "MEEB_3DP"
|
||||
"variant": "marlin_MEEB_3DP"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F103RC",
|
||||
+1
-2
@@ -14,9 +14,8 @@
|
||||
"0x3748"
|
||||
]
|
||||
],
|
||||
"ldscript": "stm32f401xe.ld",
|
||||
"mcu": "stm32f401vet6",
|
||||
"variant": "STEVAL_F401VE"
|
||||
"variant": "MARLIN_STEVAL_F401VE"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F401VE",
|
||||
File renamed without changes.
+2
-3
@@ -14,8 +14,7 @@
|
||||
"0x3748"
|
||||
]
|
||||
],
|
||||
"mcu": "stm32f407zgt6",
|
||||
"variant": "FLY_F407ZG"
|
||||
"mcu": "stm32f407zgt6"
|
||||
},
|
||||
"debug": {
|
||||
"jlink_device": "STM32F407ZG",
|
||||
@@ -49,7 +48,7 @@
|
||||
"disable_flushing": false,
|
||||
"maximum_ram_size": 196608,
|
||||
"maximum_size": 1048576,
|
||||
"protocol": "dfu",
|
||||
"protocol": "stlink",
|
||||
"protocols": [
|
||||
"stlink",
|
||||
"dfu",
|
||||
+1
-1
@@ -21,7 +21,7 @@
|
||||
"ldscript": "linker_scripts/gcc/flash.ld",
|
||||
"mcu": "at91sam3x8e",
|
||||
"usb_product": "Archim",
|
||||
"variant": "archim"
|
||||
"variant": "MARLIN_ARCHIM"
|
||||
},
|
||||
"connectivity": [
|
||||
"can"
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# STM32F103RC_MEEB_3DP.py
|
||||
# buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
|
||||
#
|
||||
try:
|
||||
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: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
|
||||
import marlin
|
||||
marlin.custom_ld_script("STM32F103RC_MEEB_3DP.ld")
|
||||
@@ -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
|
||||
from os.path import join
|
||||
from os.path import expandvars
|
||||
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
|
||||
env.AddPostAction(
|
||||
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
|
||||
#
|
||||
import os
|
||||
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
|
||||
import os,marlin
|
||||
|
||||
# Rename ${PROGNAME}.bin and save it as 'project.bin' (No encryption on the Longer3D)
|
||||
def encrypt(source, target, env):
|
||||
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)
|
||||
position = 0
|
||||
try:
|
||||
while position < length:
|
||||
byte = firmware.read(1)
|
||||
marlin_alfa.write(byte)
|
||||
renamed.write(byte)
|
||||
position += 1
|
||||
finally:
|
||||
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
|
||||
#
|
||||
import os,shutil
|
||||
import os,shutil,marlin
|
||||
from SCons.Script import DefaultEnvironment
|
||||
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()
|
||||
platform = env.PioPlatform()
|
||||
board = env.BoardConfig()
|
||||
@@ -36,4 +27,4 @@ if os.path.isdir(variant_dir):
|
||||
if not os.path.isdir(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
|
||||
#
|
||||
Import("env")
|
||||
import os,random,struct,uuid
|
||||
import os,random,struct,uuid,marlin
|
||||
|
||||
# Relocate firmware from 0x08000000 to 0x08008800
|
||||
env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000"))
|
||||
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
|
||||
|
||||
marlin.relocate_firmware("0x08008800")
|
||||
|
||||
def calculate_crc(contents, 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):
|
||||
# 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 = 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
|
||||
loop_counter = loop_counter + 1
|
||||
|
||||
|
||||
def encrypt_file(input, output_file, file_length):
|
||||
input_file = bytearray(input.read())
|
||||
block_size = 0x800
|
||||
@@ -113,11 +102,10 @@ def encrypt_file(input, output_file, file_length):
|
||||
output_file.write(input_file)
|
||||
return
|
||||
|
||||
|
||||
# Encrypt ${PROGNAME}.bin and save it as 'update.cbd'
|
||||
def encrypt(source, target, env):
|
||||
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)
|
||||
|
||||
encrypt_file(firmware, update, length)
|
||||
@@ -125,4 +113,4 @@ def encrypt(source, target, env):
|
||||
firmware.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)
|
||||
@@ -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 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 platformio import util
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
#
|
||||
# Get the platform name from the 'platform_packages' option,
|
||||
# or look it up by the platform.class.name.
|
||||
#
|
||||
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()
|
||||
|
||||
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32")
|
||||
assert os.path.isdir(FRAMEWORK_DIR)
|
||||
assert os.path.isdir("buildroot/share/PlatformIO/variants")
|
||||
|
||||
mcu_type = board.get("build.mcu")[:-2]
|
||||
#mcu_type = board.get("build.mcu")[:-2]
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
for file_name in os.listdir(source_dir):
|
||||
full_file_name = os.path.join(source_dir, file_name)
|
||||
if os.path.isfile(full_file_name):
|
||||
shutil.copy(full_file_name, variant_dir)
|
||||
# Source dir is a local variant sub-folder
|
||||
source_dir = os.path.join("buildroot/share/PlatformIO/variants", variant)
|
||||
assert os.path.isdir(source_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
|
||||
env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000"))
|
||||
#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):
|
||||
# Append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin'
|
||||
def addboot(source, target, env):
|
||||
firmware = open(target[0].path, "rb")
|
||||
lengthfirmware = os.path.getsize(target[0].path)
|
||||
bootloader_dir = "buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin"
|
||||
bootloader = open(bootloader_dir, "rb")
|
||||
lengthbootloader = os.path.getsize(bootloader_dir)
|
||||
firmware_with_boothloader_dir = target[0].dir.path +'/firmware_with_bootloader.bin'
|
||||
if os.path.exists(firmware_with_boothloader_dir):
|
||||
os.remove(firmware_with_boothloader_dir)
|
||||
firmwareimage = open(firmware_with_boothloader_dir, "wb")
|
||||
bootloader_bin = "buildroot/share/PlatformIO/scripts/" + "jgaurora_bootloader.bin"
|
||||
bootloader = open(bootloader_bin, "rb")
|
||||
lengthbootloader = os.path.getsize(bootloader_bin)
|
||||
|
||||
firmware_with_boothloader_bin = target[0].dir.path + '/firmware_with_bootloader.bin'
|
||||
if os.path.exists(firmware_with_boothloader_bin):
|
||||
os.remove(firmware_with_boothloader_bin)
|
||||
firmwareimage = open(firmware_with_boothloader_bin, "wb")
|
||||
position = 0
|
||||
while position < lengthbootloader:
|
||||
byte = bootloader.read(1)
|
||||
@@ -38,11 +29,11 @@ def addboot(source,target,env):
|
||||
bootloader.close()
|
||||
firmware.close()
|
||||
firmwareimage.close()
|
||||
firmware_without_bootloader_dir = target[0].dir.path+'/firmware_for_sd_upload.bin'
|
||||
if os.path.exists(firmware_without_bootloader_dir):
|
||||
os.remove(firmware_without_bootloader_dir)
|
||||
os.rename(target[0].path, firmware_without_bootloader_dir)
|
||||
|
||||
firmware_without_bootloader_bin = target[0].dir.path + '/firmware_for_sd_upload.bin'
|
||||
if os.path.exists(firmware_without_bootloader_bin):
|
||||
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')
|
||||
|
||||
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", addboot);
|
||||
|
||||
marlin.add_post_action(addboot);
|
||||
@@ -1,20 +1,16 @@
|
||||
#
|
||||
# lerdge.py
|
||||
# Customizations for Lerdge build environments
|
||||
# buildroot/share/PlatformIO/scripts/lerdge.py
|
||||
# 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")
|
||||
|
||||
from SCons.Script import DefaultEnvironment
|
||||
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):
|
||||
byte = 0xFF & ((byte << 6) | (byte >> 2))
|
||||
i = 0x58 + byte
|
||||
@@ -35,16 +31,16 @@ def encrypt_file(input, output_file, file_length):
|
||||
def encrypt(source, target, env):
|
||||
print("Encrypting to:", board.get("build.firmware"))
|
||||
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)
|
||||
|
||||
encrypt_file(firmware, result, length)
|
||||
encrypt_file(firmware, renamed, length)
|
||||
|
||||
firmware.close()
|
||||
result.close()
|
||||
renamed.close()
|
||||
|
||||
if 'firmware' in board.get("build").keys():
|
||||
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt);
|
||||
marlin.add_post_action(encrypt);
|
||||
else:
|
||||
print("You need to define output file via board_build.firmware = 'filename' parameter")
|
||||
exit(1);
|
||||
@@ -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")
|
||||
|
||||
from SCons.Script import DefaultEnvironment
|
||||
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():
|
||||
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:
|
||||
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")
|
||||
|
||||
# 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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08007000", "mks_robin.ld", "Robin.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_e3.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08005000", "mks_robin_e3.ld", "Robin_e3.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_e3p.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08007000", "mks_robin_e3p.ld", "Robin_e3p.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_lite.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08005000", "mks_robin_lite.ld", "mksLite.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08005000", "mks_robin_lite.ld", "mksLite3.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_mini.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08005000", "mks_robin_mini.ld", "Robin_mini.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_nano.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08007000", "mks_robin_nano.ld", "Robin_nano.bin")
|
||||
@@ -1,40 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08007000", "mks_robin_nano.ld", "Robin_nano35.bin")
|
||||
@@ -1,39 +1,5 @@
|
||||
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/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);
|
||||
#
|
||||
# buildroot/share/PlatformIO/scripts/mks_robin_pro.py
|
||||
#
|
||||
import marlin
|
||||
marlin.prepare_robin("0x08007000", "mks_robin_pro.ld", "Robin_pro.bin")
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# stm32_bootloader.py
|
||||
#
|
||||
import os,sys,shutil
|
||||
import os,sys,shutil,marlin
|
||||
Import("env")
|
||||
|
||||
from SCons.Script import DefaultEnvironment
|
||||
@@ -11,35 +11,30 @@ board = DefaultEnvironment().BoardConfig()
|
||||
# Copy the firmware.bin file to build.firmware, no encryption
|
||||
#
|
||||
def noencrypt(source, target, env):
|
||||
firmware = os.path.join(target[0].dir.path, board.get("build.firmware"))
|
||||
shutil.copy(target[0].path, firmware)
|
||||
firmware = os.path.join(target[0].dir.path, board.get("build.firmware"))
|
||||
shutil.copy(target[0].path, firmware)
|
||||
|
||||
#
|
||||
# For build.offset define LD_FLASH_OFFSET, used by ldscript.ld
|
||||
#
|
||||
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
|
||||
for define in env['CPPDEFINES']:
|
||||
if define[0] == "VECT_TAB_OFFSET":
|
||||
env['CPPDEFINES'].remove(define)
|
||||
marlin.relocate_vtab(LD_FLASH_OFFSET)
|
||||
|
||||
# Replace VECT_TAB_OFFSET with our LD_FLASH_OFFSET
|
||||
env['CPPDEFINES'].append(("VECT_TAB_OFFSET", LD_FLASH_OFFSET))
|
||||
# Get upload.maximum_ram_size (defined by /buildroot/share/PlatformIO/boards/VARIOUS.json)
|
||||
maximum_ram_size = board.get("upload.maximum_ram_size")
|
||||
|
||||
# Get upload.maximum_ram_size (defined by /buildroot/share/PlatformIO/boards/VARIOUS.json)
|
||||
maximum_ram_size = board.get("upload.maximum_ram_size")
|
||||
|
||||
for i, flag in enumerate(env["LINKFLAGS"]):
|
||||
if "-Wl,--defsym=LD_FLASH_OFFSET" in flag:
|
||||
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)
|
||||
for i, flag in enumerate(env["LINKFLAGS"]):
|
||||
if "-Wl,--defsym=LD_FLASH_OFFSET" in flag:
|
||||
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
|
||||
#
|
||||
board_keys = board.get("build").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)
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 167 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user