# copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode) env.Append(ASFLAGS=env.get("CCFLAGS", [])[:]) # # Target: Build Core Library # libs = [] if "build.variant" in board: variants_dir = join( "$PROJECT_DIR", board.get("build.variants_dir")) if board.get( "build.variants_dir", "") else join(FRAMEWORK_DIR, "variants") env.Append( CPPPATH=[ join(variants_dir, board.get("build.variant")) ] ) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(variants_dir, board.get("build.variant")) )) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", build_core) )) env.Prepend(LIBS=libs)
# # Copy target header files # include_path = join(env.subst("$BUILD_DIR"), "metal", "machine") if not isdir(include_path): makedirs(include_path) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal.h"), join(env.subst("$BUILD_DIR"), "metal", "machine.h")) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal-platform.h"), join(include_path, "platform.h")) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal-inline.h"), join(include_path, "inline.h")) # # Target: Build Metal Libraries # libs = [ env.BuildLibrary(join("$BUILD_DIR", "metal"), join(FRAMEWORK_DIR, "freedom-metal", "src")), env.BuildLibrary(join("$BUILD_DIR", "metal-gloss"), join(FRAMEWORK_DIR, "freedom-metal", "gloss")) ] env.Prepend(LIBS=libs)
libs = [] variants_dir = join(FRAMEWORK_DIR, "variants") if "build.variants_dir" in env.BoardConfig(): variants_dir = join("$PROJECT_DIR", env.BoardConfig().get("build.variants_dir")) if "build.variant" in env.BoardConfig(): env.Append( CPPPATH=[join(variants_dir, env.BoardConfig().get("build.variant"))]) libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(variants_dir, env.BoardConfig().get("build.variant")))) envsafe = env.Clone() libs.append( envsafe.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")))) env.Prepend(LIBS=libs) # # Generate partition table #
join(FRAMEWORK_DIR, "lib", "freertos", "include"), join(FRAMEWORK_DIR, "lib", "freertos", "portable"), join(FRAMEWORK_DIR, "lib", "freertos", "conf"), join(FRAMEWORK_DIR, "lib", "utils", "include"), ], LIBPATH=[ join(FRAMEWORK_DIR, "lib", "freertos", "portable"), join(FRAMEWORK_DIR, "lib", "freertos", "conf"), join(FRAMEWORK_DIR, "lib", "freertos", "include"), join(FRAMEWORK_DIR, "lib", "utils", "include"), join(FRAMEWORK_DIR, "lib", "bsp", "include"), join(FRAMEWORK_DIR, "lib", "drivers", "include"), ], LIBS=["c", "gcc", "m"]) env.Replace(LDSCRIPT_PATH=join(FRAMEWORK_DIR, "lds", "kendryte.ld")) # # Target: Build Core Library # libs = [ env.BuildLibrary(join("$BUILD_DIR", "sdk-bsp"), join(FRAMEWORK_DIR, "lib", "bsp")), env.BuildLibrary(join("$BUILD_DIR", "sdk-drivers"), join(FRAMEWORK_DIR, "lib", "drivers")), env.BuildLibrary(join("$BUILD_DIR", "sdk-freertos"), join(FRAMEWORK_DIR, "lib", "freertos")), ] env.Prepend(LIBS=libs)
env.Append( CPPPATH=extra_incdirs ) if not is_valid_soc(build_soc): sys.stderr.write("Could not find BSP package for SoC %s" % build_soc) env.Exit(1) # # Target: Build Nuclei SDK Libraries # soclibname = "soc_" + build_soc boardlibname = "board_" + build_board libs = [ env.BuildLibrary( join("$BUILD_DIR", "SoC", build_soc, soclibname), join(FRAMEWORK_DIR, "SoC", build_soc, "Common") ), env.BuildLibrary( join("$BUILD_DIR", "SoC", build_soc, "Board", boardlibname), join(FRAMEWORK_DIR, "SoC", build_soc, "Board", build_board) ) ] if selected_rtos == "FreeRTOS": libs.append(env.BuildLibrary( join("$BUILD_DIR", "RTOS", "FreeRTOS"), join(FRAMEWORK_DIR, "OS", "FreeRTOS", "Source"), src_filter="+<*> -<portable/MemMang/> +<portable/MemMang/heap_4.c>" )) env.Append(
if not board.get("build.ldscript", ""): # if SoftDevice is not specified use default ld script from the framework env.Replace( LDSCRIPT_PATH=ldscript_path or board.get("build.arduino.ldscript", "")) # Select crystal oscillator as the low frequency source by default clock_options = ("USE_LFXO", "USE_LFRC", "USE_LFSYNT") if not any(d in clock_options for d in cpp_defines): env.Append(CPPDEFINES=["USE_LFXO"]) # # Target: Build Core Library # libs = [] if "build.variant" in board: env.Append( CPPPATH=[join(FRAMEWORK_DIR, "variants", board.get("build.variant"))]) libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(FRAMEWORK_DIR, "variants", board.get("build.variant")))) libs.append( env.BuildLibrary(join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", board.get("build.core")))) env.Prepend(LIBS=libs)
join(FRAMEWORK_DIR, "RISCV", "drivers"), join(FRAMEWORK_DIR, "RISCV", "env_Eclipse"), join(FRAMEWORK_DIR, "RISCV", "stubs"), ], LIBS=["c"]) if not env.BoardConfig().get("build.ldscript", ""): env.Replace(LDSCRIPT_PATH=join(FRAMEWORK_DIR, "RISCV", "env_Eclipse", board.get("build.gd32vf103-sdk.ldscript"))) # # Target: Build Core Library # libs = [ env.BuildLibrary(join("$BUILD_DIR", "standard_peripheral"), join(FRAMEWORK_DIR, "GD32VF103_standard_peripheral")), # env.BuildLibrary( # join("$BUILD_DIR", "usbfs_driver"), # join(FRAMEWORK_DIR, "GD32VF103_usbfs_driver")), env.BuildLibrary(join("$BUILD_DIR", "RISCV"), join(FRAMEWORK_DIR, "RISCV")), ] env.Prepend(LIBS=libs) # if board.get("name") == "GD32VF103V-EVAL": # env.Prepend( # CPPPATH = [ # join(FRAMEWORK_DIR, "Utilities"),
UPLOADER=join(TOOL_DIR, CORE, "$PLATFORM", "coda"), UPLOADERFLAGS=[ '"$BUILD_DIR/${PROGNAME}.cfg"', "--UART", "$UPLOAD_PORT", "-d" ], UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS', BUILDERS=dict( ElfToBin=Builder(action=env.VerboseAction( " ".join(["$OBJCOPY", "-O", "binary", "$SOURCES", "$TARGET"]), "Building $TARGET"), suffix=".dat"), GFH=Builder( # Add Mediatek Header action=env.VerboseAction( " ".join( ['"$PYTHONEXE"', '"$HEADERTOOL"', "$SOURCES", "$TARGET"]), "Adding Header"), suffix=".bin")) #dict ) libs = [] libs.append(env.BuildLibrary( join("$BUILD_DIR", "framework"), join(CORE_DIR), )) libs.append( env.BuildLibrary(join("$BUILD_DIR", "framework", "ril"), join(CORE_DIR, "ril", "src"))) env.Append(LIBS=libs) env.Replace(HEADERTOOL=join("$PIOHOME_DIR", "platforms", "opencpu", "builder", "frameworks", "GFH_" + CORE + ".py"))
"-Wl,--whole-archive", join("{}".format(BOARD_VARIANTS_DIR), "mbed", "libmbed-os.a"), "-Wl,--no-whole-archive", "-Wl,-Map=%s" % join("$BUILD_DIR", "program.map"), # "--specs=nosys.specs", "--specs=nano.specs", ], LIBS=["stdc++", "supc++", "libmbed-os.a", "arm_cortexM4lf_math", "m"], LIBPATH=[ join(BOARD_VARIANTS_DIR, "mbed"), join(CMSIS_DIR, "ARM", "Lib", "ARM") ]) libs = [] libs.append(env.BuildLibrary(join("$BUILD_DIR", "variant"), BOARD_VARIANTS_DIR)) libs.append(env.BuildLibrary( join("$BUILD_DIR", "mbed_bridge"), BRIDGE_DIR, )) libs.append( env.BuildLibrary( join("$BUILD_DIR", "core-implement"), join(CORE_DIR, "sdk", "core-implement"), )) # Libraries libs.append( env.BuildLibrary(
elif oscillator_type == "external" and build_core == "MegaCoreX": env.Append(CPPDEFINES=["USE_EXTERNAL_OSCILLATOR"]) # # Target: Build Core Library # libs = [] if "build.variant" in board: variants_dir = join( "$PROJECT_DIR", board.get("build.variants_dir")) if board.get( "build.variants_dir", "") else join(FRAMEWORK_DIR, "variants") env.Append( CPPPATH=[ join(variants_dir, board.get("build.variant")) ] ) env.BuildSources( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(variants_dir, board.get("build.variant")) ) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", build_core) )) env.Prepend(LIBS=libs)
# # Target: Build core BSP libraries # unsupported_drivers = ("plic", "timer") libs = [] for driver in listdir(join(FRAMEWORK_DIR, "bsp", "drivers")): if driver in unsupported_drivers: continue libs.append( env.BuildLibrary( join("$BUILD_DIR", "bsp", "drivers", driver), join(FRAMEWORK_DIR, "bsp", "drivers", driver)) ) libs.append( env.BuildLibrary( join("$BUILD_DIR", "bsp", "libwrap"), join(FRAMEWORK_DIR, "bsp", "libwrap")) ) libs.append( env.BuildLibrary( join("$BUILD_DIR", "bsp", "include"), join(FRAMEWORK_DIR, "bsp", "include")) )
# # Copy target header files # include_path = join(env.subst("$BUILD_DIR"), "metal", "machine") if not isdir(include_path): makedirs(include_path) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal.h"), join(env.subst("$BUILD_DIR"), "metal", "machine.h")) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal-platform.h"), join(include_path, "platform.h")) copyfile(join(FRAMEWORK_DIR, "bsp", target, "metal-inline.h"), join(include_path, "inline.h")) # # Target: Build Metal Libraries # libs = [ env.BuildLibrary(join("$BUILD_DIR", "metal"), join(FRAMEWORK_DIR, "freedom-metal", "src"), src_filter="+<*> -<drivers/sifive_fu540-c000_l2.c>"), env.BuildLibrary(join("$BUILD_DIR", "metal-gloss"), join(FRAMEWORK_DIR, "freedom-metal", "gloss")) ] env.Prepend(LIBS=libs)
env.Depends("$BUILD_DIR/$PROGNAME$PROGSUFFIX", linker_script) # # Compile bootloader # env.Depends( "$BUILD_DIR/$PROGNAME$PROGSUFFIX", env.ElfToBin(join("$BUILD_DIR", "bootloader"), build_espidf_bootloader())) # # Target: Build Core Library # libs = [] ignore_dirs = ("bootloader", "esptool_py", "idf_test", "newlib", "partition_table") for d in listdir(join(FRAMEWORK_DIR, "components")): if d in ignore_dirs: continue if isdir(join(FRAMEWORK_DIR, "components", d)): libs.append( env.BuildLibrary(join("$BUILD_DIR", "%s" % d), join(FRAMEWORK_DIR, "components", d), src_filter="+<*> -<test>")) env.Prepend(LIBS=libs)
"-Winline", "-pipe", "-fPIC" ], LIBS=["pthread"] ) env.Append( CPPDEFINES=[ "_GNU_SOURCE" ], CPPPATH=[ join("$BUILD_DIR", "FrameworkWiringPi") ] ) # # Target: Build Core Library # libs = [] libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkWiringPi"), join("$PIOPACKAGES_DIR", "framework-wiringpi", "wiringPi") )) env.Append(LIBS=libs)
]) # # Target: Build Core Library # libs = [] if "build.variant" in env.BoardConfig(): variants_dir = os.path.join( "$PROJECT_DIR", board.get("build.variants_dir")) if board.get( "build.variants_dir", "") else os.path.join( FRAMEWORK_DIR, "variants") env.Append( CPPPATH=[os.path.join(variants_dir, board.get("build.variant"))]) libs.append( env.BuildLibrary( os.path.join("$BUILD_DIR", "FrameworkArduinoVariant"), os.path.join(variants_dir, board.get("build.variant")))) libs.append( env.BuildLibrary(os.path.join("$BUILD_DIR", "FrameworkArduino"), os.path.join(FRAMEWORK_DIR, "cores"), src_filter=[ "+<*>", "-<%s/projects/PSoC4/CyBootAsmIar.s>" % core, "-<%s/projects/PSoC4/CyBootAsmRv.s>" % core ])) env.Prepend(LIBS=libs)
join(FRAMEWORK_DIR, "platformio", "ldscripts") ]) # # Generate framework specific files # generate_hal_config_file(env.BoardConfig().get("build.mcu")) # # Target: Build HAL Library # libs = [] libs.append( env.BuildLibrary(join("$BUILD_DIR", "FrameworkHALDriver"), join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers", MCU_FAMILY.upper() + "xx_HAL_Driver"), src_filter="+<*> -<Src/*_template.c>")) libs.append( env.BuildLibrary(join("$BUILD_DIR", "FrameworkCMSISDevice"), join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers", "CMSIS", "Device", "ST", MCU_FAMILY.upper() + "xx", "Source", "Templates"), src_filter="-<*> +<*.c> +<gcc/%s>" % get_startup_file(env.BoardConfig().get("build.mcu")))) env.Append(LIBS=libs)
import sys from os.path import basename, isdir, isfile, join from SCons.Script import DefaultEnvironment from platformio.proc import exec_command env = DefaultEnvironment() platform = env.PioPlatform() board_config = env.BoardConfig() FRAMEWORK_DIR = platform.get_package_dir("E122") assert FRAMEWORK_DIR and isdir(FRAMEWORK_DIR) env.Append(CPPPATH=[ join(FRAMEWORK_DIR, "bsp"), join(FRAMEWORK_DIR, "lib"), ], LIBS=["c"]) libs = [ env.BuildLibrary(join("$BUILD_DIR", "BSP"), join(FRAMEWORK_DIR, "bsp")), env.BuildLibrary(join("$BUILD_DIR", "LIB"), join(FRAMEWORK_DIR, "lib")), ] env.Prepend(LIBS=libs)
CPPFLAGS=[ #"-Wall", "-Wextra", "-c", "-g", "-Os", "-fno-exceptions", "-ffunction-sections", "-fdata-sections", "-MMD", "-Woverloaded-virtual", "-flto", "-std=gnu++11", "-felide-constructors", "-fno-implement-inlines", "-fno-rtti", "-fno-threadsafe-statics", "-mcall-prologues" ] ) # # Target: Build Core Library # libs = [] env.Append( CPPPATH=[lib_dirs] ) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(PLATFORMFW_DIR, "variants", BOARD_VARIANTLIBDIRNAME) ) ) envsafe = env.Clone() libs.append(envsafe.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join("$PLATFORMFW_DIR", "cores", BOARD_CORELIBDIRNAME) ) ) env.Append(LIBS=libs)
if not content_changed: continue with open(file_path, "w") as fp: fp.write(content) # # Target: Build Core Library # libs = [] if "variant" in BOARD_BUILDOPTS: env.Append(CPPPATH=[join("$BUILD_DIR", "FrameworkArduinoVariant")]) libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}"))) envsafe = env.Clone() libs.append( envsafe.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}"))) if env.subst("${PLATFORMFW_DIR}")[-3:] == "sam": env.Append(LIBPATH=[ join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}") ]) envsafe.Append(CFLAGS=["-std=gnu99"]) libs.append("sam_sam3x8e_gcc_rel")
extra_flags = env.BoardConfig().get("build.extra_flags", "") src_filter_patterns = ["+<*>"] if "STM32F40_41xxx" in extra_flags: src_filter_patterns += ["-<stm32f4xx_fmc.c>"] if "STM32F427_437xx" in extra_flags: src_filter_patterns += ["-<stm32f4xx_fsmc.c>"] elif "STM32F303xC" in extra_flags: src_filter_patterns += ["-<stm32f30x_hrtim.c>"] elif "STM32L1XX_MD" in extra_flags: src_filter_patterns += ["-<stm32l1xx_flash_ramfunc.c>"] libs = [] libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkCMSISVariant"), join( FRAMEWORK_DIR, env.BoardConfig().get("build.core"), "cmsis", "variants", env.BoardConfig().get("build.variant")[0:7] ) )) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkSPL"), join(FRAMEWORK_DIR, env.BoardConfig().get("build.core"), "spl", "variants", env.BoardConfig().get("build.variant")[0:7], "src"), src_filter=" ".join(src_filter_patterns) )) env.Append(LIBS=libs)
) env.Append( LIBSOURCE_DIRS=[ join(FRAMEWORK_DIR, "libraries") ] ) # # Target: Build Core Library # libs = [] if "build.variant" in env.BoardConfig(): env.Append( CPPPATH=[ join(FRAMEWORK_DIR, "variants", board_config.get("build.mcu")) ] ) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(FRAMEWORK_DIR, "variants", board_config.get("build.mcu")) )) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores") )) env.Prepend(LIBS=libs)
"Error: Detected C++ file `%s` which is not compatible with Arduino" " framework as only C/ASM sources are allowed.\n" % os.path.join(root, f) ) env.Exit(1) # # Target: Build Core Library # libs = [] if "build.variant" in env.BoardConfig(): env.Append( CPPPATH=[ os.path.join( FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")) ] ) libs.append(env.BuildLibrary( os.path.join("$BUILD_DIR", "FrameworkArduinoVariant"), os.path.join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")) )) libs.append(env.BuildLibrary( os.path.join("$BUILD_DIR", "FrameworkArduino"), os.path.join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")) )) env.Prepend(LIBS=libs)
# # use mbed ldscript with bootloader section ldscript = env.BoardConfig().get("build.ldscript") if not isfile(join(platform.get_dir(), "ldscripts", ldscript)): if "mbed" in env.BoardConfig().get("frameworks", []): env.Append(LINKFLAGS=[ '-Wl,-T"%s"' % join( platform.get_package_dir("framework-mbed") or "", "targets", "TARGET_STM", "TARGET_%s" % env.BoardConfig().get("build.variant").upper()[:7], "TARGET_%s" % env.subst("$BOARD").upper(), "device", "TOOLCHAIN_GCC_ARM", "%s.ld" % ldscript.upper()[:-3]) ]) libs = [] libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkCMSISVariant"), join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")[0:7], env.BoardConfig().get("build.variant")))) libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkCMSISCommon"), join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")[0:7], "common"))) env.Append(LIBS=libs)
], LIBS=["sam_sam3x8e_gcc_rel", "gcc"]) env.Append(ASFLAGS=env.get("CCFLAGS", [])[:]) # # Target: Build Core Library # libs = [] if "build.variant" in board: variants_dir = os.path.join( "$PROJECT_DIR", board.get("build.variants_dir")) if board.get( "build.variants_dir", "") else os.path.join( FRAMEWORK_DIR, "variants") env.Append( CPPPATH=[os.path.join(variants_dir, board.get("build.variant"))], LIBPATH=[os.path.join(variants_dir, board.get("build.variant"))], ) libs.append( env.BuildLibrary( os.path.join("$BUILD_DIR", "FrameworkArduinoVariant"), os.path.join(variants_dir, board.get("build.variant")))) libs.append( env.BuildLibrary(os.path.join("$BUILD_DIR", "FrameworkArduino"), os.path.join(FRAMEWORK_DIR, "cores", "arduino"))) env.Prepend(LIBS=libs)
"version.txt")).read().replace(".", "").strip()) # include board variant env.VariantDirWrap( join("$BUILD_DIR", "FrameworkEnergiaVariant"), join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")) env.Append(CPPDEFINES=["ARDUINO=101", "ENERGIA=%d" % ENERGIA_VERSION], CPPPATH=[ join("$BUILD_DIR", "FrameworkEnergia"), join("$BUILD_DIR", "FrameworkEnergiaVariant") ]) if env.get("BOARD_OPTIONS", {}).get("build", {}).get("core") == "lm4f": env.Append(LINKFLAGS=["-Wl,--entry=ResetISR"]) # # Target: Build Core Library # libs = [] libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkEnergia"), join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}"))) env.Append(LIBS=libs)
join(FRAMEWORK_DIR, "include", "espressif"), join(FRAMEWORK_DIR, "include", "lwip"), join(FRAMEWORK_DIR, "include", "lwip", "ipv4"), join(FRAMEWORK_DIR, "include", "lwip", "ipv6"), join(FRAMEWORK_DIR, "include", "nopoll"), join(FRAMEWORK_DIR, "include", "ssl"), join(FRAMEWORK_DIR, "include", "json"), join(FRAMEWORK_DIR, "include", "openssl"), ], LIBPATH=[join(FRAMEWORK_DIR, "lib")], LIBS=[ "airkiss", "at", "c", "crypto", "driver", "espnow", "gcc", "json", "lwip", "main", "mbedtls", "mesh", "net80211", "phy", "pp", "pwm", "smartconfig", "ssl", "upgrade", "wpa", "wpa2", "wps" ]) env.Replace(LDSCRIPT_PATH=[join(FRAMEWORK_DIR, "ld", "eagle.app.v6.ld")], ) # # Target: Build Driver Library # libs = [] libs.append( env.BuildLibrary(join(FRAMEWORK_DIR, "lib", "driver"), join(FRAMEWORK_DIR, "driver_lib"))) env.Prepend(LIBS=libs)
env.Replace(UPLOADER=join(FRAMEWORK_DIR, "tools", "esptool.py")) # # Target: Build Core Library # libs = [] if "build.variant" in env.BoardConfig(): env.Append(CPPPATH=[ join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")) ]) libs.append( env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")))) envsafe = env.Clone() libs.append( envsafe.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")))) env.Prepend(LIBS=libs) # # Generate partition table #
process_usb_speed_configuration(cpp_defines) process_usart_configuration(cpp_defines) # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode) env.Append(ASFLAGS=env.get("CCFLAGS", [])[:]) env.Append(LIBSOURCE_DIRS=[ join(FRAMEWORK_DIR, "libraries", "__cores__", "arduino"), join(FRAMEWORK_DIR, "libraries"), ]) # # Target: Build Core Library # libs = [] if "build.variant" in board_config: env.Append(CPPPATH=[inc_variant_dir], LIBPATH=[inc_variant_dir]) env.BuildSources(join("$BUILD_DIR", "FrameworkArduinoVariant"), variant_dir) libs.append( env.BuildLibrary(join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", "arduino"))) env.BuildSources(join("$BUILD_DIR", "SrcWrapper"), join(FRAMEWORK_DIR, "libraries", "SrcWrapper")) env.Prepend(LIBS=libs)
# env.Append( LIBSOURCE_DIRS=[ join(FRAMEWORK_DIR, "libraries", "__cores__", "maple"), join(FRAMEWORK_DIR, "libraries") ] ) # # Target: Build Core Library # libs = [] if "build.variant" in board: env.Append( CPPPATH=[join(FRAMEWORK_DIR, "variants", variant)] ) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduinoVariant"), join(FRAMEWORK_DIR, "variants", variant) )) libs.append(env.BuildLibrary( join("$BUILD_DIR", "FrameworkArduino"), join(FRAMEWORK_DIR, "cores", "maple") )) env.Prepend(LIBS=libs)
# Force SDK package to build if only FreeRTOS is specified in framework list env.SConscript("wd-riscv-sdk.py") env.Append(CPPDEFINES=["D_USE_RTOSAL", "D_USE_FREERTOS"], CPPPATH=[ os.path.join(FIRMWARE_DIR, "rtos", "rtosal", "loc_inc"), os.path.join(FIRMWARE_DIR, "rtos", "rtosal", "api_inc"), os.path.join(FIRMWARE_DIR, "rtos", "rtosal", "config", "eh1"), os.path.join(FIRMWARE_DIR, "rtos", "rtos_core", "freertos", "Source", "include"), ], LIBS=[ env.BuildLibrary(os.path.join("$BUILD_DIR", "RTOS-AL"), os.path.join(FIRMWARE_DIR, "rtos", "rtosal"), src_filter=[ "+<*>", "-<rtosal_memory.c>", "-<list.c>", "-<rtosal_int_vect_*.S>", "+<rtosal_int_vect_eh1.S>" ]), env.BuildLibrary(os.path.join("$BUILD_DIR", "FreeRTOS"), os.path.join(FIRMWARE_DIR, "rtos", "rtos_core", "freertos", "Source"), src_filter=[ "-<*>", "+<croutine.c>", "+<list.c>", "+<portable/portASM.S>", "+<queue.c>", "+<tasks.c>", "+<timers.c>", ])