mirror of
https://github.com/martinloren/Artery-AT32-PlatformIO.git
synced 2026-05-21 09:22:14 +00:00
Added DFU uploader, HW Float Unit
This commit is contained in:
@@ -33,7 +33,7 @@ env.Append(
|
||||
|
||||
CXXFLAGS=[
|
||||
"-fno-rtti",
|
||||
"-fno-exceptions"
|
||||
"-fno-exceptions",
|
||||
],
|
||||
|
||||
CPPDEFINES=[
|
||||
@@ -43,12 +43,22 @@ env.Append(
|
||||
LINKFLAGS=[
|
||||
"-Os",
|
||||
"-Wl,--gc-sections,--relax",
|
||||
"-mthumb"
|
||||
"-mthumb",
|
||||
],
|
||||
|
||||
LIBS=["c", "gcc", "m", "stdc++"]
|
||||
)
|
||||
|
||||
#Floating point unit: hard (hardware) | softfp (software)
|
||||
if (
|
||||
any(cpu in board_config.get("build.cpu") for cpu in ("cortex-m4"))
|
||||
):
|
||||
env.Append(
|
||||
CFLAGS=["-mfpu=fpv4-sp-d16", "-mfloat-abi=hard"],
|
||||
CCFLAGS=["-mfpu=fpv4-sp-d16", "-mfloat-abi=hard"],
|
||||
LINKFLAGS=["-mfpu=fpv4-sp-d16", "-mfloat-abi=hard"],
|
||||
)
|
||||
|
||||
if "BOARD" in env:
|
||||
env.Append(
|
||||
CCFLAGS=[
|
||||
|
||||
@@ -45,10 +45,9 @@ assert product_line, "Missing MCU or Product Line field"
|
||||
|
||||
|
||||
#env.SConscript("_bare.py")
|
||||
build_script = "_bare.py"
|
||||
#build_script = "_bare.py"
|
||||
build_script = join(env.PioPlatform().get_package_dir("framework-cmsis-" + mcu[0:7]),
|
||||
"tools", "platformio", "platformio-build.py")
|
||||
env.SConscript(build_script)
|
||||
|
||||
if not isfile(build_script):
|
||||
sys.stderr.write("Error: Missing PlatformIO build script %s!\n" % build_script)
|
||||
@@ -138,12 +137,9 @@ env.Append(
|
||||
#
|
||||
# Compile CMSIS sources
|
||||
#
|
||||
|
||||
sources_path = os.path.join(CMSIS_DEVICE_DIR, "Source", "Templates")
|
||||
prepare_startup_file(sources_path)
|
||||
|
||||
|
||||
|
||||
env.BuildSources(
|
||||
os.path.join("$BUILD_DIR", "FrameworkCMSIS"), sources_path,
|
||||
src_filter=[
|
||||
|
||||
@@ -191,6 +191,41 @@ elif upload_protocol.startswith("jlink"):
|
||||
)
|
||||
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
||||
|
||||
elif upload_protocol == "dfu":
|
||||
hwids = board.get("build.hwids", [["0x0483", "0xDF11"]])
|
||||
vid = hwids[0][0]
|
||||
pid = hwids[0][1]
|
||||
|
||||
# default tool for all boards with embedded DFU bootloader over USB
|
||||
_upload_tool = '"%s"' % join(platform.get_package_dir(
|
||||
"tool-dfuutil") or "", "bin", "dfu-util")
|
||||
_upload_flags = [
|
||||
"-d", ",".join(["%s:%s" % (hwid[0], hwid[1]) for hwid in hwids]),
|
||||
"-a", "0", "-s",
|
||||
"%s:leave" % board.get("upload.offset_address", "0x08000000"), "-D"
|
||||
]
|
||||
|
||||
upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")]
|
||||
|
||||
if "dfu-util" in _upload_tool:
|
||||
# Add special DFU header to the binary image
|
||||
env.AddPostAction(
|
||||
join("$BUILD_DIR", "${PROGNAME}.bin"),
|
||||
env.VerboseAction(
|
||||
" ".join([
|
||||
'"%s"' % join(platform.get_package_dir("tool-dfuutil") or "",
|
||||
"bin", "dfu-suffix"),
|
||||
"-v %s" % vid,
|
||||
"-p %s" % pid,
|
||||
"-d 0xffff", "-a", "$TARGET"
|
||||
]), "Adding dfu suffix to ${PROGNAME}.bin"))
|
||||
env.Replace(
|
||||
UPLOADER=_upload_tool,
|
||||
UPLOADERFLAGS=_upload_flags,
|
||||
UPLOADCMD='$UPLOADER $UPLOADERFLAGS "${SOURCE.get_abspath()}"')
|
||||
|
||||
upload_source = target_firm
|
||||
|
||||
|
||||
elif upload_protocol == "serial":
|
||||
def __configure_upload_port(env):
|
||||
@@ -199,13 +234,13 @@ elif upload_protocol == "serial":
|
||||
env.Replace(
|
||||
__configure_upload_port=__configure_upload_port,
|
||||
UPLOADER=join(
|
||||
'"%s"' % platform.get_package_dir("tool-stm32duino") or "",
|
||||
"stm32flash", "stm32flash"),
|
||||
'%s' % platform.get_dir() or "",
|
||||
"tools", "stm32flash", "stm32flash"),
|
||||
UPLOADERFLAGS=[
|
||||
"-g", board.get("upload.offset_address", "0x08000000"),
|
||||
"-b", env.subst("$UPLOAD_SPEED") or "115200", "-w"
|
||||
],
|
||||
UPLOADCMD='$UPLOADER $UPLOADERFLAGS "$SOURCE" "${__configure_upload_port(__env__)}"'
|
||||
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCE ${__configure_upload_port(__env__)}'
|
||||
)
|
||||
|
||||
upload_actions = [
|
||||
|
||||
Reference in New Issue
Block a user