join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-dsp", "modules", "common", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-dsp", "modules", "kalman", "ekf", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-dsp", "modules", "kalman", "ekf_imu13states", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "tool"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "typedef"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "image"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "math"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "nn"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "layer"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "detect"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-face", "include", "model_zoo"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp32-camera", "driver", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp32-camera", "conversions", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "fb_gfx", "include"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")) ], LIBPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "lib"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "ld") ], LIBS=[ "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lperfmon", "-lspiffs", "-lulp", "-lwifi_provisioning", "-lbutton", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp-dsp", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lperfmon", "-lesp_adc_cal", "-lesp_hid", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lesp_rainmaker", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lbt", "-lbtdm_app", "-lprotobuf-c", "-lmdns", "-ljson", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-lcat_face_detect", "-lhuman_face_detect", "-lcolor_detect", "-lmfn", "-ldl", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lrtc", "-lesp_phy", "-lphy", "-lrtc", "-lesp_phy", "-lphy", "-lrtc", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ "HAVE_CONFIG_H", ("MBEDTLS_CONFIG_FILE", '\\"mbedtls/esp_config.h\\"'), "UNITY_INCLUDE_CONFIG_H",
Arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. https://github.com/rogerclarkmelbourne/Arduino_STM32 """ import sys from os.path import isdir, isfile, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() board = env.BoardConfig() mcu = env.BoardConfig().get("build.mcu", "") if mcu.startswith("gd32f10"): FRAMEWORK_DIR = join(env.get("PROJECT_DIR"), "snapmaker", "lib", "GD32F1") elif mcu.startswith("gd32f30"): FRAMEWORK_DIR = join(env.get("PROJECT_DIR"), "snapmaker", "lib", "GD32F3") else: sys.stderr.write("Could not find a suitable framework variant\n") env.Exit(1) assert isdir(FRAMEWORK_DIR) # board -> variant VARIANT_REMAP = { "Snapmaker_GD32F105RC": "Snapmaker_GD32F105RC"
else: env.Replace( UPLOADER="avrdude", UPLOADERFLAGS=[ "-p", "$BOARD_MCU", "-C", join(env.PioPlatform().get_package_dir("tool-avrdude") or "", "avrdude.conf"), "-c", "$UPLOAD_PROTOCOL" ], UPLOADHEXCMD='$UPLOADER $UPLOADERFLAGS -D -U flash:w:$SOURCES:i', UPLOADEEPCMD='$UPLOADER $UPLOADERFLAGS -U eeprom:w:$SOURCES:i', PROGRAMHEXCMD='$UPLOADER $UPLOADERFLAGS -U flash:w:$SOURCES:i') if int(ARGUMENTS.get("PIOVERBOSE", 0)): env.Prepend(UPLOADERFLAGS=["-v"]) if "BOARD" in env and "fuses" in env.BoardConfig(): env.Replace(FUSESCMD=" ".join(["avrdude", "$UPLOADERFLAGS", "-e"] + [ "-U%s:w:%s:m" % (k, v) for k, v in env.BoardConfig().get("fuses", {}).items() ])) # # Target: Build executable and linkable firmware # target_elf = None if "nobuild" in COMMAND_LINE_TARGETS: target_firm = join("$BUILD_DIR", "firmware.hex") else: target_elf = env.BuildProgram() target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf)
"esp32.peripherals.ld", "-T", "esp32.rom.ld", "-T", "esp32.rom.libgcc.ld", "-T", "esp32.rom.syscalls.ld", "-T", "esp32.rom.newlib-data.ld", "-u", "ld_include_panic_highint_hdl", "-u", "__cxa_guard_dummy", "-u", "newlib_include_locks_impl", "-u", "newlib_include_heap_impl", "-u", "newlib_include_syscalls_impl", "-u", "pthread_include_pthread_impl", "-u", "pthread_include_pthread_cond_impl", "-u", "pthread_include_pthread_local_storage_impl" ], CPPDEFINES=[ "ESP32", "ESP_PLATFORM", ("F_CPU", "$BOARD_F_CPU"), "HAVE_CONFIG_H", "_GNU_SOURCE", ("GCC_NOT_5_2_0", 1), ("MBEDTLS_CONFIG_FILE", '\\"mbedtls/esp_config.h\\"'), ("ARDUINO", 10805), "ARDUINO_ARCH_ESP32", ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")) ], CPPPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "include", "config"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_trace"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_update"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "asio"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bootloader_support"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bt"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "coap"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "console"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "driver"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "efuse"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp-tls"),
# # STM32F1_create_variant.py # import pioutil if pioutil.is_pio_build(): import os, shutil, marlin from SCons.Script import DefaultEnvironment from platformio import util env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoststm32-maple") assert os.path.isdir(FRAMEWORK_DIR) source_root = os.path.join("buildroot", "share", "PlatformIO", "variants") assert os.path.isdir(source_root) variant = board.get("build.variant") variant_dir = os.path.join(FRAMEWORK_DIR, "STM32F1", "variants", variant) source_dir = os.path.join(source_root, 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)
join(FRAMEWORK_DIR, "Segger_SystemView-metal", "SystemView", "Config"), ]) envsafe = env.Clone() envsafe.Append(ASFLAGS=["-D__ASSEMBLY__"]) return envsafe.BuildLibrary(join("$BUILD_DIR", "SystemView"), join(FRAMEWORK_DIR, "Segger_SystemView-metal", "SystemView"), src_filter=[ "-<*>", "+<SEGGER/SEGGER_SYSVIEW.c>", "+<SEGGER/SEGGER_RTT.c>", "+<SEGGER/SEGGER_RTT_printf.c>" ]) board_config = env.BoardConfig() target = board_config.get("build.freedom-e-sdk.variant", env.subst("sifive-${BOARD}")) if env.subst("$BOARD") == "e310-arty": target = "freedom-e310-arty" env.Append( ASFLAGS=["--specs=nano.specs"], CCFLAGS=["-ffunction-sections", "-fdata-sections", "--specs=nano.specs"], LINKFLAGS=["-nostdlib"], CPPDEFINES=[("PACKAGE_NAME", '\\"freedom-metal\\"'), ("PACKAGE_TARNAME", '\\"freedom-metal\\"'), ("PACKAGE_VERSION", '\\"v0.1.2\\"'), ("PACKAGE_STRING", '\\"freedom-metal v0.1.2\\"'), ("PACKAGE", '\\"freedom-metal\\"'), ("VERSION", '\\"v0.1.2\\"'),
# WizIO 2018 Georgi Angelov # http://www.wizio.eu/ # https://github.com/Wiz-IO from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = "linux" module = platform + "-" + env.BoardConfig().get("build.core") m = __import__(module) globals()[module] = m m.dev_init(env, platform) #print env.Dump()
FRAMEWORK_DIR = env.PioPlatform().get_package_dir("framework-maixduino") assert FRAMEWORK_DIR and isdir(FRAMEWORK_DIR) SDK_DIR = join(FRAMEWORK_DIR, "cores", "arduino", "kendryte-standalone-sdk") env.SConscript("_bare.py", exports="env") env.Append( CCFLAGS=[ "-Wno-error=unused-const-variable", "-Wno-error=narrowing", "-Wno-error=unused-value" ], CPPDEFINES=[ ("ARDUINO", 10805), ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("build.board_def").replace('"', "")) ], LINKFLAGS=["-Wl,--start-group", "-lc", "-lgcc", "-lm", "-Wl,--end-group"], CPPPATH=[ join(FRAMEWORK_DIR, "cores", "arduino"), join(FRAMEWORK_DIR, "cores", "arduino", "hal"), join(FRAMEWORK_DIR, "cores", "arduino", "hal", "include"), join(SDK_DIR, "lib", "bsp"), join(SDK_DIR, "lib", "bsp", "include"), join(SDK_DIR, "lib", "drivers"), join(SDK_DIR, "lib", "drivers", "include"), join(SDK_DIR, "lib", "freertos"), join(SDK_DIR, "lib", "freertos", "include"), join(SDK_DIR, "lib", "freertos", "portable"),
if upload_options.get("wait_for_upload_port", False): env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) def generate_uf2(target, source, env): elf_file = target[0].get_path() env.Execute(" ".join([ "elf2uf2", '"%s"' % elf_file, '"%s"' % elf_file.replace(".elf", ".uf2"), ])) env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() env.Replace(AR="arm-none-eabi-ar", AS="arm-none-eabi-as", CC="arm-none-eabi-gcc", CXX="arm-none-eabi-g++", GDB="arm-none-eabi-gdb", OBJCOPY="arm-none-eabi-objcopy", RANLIB="arm-none-eabi-ranlib", SIZETOOL="arm-none-eabi-size", ARFLAGS=["rc"], SIZEPROGREGEXP= r"^(?:\.text|\.data|\.rodata|\.text.align|\.ARM.exidx)\s+(\d+).*", SIZEDATAREGEXP=r"^(?:\.data|\.bss|\.noinit)\s+(\d+).*", SIZECHECKCMD="$SIZETOOL -A -d $SOURCES", SIZEPRINTCMD='$SIZETOOL -B -d $SOURCES',
join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_littlefs", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "tool"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "typedef"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "image"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "math"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "nn"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "layer"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "detect"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dl", "include", "model_zoo"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-sr", "esp-tts", "esp_tts_chinese", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-sr", "include", "esp32"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp32-camera", "driver", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp32-camera", "conversions", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "fb_gfx", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", env.BoardConfig().get("build.arduino.memory_type", "qspi_qspi"), "include"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")) ], LIBPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "lib"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "ld"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", env.BoardConfig().get("build.arduino.memory_type", "qspi_qspi")) ], LIBS=[ "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lperfmon", "-lspiffs", "-lusb", "-ltouch_element", "-lulp", "-lwifi_provisioning", "-lbutton", "-lrmaker_common", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp-dsp", "-lesp-sr", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_lcd", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lperfmon", "-lusb", "-ltouch_element", "-lesp_adc_cal", "-lesp_hid", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lesp_rainmaker", "-lesp_local_ctrl", "-lesp_https_server", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-lmdns", "-lrmaker_common", "-lmqtt", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-larduino_tinyusb", "-lcat_face_detect", "-lhuman_face_detect", "-lcolor_detect", "-lmfn", "-ldl", "-ljson", "-lspiffs", "-lesp_tts_chinese", "-lvoice_set_xiaole", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lesp_ringbuf", "-lefuse", "-lesp_ipc", "-ldriver", "-lesp_pm", "-lmbedtls", "-lapp_update", "-lbootloader_support", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-lconsole", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lxtensa", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ "HAVE_CONFIG_H",
"-T", "esp32.peripherals.ld", "-T", "esp32.rom.spiram_incompatible_fns.ld", "-u", "ld_include_panic_highint_hdl", "-u", "__cxa_guard_dummy", "-u", "__cxx_fatal_exception" ], CPPDEFINES=[ "ESP32", "ESP_PLATFORM", ("F_CPU", "$BOARD_F_CPU"), "HAVE_CONFIG_H", ("MBEDTLS_CONFIG_FILE", '\\"mbedtls/esp_config.h\\"'), ("ARDUINO", 10805), "ARDUINO_ARCH_ESP32", ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")) ], CPPPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "include", "config"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_trace"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_update"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "asio"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bootloader_support"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bt"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "coap"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "console"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "driver"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp-tls"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp32"),
"-fno-exceptions", "-Wall" ], CXXFLAGS=["-fno-rtti", "-std=c++11"], LINKFLAGS=[ "-Os", "-nostdlib", "-Wl,--no-check-sections", "-Wl,-static", "-Wl,--gc-sections", "-Wl,-wrap,system_restart_local", "-Wl,-wrap,spi_flash_read", "-u", "app_entry", "-u", "_printf_float", "-u", "_scanf_float", "-u", "_DebugExceptionVector", "-u", "_DoubleExceptionVector", "-u", "_KernelExceptionVector", "-u", "_NMIExceptionVector", "-u", "_UserExceptionVector" ], CPPDEFINES=[("F_CPU", "$BOARD_F_CPU"), "__ets__", "ICACHE_FLASH", ("ARDUINO", 10805), ("ARDUINO_BOARD", '\\"PLATFORMIO_%s\\"' % env.BoardConfig().id.upper()), "FLASHMODE_${BOARD_FLASH_MODE.upper()}", "LWIP_OPEN_SRC"], CPPPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "libc", "xtensa-lx106-elf", "include"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")) ], LIBPATH=[ join("$BUILD_DIR", "ld"), # eagle.app.v6.common.ld join(FRAMEWORK_DIR, "tools", "sdk", "lib"), join(FRAMEWORK_DIR, "tools", "sdk", "ld"), join(FRAMEWORK_DIR, "tools", "sdk", "libc", "xtensa-lx106-elf", "lib") ], LIBS=[
# # Target: Print binary size # target_size = env.Alias( "size", target_elf, env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) AlwaysBuild(target_size) # # Target: Upload by default .bin file # upload_protocol = env.subst("$UPLOAD_PROTOCOL") debug_tools = env.BoardConfig().get("debug.tools", {}) upload_actions = [] if upload_protocol == "mbed": upload_actions = [ env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."), env.VerboseAction(env.UploadToDisk, "Uploading $SOURCE") ] elif upload_protocol.startswith("blackmagic"): env.Replace( UPLOADER="$GDB", UPLOADERFLAGS=[ "-nx", "--batch", "-ex", "target extended-remote $UPLOAD_PORT", "-ex",
def scons_patched_match_splitext(path, suffixes=None): """ Patch SCons Builder, append $OBJSUFFIX to the end of each target """ tokens = Util.splitext(path) if suffixes and tokens[1] and tokens[1] in suffixes: return (path, tokens[1]) return tokens Builder.match_splitext = scons_patched_match_splitext env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() gzip_fw = board.get("build.gzip_fw", False) gzip_switch = [] FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif8266") assert isdir(FRAMEWORK_DIR) if gzip_fw: gzip_switch = ["--gzip", "PIO"] env.Append( ASFLAGS=["-x", "assembler-with-cpp"], CFLAGS=[ "-std=gnu17", "-Wpointer-arith",
Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. http://arduino.cc/en/Reference/HomePage """ from os.path import isdir, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() FRAMEWORK_DIR = platform.get_package_dir("framework-arduinomicrochippic32") BUILD_CORE = env.BoardConfig().get("build.core") assert isdir(FRAMEWORK_DIR) env.Append( CPPDEFINES=[("ARDUINO", 10808), "ARDUINO_ARCH_PIC32", ("IDE", "Arduino")], CPPPATH=[join(FRAMEWORK_DIR, "cores", BUILD_CORE)], LIBPATH=[ join(FRAMEWORK_DIR, "cores", BUILD_CORE), join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")) ], LINKFLAGS=[join(FRAMEWORK_DIR, "cores", BUILD_CORE, "cpp-startup.S")], LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")]) # # Process USB flags
""" Build script for test.py test-builder.py """ import platform as pl from os.path import join, isdir, basename from SCons.Script import AlwaysBuild, Builder, Default, DefaultEnvironment uname = pl.uname() env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() framework = platform.frameworks['arduino']['package'] upload_protocol = env.subst("$UPLOAD_PROTOCOL") FRAMEWORK_DIR = platform.get_package_dir(framework) FRAMEWORK_VERSION = platform.get_package_version(framework) assert isdir(FRAMEWORK_DIR) env.Replace( AR="arm-none-eabi-ar", AS="arm-none-eabi-as", CC="arm-none-eabi-gcc", CXX="arm-none-eabi-g++", GDB="arm-none-eabi-gdb", OBJCOPY="arm-none-eabi-objcopy", RANLIB="arm-none-eabi-ranlib", SIZETOOL="arm-none-eabi-size", PROGNAME="firmware", PROGSUFFIX=".elf", FRAMEWORK_DIR=platform.get_package_dir(framework), ARFLAGS=["rcs"],
""" Arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. """ from os import listdir from os.path import isdir, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() FRAMEWORK_DIR = platform.get_package_dir( "framework-arduinonordicnrf5-bliptrip") assert isdir(FRAMEWORK_DIR) env.Append( ASFLAGS=["-x", "assembler-with-cpp"], CFLAGS=["-std=gnu11"], CCFLAGS=[ "-Os", # optimize for size "-ffunction-sections", # place each function in its own section "-fdata-sections", "-Wall", "-mthumb", "-nostdlib",
CXXFLAGS=["-fno-rtti", "-fno-exceptions", "-std=gnu++11"], LINKFLAGS=[ "-nostdlib", "-Wl,-static", "-u", "call_user_start_cpu0", "-Wl,--undefined=uxTopUsedPriority", "-Wl,--gc-sections", "-Wl,-EL", "-T", "esp32.project.ld", "-T", "esp32.rom.ld", "-T", "esp32.peripherals.ld", "-T", "esp32.rom.libgcc.ld", "-T", "esp32.rom.spiram_incompatible_fns.ld", "-u", "ld_include_panic_highint_hdl", "-u", "__cxa_guard_dummy", "-u", "__cxx_fatal_exception" ], CPPDEFINES=[ "ESP32", "ESP_PLATFORM", ("F_CPU", "$BOARD_F_CPU"), "HAVE_CONFIG_H", ("MBEDTLS_CONFIG_FILE", '\\"mbedtls/esp_config.h\\"'), ("ARDUINO", 10805), "ARDUINO_ARCH_ESP32", ("ARDUINO_VARIANT", '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")), ("ARDUINO_BOARD", '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")) ], CPPPATH=[ join(FRAMEWORK_DIR, "tools", "sdk", "include", "config"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_trace"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "app_update"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "asio"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bootloader_support"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "bt"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "coap"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "console"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "driver"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "efuse"), join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp-tls"),
before. http://energia.nu/reference/ """ from os.path import isdir, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() FRAMEWORK_DIR = platform.get_package_dir("framework-energiamsp432r") FRAMEWORK_VERSION = platform.get_package_version("framework-energiamsp432r") assert isdir(FRAMEWORK_DIR) board = env.BoardConfig() variants_dir = join( "$PROJECT_DIR", board.get("build.variants_dir")) if board.get( "build.variants_dir", "") else join(FRAMEWORK_DIR, "variants") env.Append( CPPDEFINES=[("ARDUINO", 10807), ("ENERGIA", int(FRAMEWORK_VERSION.split(".")[1]))], CCFLAGS=[ "-march=armv7e-m+fp", "-mfloat-abi=hard", "-mfpu=fpv4-sp-d16", "-mabi=aapcs", ], LINKFLAGS=[
symbols = [] for s in mbed_config.get("symbols"): s = s.replace("\"", "\\\"") macro = s.split("=", 1) if len(macro) == 2 and macro[1].isdigit(): symbols.append((macro[0], int(macro[1]))) else: symbols.append(s) env.Replace(CPPDEFINES=symbols) env.Append(LIBS=["c", "stdc++"]) # temporary fix for the linker issue # restore external build flags if "build.extra_flags" in env.BoardConfig(): env.ProcessFlags(env.BoardConfig().get("build.extra_flags")) # remove base flags env.ProcessUnFlags(env.get("BUILD_UNFLAGS")) # apply user flags env.ProcessFlags(env.get("BUILD_FLAGS")) MBED_RTOS = "PIO_FRAMEWORK_MBED_RTOS_PRESENT" in env.Flatten( env.get("CPPDEFINES", [])) if MBED_RTOS: env.Append(CPPDEFINES=["MBED_CONF_RTOS_PRESENT"]) # # Process libraries #
# # Target: Print binary size # target_size = env.Alias( "size", target_elf, env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) AlwaysBuild(target_size) # # Target: Upload by default .bin file # upload_protocol = env.subst("$UPLOAD_PROTOCOL") debug_server = env.BoardConfig().get("debug.tools", {}).get(upload_protocol, {}).get("server") upload_actions = [] if upload_protocol == "mbed": upload_actions = [ env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."), env.VerboseAction(env.UploadToDisk, "Uploading $SOURCE") ] elif upload_protocol.startswith("jlink"): def _jlink_cmd_script(env, source): build_dir = env.subst("$BUILD_DIR") if not isdir(build_dir): makedirs(build_dir)
""" import os import string from os import listdir, walk from os.path import isdir, isfile, join from SCons.Script import DefaultEnvironment from platformio import util env = DefaultEnvironment() platform = env.PioPlatform() BOARD_OPTS = env.BoardConfig() BOARD_BUILDOPTS = BOARD_OPTS.get("build", {}) BOARD_CORELIBDIRNAME = "cosa" BOARD_VARIANTLIBDIRNAME = string.replace(str(BOARD_BUILDOPTS.get("variant")), "/", os.sep) # IMPORTANT: PlatformIO packages dir is expected to have the following folder: # - framework-cosa (symlink to <Cosa project root>) FRAMEWORK_DIR = platform.get_package_dir("framework-cosa") TOOLCHAIN_DIR = platform.get_package_dir("toolchain-atmelavr") PLATFORMFW_DIR = FRAMEWORK_DIR lib_dirs = env.get("LIBSOURCE_DIRS") project_lib_dir = util.get_projectlib_dir()
"-O0", "-Wl,--gc-sections,--relax", "-nostartfiles", "-nostdlib" ], LIBS=["c", "gcc", "m", "stdc++", "nosys"], BUILDERS=dict(ElfToBin=Builder(action=env.VerboseAction( " ".join(["$OBJCOPY", "-O", "binary", "$SOURCES", "$TARGET"]), "Building $TARGET"), suffix=".bin"), ElfToHex=Builder(action=env.VerboseAction( " ".join([ "$OBJCOPY", "-O", "ihex", "-R", ".eeprom", "$SOURCES", "$TARGET" ]), "Building $TARGET"), suffix=".hex"))) if "BOARD" in env: env.Append(CCFLAGS=["-mcpu=%s" % env.BoardConfig().get("build.cpu")], LINKFLAGS=["-mcpu=%s" % env.BoardConfig().get("build.cpu")]) # # Target: Build executable and linkable firmware # target_elf = None if "nobuild" in COMMAND_LINE_TARGETS: target_elf = join("$BUILD_DIR", "${PROGNAME}.elf") target_firm = join("$BUILD_DIR", "${PROGNAME}.bin") else: target_elf = env.BuildProgram() target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf) AlwaysBuild(env.Alias("nobuild", target_firm))
"-Wl,--gc-sections", "-Wl,--unresolved-symbols=report-all", "-Wl,--warn-common", "-Wl,--warn-section-align", "-mfloat-abi=hard", "-mfpu=fpv4-sp-d16", "-fsingle-precision-constant" ], LIBS=["libdriverlib"], CPPPATH=[ join(FRAMEWORK_DIR, "system"), join(FRAMEWORK_DIR, "system", "inc"), join(FRAMEWORK_DIR, "system", "driverlib"), join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")), join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")) ], LIBPATH=[ join(FRAMEWORK_DIR, "variants", env.BoardConfig().get("build.variant")), join(FRAMEWORK_DIR, "system", "driverlib") ], LIBSOURCE_DIRS=[ join(FRAMEWORK_DIR, "libraries") ] )
kinds of creative coding, interactive objects, spaces or physical experiences. http://arduino.cc/en/Reference/HomePage """ from os.path import isdir, join from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() FRAMEWORK_DIR = platform.get_package_dir("framework-arduinosam") assert isdir(FRAMEWORK_DIR) FRAMEWORK_VERSION = platform.get_package_version("framework-arduinosam") BUILD_CORE = env.BoardConfig().get("build.core", "") BUILD_SYSTEM = env.BoardConfig().get("build.system", BUILD_CORE) SYSTEM_DIR = join(FRAMEWORK_DIR, "system", BUILD_SYSTEM) # USB flags ARDUINO_USBDEFINES = [("ARDUINO", int(FRAMEWORK_VERSION.split(".")[1]))] if "build.usb_product" in env.BoardConfig(): ARDUINO_USBDEFINES += [ ("USB_VID", env.BoardConfig().get("build.hwids")[0][0]), ("USB_PID", env.BoardConfig().get("build.hwids")[0][1]), ("USB_PRODUCT", '\\"%s\\"' % env.BoardConfig().get("build.usb_product", "").replace('"', "")), ("USB_MANUFACTURER", '\\"%s\\"' % env.BoardConfig().get("vendor", "").replace('"', "")) ]
PROGSUFFIX=".elf") # Allow user to override via pre:script if env.get("PROGNAME", "program") == "program": env.Replace(PROGNAME="firmware") env.Append( # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode) ASFLAGS=env.get("CCFLAGS", [])[:], BUILDERS=dict( ElfToBin=Builder(action=env.VerboseAction( " ".join([ '"$PYTHONEXE" "$OBJCOPY"', "--chip", "esp32", "elf2image", "--flash_mode", "$BOARD_FLASH_MODE", "--flash_freq", "${__get_board_f_flash(__env__)}", "--flash_size", env.BoardConfig().get("upload.flash_size", "detect"), "-o", "$TARGET", "$SOURCES" ]), "Building $TARGET"), suffix=".bin"), DataToBin=Builder(action=env.VerboseAction( " ".join([ '"$MKSPIFFSTOOL"', "-c", "$SOURCES", "-p", "$SPIFFS_PAGE", "-b", "$SPIFFS_BLOCK", "-s", "$SPIFFS_SIZE", "$TARGET" ]), "Building SPIFFS image from '$SOURCES' directory to $TARGET"), emitter=__fetch_spiffs_size, source_factory=env.Dir, suffix=".bin"))) if not env.get("PIOFRAMEWORK"): env.SConscript("frameworks/_bare.py", exports="env") #
from SCons.Script import DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-lpc176x") assert isdir(FRAMEWORK_DIR) SYSTEM_DIR = join(FRAMEWORK_DIR, "system") # USB flags ARDUINO_USBDEFINES = ["ARDUINO_ARCH_LPC176X", ("ARDUINOLPC", 10805)] env.Append(CPPDEFINES=ARDUINO_USBDEFINES, CPPPATH=[ join(FRAMEWORK_DIR, "cores", env.BoardConfig().get("build.core")) ], LINKFLAGS=[ "-Wl,-T" + join(SYSTEM_DIR, "CMSIS/system/LPC1768.ld") + ",--gc-sections,--relax", ]) # # CMSIS # env.Append(CPPPATH=[ join(SYSTEM_DIR, "CMSIS", "include"), join(SYSTEM_DIR, "CMSIS", "lib") ], LIBPATH=[join(SYSTEM_DIR, "CMSIS", "bin")],
IntoRobot IntoRobot Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. http://www.intorobot.com """ from os.path import isdir, join from SCons.Script import COMMAND_LINE_TARGETS, DefaultEnvironment env = DefaultEnvironment() platform = env.PioPlatform() board = env.BoardConfig() FRAMEWORK_NAME = "framework-intorobot-l6" FRAMEWORK_DIR = platform.get_package_dir(FRAMEWORK_NAME) FRAMEWORK_VERSION = platform.get_package_version(FRAMEWORK_NAME) assert isdir(FRAMEWORK_DIR) env.Replace(LIBS=[], LINKFLAGS=[ "-Os", "-Wl,--gc-sections,--relax", "-mthumb", "-nostartfiles", "-mcpu=%s" % env.BoardConfig().get("build.cpu") ]) env.Append( ASFLAGS=[ "-fmessage-length=0",
"-Os", # optimize for size "-Wall", # show warnings "-ffunction-sections", # place each function in its own section "-fdata-sections", "-mthumb", "-nostdlib", "-fsingle-precision-constant" ], CXXFLAGS=[ "-fno-exceptions", "-felide-constructors", "-fno-rtti", "-std=gnu++14" ], CPPDEFINES=[("F_CPU", "$BOARD_F_CPU"), "LAYOUT_US_ENGLISH"], RANLIBFLAGS=["-s"], LINKFLAGS=[ "-Os", "-Wl,--gc-sections,--relax", "-mthumb", "-Wl,--defsym=__rtc_localtime=$UNIX_TIME", "-fsingle-precision-constant" ], LIBS=["m", "stdc++"]) if env.BoardConfig().id_ in ("teensy35", "teensy36"): env.Append(CCFLAGS=["-mfloat-abi=hard", "-mfpu=fpv4-sp-d16"], LINKFLAGS=["-mfloat-abi=hard", "-mfpu=fpv4-sp-d16"]) if "BOARD" in env: env.Append(CCFLAGS=["-mcpu=%s" % env.BoardConfig().get("build.cpu")], LINKFLAGS=["-mcpu=%s" % env.BoardConfig().get("build.cpu")]) # copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode) env.Append(ASFLAGS=env.get("CCFLAGS", [])[:])