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"
示例#3
0
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)
示例#4
0
     "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)
示例#6
0
        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\\"'),
示例#7
0
# 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()
示例#8
0
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"),
示例#9
0
    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',
示例#10
0
        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",
示例#11
0
        "-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"),
示例#12
0
     "-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=[
示例#13
0
#
# 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",
示例#14
0
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",
示例#15
0
文件: arduino.py 项目: OS-Q/P231
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
示例#16
0
"""
    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",
示例#18
0
 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"),
示例#19
0
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=[
示例#20
0
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
#
示例#21
0
#
# 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)
示例#22
0
     "-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=[
示例#23
0
"""

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()
示例#24
0
        "-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))
示例#25
0
        "-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")
    ]
)
示例#26
0
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('"', ""))
    ]
示例#27
0
    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",
示例#30
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", [])[:])