env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],

    CFLAGS=[
        "-std=gnu99",
        "-Wpointer-arith",
        "-Wno-implicit-function-declaration",
        "-Wl,-EL",
        "-fno-inline-functions",
        "-nostdlib"
    ],

    CCFLAGS=[
        "-Os",  # optimize for size
        "-mlongcalls",
        "-mtext-section-literals",
        "-falign-functions=4",
        "-U__STRICT_ANSI__",
        "-ffunction-sections",
        "-fdata-sections"
    ],

    CXXFLAGS=[
        "-fno-rtti",
        "-fno-exceptions",
        "-std=c++11",
        "-Wno-literal-suffix"
    ],

    LINKFLAGS=[
        "-Os",
        "-nostdlib",
        "-Wl,--no-check-sections",
        "-Wl,-static",
        "-Wl,--gc-sections",
        "-u", "call_user_start",
        "-u", "_printf_float",
        "-u", "_scanf_float"
    ],

    CPPDEFINES=[
        ("F_CPU", "$BOARD_F_CPU"),
        "__ets__",
        "ICACHE_FLASH"
    ],

    CPPPATH=[
        join(FRAMEWORK_DIR, "include"),
        join(FRAMEWORK_DIR, "extra_include"),
        join(FRAMEWORK_DIR, "driver_lib", "include"),
        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", "spiffs"),
        join(FRAMEWORK_DIR, "include", "ssl"),
        join(FRAMEWORK_DIR, "include", "json"),
        join(FRAMEWORK_DIR, "include", "openssl"),
    ],

    LIBPATH=[
        join(FRAMEWORK_DIR, "lib"),
        join(FRAMEWORK_DIR, "ld")
    ],

    LIBS=[
        "cirom", "crypto", "driver", "espconn", "espnow", "freertos", "gcc",
        "json", "hal", "lwip", "main", "mbedtls", "mesh", "mirom", "net80211", "nopoll",
        "phy", "pp", "pwm", "smartconfig", "spiffs", "ssl", "wpa", "wps"
    ]
)
                ("IDF_VER",
                 '\\"%s\\"' % platform.get_package_version("framework-espidf"))
            ],
            CCFLAGS=[
                "-Werror=all", "-Wno-error=deprecated-declarations", "-Wextra",
                "-Wno-unused-parameter", "-Wno-sign-compare",
                "-Wno-error=unused-function"
            ],
            LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")])

env.Append(LINKFLAGS=[
    "-u", "__cxa_guard_dummy", "-u", "ld_include_panic_highint_hdl", "-T",
    "esp32.common.ld", "-T", "esp32.rom.ld", "-T", "esp32.peripherals.ld",
    "-T", "esp32.rom.libgcc.ld", "-T", "esp32.rom.spiram_incompatible_fns.ld"
],
           FLASH_EXTRA_IMAGES=[("0x1000", join("$BUILD_DIR",
                                               "bootloader.bin")),
                               ("0x8000", join("$BUILD_DIR",
                                               "partitions.bin"))],
           CPPDEFINES=[("GCC_NOT_5_2_0",
                        "%d" % 1 if get_toolchain_version() != "5.2.0" else 0)
                       ])

cppdefines = env.Flatten(env.get("CPPDEFINES", []))

if "PIO_FRAMEWORK_ESP_IDF_ENABLE_EXCEPTIONS" in cppdefines:

    # remove unnecessary flag defined in main.py that disables exceptions
    try:
        index = env['CXXFLAGS'].index("-fno-exceptions")
        if index > 0:
            env['CXXFLAGS'].remove("-fno-exceptions")
Ejemplo n.º 3
0
env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],

    # CFLAGS=[
    # ],
    CCFLAGS=[
        "-Wall",
        "-Wunreachable-code",
    ],

    # NOTE: C++ probably not supported.
    CXXFLAGS=["-fno-rtti", "-fno-exceptions", "-std=c++11"],
    LINKFLAGS=[
        "-Wl,--gc-sections",
        "-Wl,-u_AppColdStart",
        "-Wl,-u_AppWarmStart",

        # Chip/JNxxxx/Build/config_JNxxxx.mk
        "-nostartfiles",
        #"-nostdlib",
    ],
    JENNIC_CHIP=JENNIC_CHIP,
    CPPDEFINES=[
        #("F_CPU", "$BOARD_F_CPU"),
        "EMBEDDED",
        "RTOS",  # Always tell any actual drivers they're running under an RTOS in this usage

        # CHANNEL ?= 0
        ("MK_CHANNEL", "0"),

        # OTA Support
        #"BUILD_OTA",
        #("CLD_OTA_MANF_ID_VALUE", "0x1037"),
        #"OTA_ENCRYPTED",
        "USER_VSR_HANDLER",

        # Chip/Common/Build/config.mk
        ("JENNIC_CHIP", JENNIC_CHIP),
        "JENNIC_CHIP_" + JENNIC_CHIP,
        ("JENNIC_CHIP_FAMILY", JENNIC_CHIP_FAMILY),
        "JENNIC_CHIP_FAMILY_" + JENNIC_CHIP_FAMILY,
        "JENNIC_STACK_" + JENNIC_STACK,
        "JENNIC_MAC_" + JENNIC_MAC,

        # Chip/JNxxxx/Build/config_JNxxxx.mk
        (JENNIC_CHIP_FAMILY, JENNIC_CHIP_FAMILY_ID),
        (JENNIC_CHIP, JENNIC_CHIP_ID),
        ("JENNIC_CHIP_NAME", "_" + JENNIC_CHIP),
        ("JENNIC_CHIP_FAMILY_NAME", "_" + JENNIC_CHIP_FAMILY),
        "WATCHDOG_ENABLED",

        # Featureset
        ("JENNIC_HW_BBC_RXINCCA", "1"),
        ("JENNIC_HW_BBC_DMA", "1"),
        ("JENNIC_HW_BBC_ISA", "0"),
        ("JENNIC_SW_EXTERNAL_FLASH", "0"),
        ("JN516X_DMA_UART_BACKWARDS_COMPATIBLE_API", "1"),
        ("UART_BACKWARDS_COMPATIBLE_API", "1"),
        #("PDM_DESCRIPTOR_BASED_API","1"),

        # Platform/Common/Build/config.mk
        ("JENNIC_PCB", "DEVKIT4"),
        "JENNIC_PCB_DEVKIT4",
    ],
    CPPPATH=[
        # Hardware Development Platforms
        join(SDK_PLATFORM_DIR, "Common", "Include"),
        join(SDK_PLATFORM_DIR, "DK4", "Include"),

        # Common Stack
        join(SDK_COMPONENTS_DIR, "Common", "Include"),
        join(SDK_COMPONENTS_DIR, "HardwareApi", "Include"),
        join(SDK_COMPONENTS_DIR, "Aes", "Include"),
        join(SDK_COMPONENTS_DIR, "DBG", "Include"),
    ],

    # LIBSOURCE_DIRS=[
    #     join(FRAMEWORK_DIR, "libraries")
    # ],
    LIBPATH=[
        join(SDK_COMPONENTS_DIR, "Library"),
        join(SDK_CHIP_DIR, "Build"),
        join(SDK_PLATFORM_DIR, "DK4", "Library"),
    ],
    JNLIBS=[
        "Aes",
        "HardwareApi",
        "MicroSpecific",
        "Boot",
        "Recal",
        # Platform-specific board library
        "BoardLib"
    ],
    LIBS=[
        # # Standard libraries: Peripheral API, MAC, etc.
        # "Aes_"+JENNIC_CHIP_FAMILY,
        # "HardwareApi_"+JENNIC_CHIP_FAMILY,
        # "MicroSpecific_"+JENNIC_CHIP_FAMILY,
        # "Boot_"+JENNIC_CHIP_FAMILY,

        # "Recal_"+JENNIC_CHIP_FAMILY,

        # # Platform-specific board library
        # "BoardLib_"+JENNIC_CHIP_FAMILY,
    ])
Ejemplo n.º 4
0
env.Append(
    ASFLAGS=[
        "-c",
        "-g",
        "-w",
        "-x", "assembler-with-cpp",
        "-mthumb"
    ],

    CFLAGS=[
        "-MMD"
    ],

    # both c and cpp
    CCFLAGS=[
        "-Os",  # optimize for size
        "-w",  # disables compiler warnings
        "-nostdlib",
        "-Wall",  # show warnings
        "-ffunction-sections",  # place each function in its own section
        "-fdata-sections",
        "-mthumb"
    ],

    CXXFLAGS=[
        "-fno-exceptions",
        "-fno-threadsafe-statics",
        "-fpermissive",
        "-mthumb"
    ],

    CPPDEFINES=[
        ("F_CPU", "$BOARD_F_CPU")
    ],

    LINKFLAGS=[
        "-Os",
        "-nostartfiles",
        "-nostdlib",
        "-Wl,--gc-sections",
        "-mthumb",
        "--specs=nano.specs",
        "--specs=nosys.specs"
    ],

    LIBS=["m", "gcc", "c", "stdc++"],

    BUILDERS=dict(
        ElfToHex=Builder(
            action=env.VerboseAction(" ".join([
                "$OBJCOPY",
                "-O",
                "ihex",
                "$SOURCES",
                "$TARGET"
            ]), "Building $TARGET"),
            suffix=".hex"
        )
    )
)
Ejemplo n.º 5
0
            ERASECMD="nrfjprog $ERASEFLAGS",
            PROGSUFFIX=".elf")

# Allow user to override via pre:script
if env.get("PROGNAME", "program") == "program":
    env.Replace(PROGNAME="firmware")

env.Append(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"),
    MergeHex=Builder(action=env.VerboseAction(
        " ".join([
            '"%s"' %
            join(platform.get_package_dir("tool-sreccat") or "", "srec_cat"),
            "$SOFTDEVICEHEX", "-intel", "$SOURCES", "-intel", "-o", "$TARGET",
            "-intel", "--line-length=44"
        ]), "Building $TARGET"),
                     suffix=".hex")))

upload_protocol = env.subst("$UPLOAD_PROTOCOL")

if "nrfutil" == upload_protocol or (
        board.get("build.bsp.name", "nrf5") == "adafruit"
        and "arduino" in env.get("PIOFRAMEWORK", [])):
    env.Append(BUILDERS=dict(
Ejemplo n.º 6
0
env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],
    CFLAGS=["-march=rv32imc", "-std=gnu99", "-Wno-old-style-declaration"],
    CXXFLAGS=[
        "-march=rv32imc", "-std=gnu++11", "-fno-exceptions", "-fno-rtti"
    ],
    CCFLAGS=[
        "-ffunction-sections", "-fdata-sections", "-Wno-error=unused-function",
        "-Wno-error=unused-variable", "-Wno-error=deprecated-declarations",
        "-Wno-unused-parameter", "-Wno-sign-compare", "-ggdb",
        "-Wno-error=format=", "-nostartfiles", "-Wno-format", "-Og",
        "-fstrict-volatile-bitfields", "-Wno-error=unused-but-set-variable",
        "-fno-jump-tables", "-fno-tree-switch-conversion", "-MMD"
    ],
    LINKFLAGS=[
        "-nostartfiles", "-march=rv32imc", "--specs=nosys.specs", "-Wl,--cref",
        "-Wl,--gc-sections", "-fno-rtti", "-fno-lto",
        "-Wl,--wrap=mbedtls_mpi_exp_mod", "-Wl,--undefined=uxTopUsedPriority",
        "-Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting",
        "-Wl,--wrap=__register_frame_info_bases",
        "-Wl,--wrap=__register_frame_info", "-Wl,--wrap=__register_frame",
        "-Wl,--wrap=__register_frame_info_table_bases",
        "-Wl,--wrap=__register_frame_info_table",
        "-Wl,--wrap=__register_frame_table",
        "-Wl,--wrap=__deregister_frame_info_bases",
        "-Wl,--wrap=__deregister_frame_info", "-Wl,--wrap=_Unwind_Find_FDE",
        "-Wl,--wrap=_Unwind_GetGR", "-Wl,--wrap=_Unwind_GetCFA",
        "-Wl,--wrap=_Unwind_GetIP", "-Wl,--wrap=_Unwind_GetIPInfo",
        "-Wl,--wrap=_Unwind_GetRegionStart",
        "-Wl,--wrap=_Unwind_GetDataRelBase",
        "-Wl,--wrap=_Unwind_GetTextRelBase", "-Wl,--wrap=_Unwind_SetIP",
        "-Wl,--wrap=_Unwind_SetGR",
        "-Wl,--wrap=_Unwind_GetLanguageSpecificData",
        "-Wl,--wrap=_Unwind_FindEnclosingFunction",
        "-Wl,--wrap=_Unwind_Resume", "-Wl,--wrap=_Unwind_RaiseException",
        "-Wl,--wrap=_Unwind_DeleteException",
        "-Wl,--wrap=_Unwind_ForcedUnwind",
        "-Wl,--wrap=_Unwind_Resume_or_Rethrow", "-Wl,--wrap=_Unwind_Backtrace",
        "-Wl,--wrap=__cxa_call_unexpected", "-Wl,--wrap=__gxx_personality_v0",
        "-T", "memory.ld", "-T", "sections.ld", "-T", "esp32c3.rom.ld", "-T",
        "esp32c3.rom.api.ld", "-T", "esp32c3.rom.libgcc.ld", "-T",
        "esp32c3.rom.newlib.ld", "-T", "esp32c3.rom.version.ld", "-T",
        "esp32c3.peripherals.ld", "-u", "_Z5setupv", "-u", "_Z4loopv", "-u",
        "esp_app_desc", "-u", "pthread_include_pthread_impl", "-u",
        "pthread_include_pthread_cond_impl", "-u",
        "pthread_include_pthread_local_storage_impl", "-u", "start_app", "-u",
        "__ubsan_include", "-u", "__assert_func", "-u",
        "vfs_include_syscalls_impl", "-u", "app_main", "-u",
        "newlib_include_heap_impl", "-u", "newlib_include_syscalls_impl", "-u",
        "newlib_include_pthread_impl", "-u", "__cxa_guard_dummy", "-u",
        "__cxx_fatal_exception",
        '-Wl,-Map="%s"' %
        join("$BUILD_DIR", basename(env.subst("${PROJECT_DIR}.map")))
    ],
    CPPPATH=[
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "config"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "newlib",
             "platform_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "freertos",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "freertos",
             "port", "riscv", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_hw_support", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_hw_support", "include", "soc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_hw_support", "include", "soc", "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_hw_support", "port", "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_hw_support", "port", "esp32c3", "private_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "heap",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "log",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "lwip",
             "include", "apps"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "lwip",
             "include", "apps", "sntp"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "lwip",
             "lwip", "src", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "lwip",
             "port", "esp32", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "lwip",
             "port", "esp32", "include", "arch"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "soc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "soc",
             "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "soc",
             "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal",
             "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal",
             "platform_port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom",
             "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom",
             "include", "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_common",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system",
             "port", "soc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system",
             "port", "include", "riscv"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system",
             "port", "public_compat"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "riscv",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "driver",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "driver",
             "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_pm",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_ringbuf", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "efuse",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "efuse",
             "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "vfs",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_wifi",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_event",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_netif",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_eth",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "tcpip_adapter", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_phy",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_phy",
             "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "app_trace",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_timer",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_ipc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mbedtls",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mbedtls",
             "mbedtls", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mbedtls",
             "esp_crt_bundle", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "app_update",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "spi_flash",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "bootloader_support", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "nvs_flash",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "pthread",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_gdbstub", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_gdbstub", "riscv"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_gdbstub", "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "espcoredump", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "espcoredump", "include", "port", "riscv"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "wpa_supplicant", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "wpa_supplicant", "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "wpa_supplicant", "include", "esp_supplicant"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "ieee802154",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "asio",
             "asio", "asio", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "asio",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt",
             "common", "osi", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt",
             "include", "esp32c3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt",
             "common", "api", "include", "api"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt",
             "common", "btc", "profile", "esp", "blufi", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt",
             "common", "btc", "profile", "esp", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "host",
             "bluedroid", "api", "include", "api"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "cbor",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "unity",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "unity",
             "unity", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "cmock",
             "CMock", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "coap",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "coap",
             "port", "include", "coap"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "coap",
             "libcoap", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "coap",
             "libcoap", "include", "coap2"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "console"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "nghttp",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "nghttp",
             "nghttp2", "lib", "includes"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp-tls"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp-tls",
             "esp-tls-crypto"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_adc_cal", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_hid",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "tcp_transport", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_http_client", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_http_server", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_https_ota", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_https_server", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_lcd",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_lcd",
             "interface"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "protobuf-c",
             "protobuf-c"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "protocomm",
             "include", "common"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "protocomm",
             "include", "security"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "protocomm",
             "include", "transports"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mdns",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_local_ctrl", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "sdmmc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_serial_slave_link", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_websocket_client", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "expat",
             "expat", "expat", "lib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "expat",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "wear_levelling", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "fatfs",
             "diskio"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "fatfs",
             "vfs"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "fatfs",
             "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "freemodbus",
             "common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "idf_test",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "idf_test",
             "include", "esp32c3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "jsmn",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "json",
             "cJSON"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "libsodium",
             "libsodium", "src", "libsodium", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "libsodium",
             "port_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mqtt",
             "esp-mqtt", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "openssl",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "spiffs",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "wifi_provisioning", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_littlefs", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include",
             "esp_littlefs", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "fb_gfx",
             "include"),
        join(FRAMEWORK_DIR, "cores",
             env.BoardConfig().get("build.core"))
    ],
    LIBPATH=[
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "lib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "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", "-llwip", "-llog", "-lheap", "-lsoc",
        "-lesp_hw_support", "-lriscv", "-lesp_common", "-lesp_timer",
        "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt",
        "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-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", "-lspiffs", "-lwifi_provisioning", "-lesp_littlefs",
        "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap",
        "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_https_server",
        "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn",
        "-llibsodium", "-lmqtt", "-lesp_adc_cal", "-lfatfs",
        "-lwear_levelling", "-lopenssl", "-lspiffs", "-lwifi_provisioning",
        "-lprotocomm", "-lbt", "-lbtdm_app", "-lprotobuf-c", "-lmdns",
        "-lconsole", "-ljson", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-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",
        "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lriscv",
        "-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", "-lmbedtls", "-lmbedcrypto", "-lmbedx509",
        "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp",
        "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy",
        "-lphy", "-lbtbb", "-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", "WITH_POSIX", "_GNU_SOURCE",
        ("IDF_VER", '\\"v4.4-dev-2313-gc69f0ec32\\"'), "ESP_PLATFORM",
        "ARDUINO_ARCH_ESP32", "ESP32", ("F_CPU", "$BOARD_F_CPU"),
        ("ARDUINO", 10812),
        ("ARDUINO_VARIANT",
         '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")),
        ("ARDUINO_BOARD",
         '\\"%s\\"' % env.BoardConfig().get("name").replace('"', ""))
    ],
    LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")],
    FLASH_EXTRA_IMAGES=[(
        "0x0000",
        join(
            FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "bin",
            "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin"
        )), ("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
                        ("0xe000",
                         join(FRAMEWORK_DIR, "tools", "partitions",
                              "boot_app0.bin"))])
Ejemplo n.º 7
0
env.Append(

    ASFLAGS=env.get("CCFLAGS", [])[:],

    LINKFLAGS = [
        "-Wl,--start-group",
        "-lc",
        "-lgcc",
        "-lm",
        "-Wl,--end-group",
        join(TOOLCHAIN_DIR, "lib", "gcc", "riscv64-unknown-elf", "8.2.0", "crti.o"),
        join(TOOLCHAIN_DIR, "lib", "gcc", "riscv64-unknown-elf", "8.2.0", "crtbegin.o"),
    ],

    CPPPATH = [
        join(FRAMEWORK_DIR, "lib", "arch", "include"),
        join(FRAMEWORK_DIR, "lib", "bsp"),
        join(FRAMEWORK_DIR, "lib", "bsp", "include"),
        join(FRAMEWORK_DIR, "lib", "bsp", "config"),
        join(FRAMEWORK_DIR, "lib", "bsp", "device"),
        join(FRAMEWORK_DIR, "lib", "bsp", "syscalls"),
        join(FRAMEWORK_DIR, "lib", "drivers"),
        join(FRAMEWORK_DIR, "lib", "drivers", "src", "misc", "ws2812b"),
        join(FRAMEWORK_DIR, "lib", "drivers", "src", "network"),
        join(FRAMEWORK_DIR, "lib", "drivers", "src", "storage"),
        join(FRAMEWORK_DIR, "lib", "drivers", "include"),
        join(FRAMEWORK_DIR, "lib", "drivers", "include", "misc", "ws2812b"),
        join(FRAMEWORK_DIR, "lib", "drivers", "include", "network"),
        join(FRAMEWORK_DIR, "lib", "drivers", "include", "storage"),
        join(FRAMEWORK_DIR, "lib", "freertos"),
        join(FRAMEWORK_DIR, "lib", "freertos", "conf"),
        join(FRAMEWORK_DIR, "lib", "freertos", "include"),
        join(FRAMEWORK_DIR, "lib", "freertos", "include", "kernel"),
        join(FRAMEWORK_DIR, "lib", "freertos", "portable"),
        join(FRAMEWORK_DIR, "lib", "hal"),
        join(FRAMEWORK_DIR, "lib", "hal", "include"),
        join(FRAMEWORK_DIR, "lib", "posix"),
        join(FRAMEWORK_DIR, "lib", "posix", "include"),
        join(FRAMEWORK_DIR, "lib", "utils", "include"),
        join(FRAMEWORK_DIR, "third_party", "fatfs", "source"),
        join(FRAMEWORK_DIR, "third_party", "lwip", "src", "include"),
        join(FRAMEWORK_DIR, "third_party")
    ],

    LIBS = [
        "c", "gcc", "m", "stdc++", "atomic"
    ]

)
Ejemplo n.º 8
0
            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',
            PROGSUFFIX=".elf")

# Allow user to override via pre:script
if env.get("PROGNAME", "program") == "program":
    env.Replace(PROGNAME="firmware")

env.Append(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 not env.get("PIOFRAMEWORK"):
    env.SConscript("frameworks/_bare.py")

#
# Target: Build executable and linkable firmware
#

if "zephyr" in env.get("PIOFRAMEWORK", []):
    env.SConscript(join(platform.get_package_dir("framework-zephyr"),
                        "scripts", "platformio", "platformio-build-pre.py"),
Ejemplo n.º 9
0
env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],
    CFLAGS=["-mlongcalls", "-std=gnu99", "-Wno-old-style-declaration"],
    CXXFLAGS=["-mlongcalls", "-std=gnu++11", "-fexceptions", "-fno-rtti"],
    CCFLAGS=[
        "-ffunction-sections", "-fdata-sections", "-Wno-error=unused-function",
        "-Wno-error=unused-variable", "-Wno-error=deprecated-declarations",
        "-Wno-unused-parameter", "-Wno-sign-compare", "-ggdb", "-Os",
        "-freorder-blocks", "-Wwrite-strings", "-fstack-protector",
        "-fstrict-volatile-bitfields", "-Wno-error=unused-but-set-variable",
        "-fno-jump-tables", "-fno-tree-switch-conversion", "-MMD"
    ],
    LINKFLAGS=[
        "-mlongcalls", "-Wl,--cref", "-Wl,--gc-sections", "-fno-rtti",
        "-fno-lto", "-Wl,--wrap=longjmp", "-Wl,--undefined=uxTopUsedPriority",
        "-T", "memory.ld", "-T", "sections.ld", "-T", "esp32s3.rom.ld", "-T",
        "esp32s3.rom.api.ld", "-T", "esp32s3.rom.libgcc.ld", "-T",
        "esp32s3.rom.newlib.ld", "-T", "esp32s3.rom.version.ld", "-T",
        "esp32s3.rom.newlib-time.ld", "-T", "esp32s3.peripherals.ld", "-u",
        "_Z5setupv", "-u", "_Z4loopv", "-u", "esp_app_desc", "-u",
        "pthread_include_pthread_impl", "-u",
        "pthread_include_pthread_cond_impl", "-u",
        "pthread_include_pthread_local_storage_impl", "-u",
        "pthread_include_pthread_rwlock_impl", "-u",
        "include_esp_phy_override", "-u", "ld_include_highint_hdl", "-u",
        "start_app", "-u", "start_app_other_cores", "-u", "__ubsan_include",
        "-u", "__assert_func", "-u", "vfs_include_syscalls_impl", "-u",
        "app_main", "-u", "newlib_include_heap_impl", "-u",
        "newlib_include_syscalls_impl", "-u", "newlib_include_pthread_impl",
        "-u", "newlib_include_assert_impl", "-u", "__cxa_guard_dummy",
        '-Wl,-Map="%s"' % join("${BUILD_DIR}", "${PROGNAME}.map")
    ],
    CPPPATH=[
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "newlib",
             "platform_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freertos",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freertos",
             "include", "esp_additions", "freertos"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freertos",
             "port", "xtensa", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freertos",
             "include", "esp_additions"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_hw_support", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_hw_support", "include", "soc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_hw_support", "include", "soc", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_hw_support", "port", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_hw_support", "port", "esp32s3", "private_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "heap",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "log",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "lwip",
             "include", "apps"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "lwip",
             "include", "apps", "sntp"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "lwip",
             "lwip", "src", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "lwip",
             "port", "esp32", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "lwip",
             "port", "esp32", "include", "arch"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "soc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "soc",
             "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "soc",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "hal",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "hal",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "hal",
             "platform_port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_rom",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_rom",
             "include", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_rom",
             "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_common",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_system",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_system",
             "port", "soc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_system",
             "port", "public_compat"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "xtensa",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "xtensa",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "driver",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "driver",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_pm",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_ringbuf", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "efuse",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "efuse",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "vfs",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_wifi",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_event",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_netif",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_eth",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "tcpip_adapter", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_phy",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_phy",
             "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_ipc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "app_trace",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_timer",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "mbedtls",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "mbedtls",
             "mbedtls", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "mbedtls",
             "esp_crt_bundle", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "app_update",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "spi_flash",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "bootloader_support", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "nvs_flash",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "pthread",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_gdbstub", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_gdbstub", "xtensa"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_gdbstub", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "espcoredump", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "espcoredump", "include", "port", "xtensa"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "wpa_supplicant", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "wpa_supplicant", "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "wpa_supplicant", "esp_supplicant", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "ieee802154",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "console"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "asio",
             "asio", "asio", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "asio",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "common", "osi", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "include", "esp32s3", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "common", "api", "include", "api"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "common", "btc", "profile", "esp", "blufi", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "common", "btc", "profile", "esp", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt", "host",
             "bluedroid", "api", "include", "api"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_common", "tinycrypt", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_core"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_core", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_core", "storage"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "btc", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_models", "common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_models", "client", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "mesh_models", "server", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "api", "core", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "api", "models", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "bt",
             "esp_ble_mesh", "api"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "cbor",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "unity",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "unity",
             "unity", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "cmock",
             "CMock", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "coap",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "coap",
             "libcoap", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "nghttp",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "nghttp",
             "nghttp2", "lib", "includes"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-tls"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-tls",
             "esp-tls-crypto"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_adc_cal", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_hid",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "tcp_transport", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_http_client", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_http_server", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_https_ota", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_https_server", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_lcd",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp_lcd",
             "interface"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "protobuf-c",
             "protobuf-c"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "protocomm",
             "include", "common"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "protocomm",
             "include", "security"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "protocomm",
             "include", "transports"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "mdns",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_local_ctrl", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "sdmmc",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_serial_slave_link", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_websocket_client", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "expat",
             "expat", "expat", "lib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "expat",
             "port", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "wear_levelling", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "fatfs",
             "diskio"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "fatfs",
             "vfs"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "fatfs",
             "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freemodbus",
             "common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "idf_test",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "idf_test",
             "include", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "jsmn",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "json",
             "cJSON"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "libsodium",
             "libsodium", "src", "libsodium", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "libsodium",
             "port_include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "mqtt",
             "esp-mqtt", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "openssl",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "perfmon",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "spiffs",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "usb",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "ulp",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "wifi_provisioning", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "button",
             "button", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "rmaker_common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "json_parser", "upstream", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "json_parser", "upstream"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "json_generator", "upstream"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_schedule", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_rainmaker", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "qrcode",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "ws2812_led"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "dotprod", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "support", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "hann", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "blackman", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "blackman_harris", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "blackman_nuttall", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "nuttall", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "windows", "flat_top", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "iir", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "fir", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "add", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "sub", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "mul", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "addc", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "mulc", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "math", "sqrt", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "matrix", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "fft", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "dct", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "conv", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "common", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "kalman", "ekf", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dsp",
             "modules", "kalman", "ekf_imu13states", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "freertos",
             "include", "freertos"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "arduino_tinyusb", "tinyusb", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "arduino_tinyusb", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_littlefs", "src"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp_littlefs", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "tool"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "typedef"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "image"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "math"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "nn"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "layer"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "detect"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-dl",
             "include", "model_zoo"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-sr",
             "esp-tts", "esp_tts_chinese", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "esp-sr",
             "include", "esp32s3"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp32-camera", "driver", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include",
             "esp32-camera", "conversions", "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "include", "fb_gfx",
             "include"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3",
             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", "esp32s3", "lib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "ld"),
        join(FRAMEWORK_DIR, "tools", "sdk", "esp32s3",
             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", "-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_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", "-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",
        "-lesp_adc_cal", "-lesp_hid", "-lfatfs", "-lwear_levelling",
        "-lopenssl", "-lesp_rainmaker", "-lesp_local_ctrl",
        "-lesp_https_server", "-lwifi_provisioning", "-lprotocomm", "-lbt",
        "-lbtdm_app", "-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", "-lwakenet", "-lhufzip",
        "-lesp_audio_front_end", "-lesp_audio_processor", "-lmultinet",
        "-lesp-sr", "-lwakenet", "-lhufzip", "-lesp_audio_front_end",
        "-lesp_audio_processor", "-lmultinet", "-ljson", "-lspiffs",
        "-ldl_lib", "-lc_speech_features", "-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", "-lbtbb",
        "-lesp_phy", "-lphy", "-lbtbb", "-lesp_phy", "-lphy", "-lbtbb",
        "-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", "WITH_POSIX", "_GNU_SOURCE",
        ("IDF_VER", '\\"v4.4.1-1-gb8050b365e\\"'), "ESP_PLATFORM",
        "_POSIX_READER_WRITER_LOCKS", "ARDUINO_ARCH_ESP32", "ESP32",
        ("F_CPU", "$BOARD_F_CPU"), ("ARDUINO", 10812),
        ("ARDUINO_VARIANT",
         '\\"%s\\"' % env.BoardConfig().get("build.variant").replace('"', "")),
        ("ARDUINO_BOARD",
         '\\"%s\\"' % env.BoardConfig().get("name").replace('"', "")),
        "ARDUINO_PARTITION_%s" % basename(env.BoardConfig().get(
            "build.partitions", "default.csv")).replace(".csv", "").replace(
                "-", "_")
    ],
    LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")],
    FLASH_EXTRA_IMAGES=
    [("0x0000",
      join(
          FRAMEWORK_DIR, "tools", "sdk", "esp32s3", "bin",
          "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin")
      ), ("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
     ("0xe000", join(FRAMEWORK_DIR, "tools", "partitions", "boot_app0.bin"))] +
    [(offset, join(FRAMEWORK_DIR, img))
     for offset, img in env.BoardConfig().get(
         "upload.arduino.flash_extra_images", [])],
)
Ejemplo n.º 10
0
        "-ffreestanding", "-fsigned-char", "-fno-move-loop-invariants",
        "-fno-strict-aliasing", "--specs=nano.specs", "--specs=nosys.specs",
        "-IMarlin/src/HAL", "-MMD", "-MP", "-DTARGET_STM32F1"
    ])

    for i in range(1, len(sys.argv)):
        args += " " + sys.argv[i]

    print(args)

# extra script for linker options
else:
    from SCons.Script import DefaultEnvironment
    env = DefaultEnvironment()
    env.Append(
        ARFLAGS=["rcs"],
        ASFLAGS=["-x", "assembler-with-cpp"],
        CXXFLAGS=[
            "-fabi-version=0", "-fno-use-cxa-atexit", "-fno-threadsafe-statics"
        ],
        LINKFLAGS=[
            "-Os",
            "-mcpu=cortex-m3",
            "-ffreestanding",
            "-mthumb",
            "--specs=nano.specs",
            "--specs=nosys.specs",
            "-u_printf_float",
        ],
    )
Ejemplo n.º 11
0
    ],
    UPLOADEROTAFLAGS=[
        "--debug", "--progress", "-i", "$UPLOAD_PORT", "$UPLOAD_FLAGS"
    ],
    UPLOADCMD='$UPLOADER $UPLOADERFLAGS -cf $SOURCE -cr',
    UPLOADOTACMD='"$PYTHONEXE" "$UPLOADEROTA" $UPLOADEROTAFLAGS -f $SOURCE',

    #
    # Misc
    #
    MKSPIFFSTOOL="mkspiffs",
    SIZEPRINTCMD='$SIZETOOL -B -d $SOURCES',
    PROGNAME="firmware",
    PROGSUFFIX=".elf")

env.Append(ASFLAGS=env.get("CCFLAGS", [])[:])

if int(ARGUMENTS.get("PIOVERBOSE", 0)):
    env.Prepend(UPLOADERFLAGS=["-vv"])

#
# SPIFFS
#


def fetch_spiffs_size(env):
    spiffs_re = re.compile(
        r"PROVIDE\s*\(\s*_SPIFFS_(\w+)\s*=\s*(0x[\dA-F]+)\s*\)")
    with open(env.GetActualLDScript()) as f:
        for line in f.readlines():
            match = spiffs_re.search(line)
Ejemplo n.º 12
0
env.Append(BUILDERS=dict(
    ElfToEep=Builder(
        action=env.VerboseAction(
            " ".join([
                "$OBJCOPY",
                "-O",
                "ihex",
                "-j",
                ".eeprom",
                '--set-section-flags=.eeprom="alloc,load"',
                "--no-change-warnings",
                "--change-section-lma",
                ".eeprom=0",
                "$SOURCES",
                "$TARGET",
            ]),
            "Building $TARGET",
        ),
        suffix=".eep",
    ),
    ElfToHex=Builder(
        action=env.VerboseAction(
            " ".join([
                "$OBJCOPY", "-O", "ihex", "-R", ".eeprom", "$SOURCES",
                "$TARGET"
            ]),
            "Building $TARGET",
        ),
        suffix=".hex",
    ),
))
Ejemplo n.º 13
0
env.Append(
    CCFLAGS=["-Wall"],
    CPPDEFINES=[("ARDUINO", 10805),
                ("ARDUINO_BOARD",
                 '\\"PLATFORMIO_%s\\"' % env.BoardConfig().id.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=[
        "hal", "phy", "pp", "net80211", "wpa", "crypto", "main", "wps",
        "axtls", "espnow", "smartconfig", "airkiss", "wpa2", "stdc++", "m",
        "c", "gcc"
    ],
    LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")],
    LINKFLAGS=[
        "-Wl,-wrap,system_restart_local", "-Wl,-wrap,spi_flash_read", "-u",
        "app_entry"
    ])
Ejemplo n.º 14
0
    env.Replace(LDSCRIPT_PATH=get_linker_script())

#
# Prepare build environment
#

# The final firmware is linked against standard library with two specifications:
# nano.specs - link against a reduced-size variant of libc
# nosys.specs - link against stubbed standard syscalls

env.Append(
    CPPPATH=[
        os.path.join(CMSIS_DIR, "CMSIS", "Include"),
        os.path.join(CMSIS_DEVICE_DIR, "Include")
    ],

    LINKFLAGS=[
        "--specs=nano.specs",
        "--specs=nosys.specs"
    ]
)

#
# Compile CMSIS sources
#

sources_path = os.path.join(CMSIS_DEVICE_DIR, "Source", "Templates")
prepare_startup_file(sources_path)

env.BuildSources(
    os.path.join("$BUILD_DIR", "FrameworkCMSIS"), sources_path,
Ejemplo n.º 15
0
Archivo: main.py Proyecto: OS-Q/P426
    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',

    #LIBS=["twr-sdk"],
    PROGNAME="firmware",
    PROGSUFFIX=".elf")

env.Append(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")))

#
# 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()
Ejemplo n.º 16
0
    content = ""
    with open(main_ld_file) as f:
        content = f.read()

    incre = re.compile(r"^INCLUDE\s+\"?([^\.]+\.ld)\"?", re.M)
    with open(main_ld_file, "w") as f:
        f.write(incre.sub(_include_callback, content))


#
# Processing ...
#

if env.BoardConfig().get("build.core") == "lm4f":
    env.Append(CPPDEFINES=["LM4F"])

env.Append(CPPPATH=[FRAMEWORK_DIR, join(FRAMEWORK_DIR, "include")])

root_dir = join(FRAMEWORK_DIR, "lib", env.BoardConfig().get("build.core", ""))
if env.BoardConfig().get("build.core") == "stm32":
    root_dir = join(root_dir, env.BoardConfig().get("build.variant")[5:7])

ldscript_path = find_ldscript(root_dir)
if ldscript_path:
    merge_ld_scripts(ldscript_path)
generate_nvic_files()

# override ldscript by libopencm3
#assert "LDSCRIPT_PATH" in env
#env.Replace(
Ejemplo n.º 17
0
env.Append(
    ASFLAGS=[
        "-x", "assembler-with-cpp",
        "-Wa,-march=%s" % board.get("build.march")
    ],

    CCFLAGS=[
        "-Os",
        "-Wall",
        "-ffunction-sections",
        "-fdata-sections",
        "-march=%s" % board.get("build.march"),
        "-mabi=%s" % board.get("build.mabi"),
        "-mcmodel=%s" % board.get("build.mcmodel")
    ],

    LINKFLAGS=[
        "-Os",
        "-march=%s" % board.get("build.march"),
        "-mabi=%s" % board.get("build.mabi"),
        "-mcmodel=%s" % board.get("build.mcmodel"),
        "-Wl,-gc-sections",
        "-nostdlib",
        "-nostartfiles",
        "-static",
        "-Wl,--wrap=malloc",
        "-Wl,--wrap=free",
        "-Wl,--wrap=open",
        "-Wl,--wrap=lseek",
        "-Wl,--wrap=read",
        "-Wl,--wrap=write",
        "-Wl,--wrap=fstat",
        "-Wl,--wrap=stat",
        "-Wl,--wrap=close",
        "-Wl,--wrap=link",
        "-Wl,--wrap=unlink",
        "-Wl,--wrap=execve",
        "-Wl,--wrap=fork",
        "-Wl,--wrap=getpid",
        "-Wl,--wrap=kill",
        "-Wl,--wrap=wait",
        "-Wl,--wrap=isatty",
        "-Wl,--wrap=times",
        "-Wl,--wrap=sbrk",
        "-Wl,--wrap=_exit"
        "-Wl,-Map="
        + os.path.join("$BUILD_DIR", os.path.basename(env.subst("${PROJECT_DIR}.map"))),
        "-Wl,--defsym=__comrv_cache_size=0",
    ]
)
Ejemplo n.º 18
0
env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],
    CFLAGS=[
        "-std=gnu99", "-Wno-old-style-declaration", "-Wno-implicit-fallthrough"
    ],
    CCFLAGS=[
        "-Os", "-g3", "-Wall", "-nostdlib", "-Wpointer-arith",
        "-Wno-error=unused-but-set-variable", "-Wno-error=unused-variable",
        "-mlongcalls", "-ffunction-sections", "-fdata-sections",
        "-fstrict-volatile-bitfields", "-Wno-error=deprecated-declarations",
        "-Wno-error=unused-function", "-Wno-unused-parameter",
        "-Wno-sign-compare", "-Wno-frame-address", "-Wwrite-strings",
        "-mfix-esp32-psram-cache-issue", "-fstack-protector", "-fexceptions",
        "-Werror=reorder", "-MMD"
    ],
    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_out.ld", "-T", "esp32.project.ld", "-T",
        "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"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp32"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_adc_cal"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_common"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_eth"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_event"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_gdbstub"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_http_client"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_http_server"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_https_ota"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_local_ctrl"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_ringbuf"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_rom"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_websocket_client"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp_wifi"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "espcoredump"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "expat"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "fatfs"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "freemodbus"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "freertos"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "heap"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "idf_test"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "jsmn"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "json"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "libsodium"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "log"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "lwip"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "mbedtls"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "mdns"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "mqtt"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "newlib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "nghttp"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "nvs_flash"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "openssl"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "protobuf-c"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "protocomm"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "pthread"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "sdmmc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "soc"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "spi_flash"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "spiffs"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "tcp_transport"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "tcpip_adapter"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "ulp"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "unity"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "vfs"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "wear_levelling"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "wifi_provisioning"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "wpa_supplicant"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "xtensa"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp-face"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp32-camera"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "esp-face"),
        join(FRAMEWORK_DIR, "tools", "sdk", "include", "fb_gfx"),
        join(FRAMEWORK_DIR, "cores",
             env.BoardConfig().get("build.core"))
    ],
    LIBPATH=[
        join(FRAMEWORK_DIR, "tools", "sdk", "lib"),
        join(FRAMEWORK_DIR, "tools", "sdk", "ld")
    ],
    LIBS=[
        "-lgcc", "-lcoexist", "-lheap", "-lpthread", "-lnvs_flash",
        "-lapp_update", "-lbtdm_app", "-lwifi_provisioning", "-lmesh", "-lm",
        "-lesp_websocket_client", "-lspiffs", "-lnghttp", "-lespnow", "-lsoc",
        "-lmbedtls", "-lface_detection", "-lface_recognition", "-lprotocomm",
        "-lmdns", "-lconsole", "-lbt", "-lesp_rom", "-lfreemodbus", "-lfb_gfx",
        "-lsdmmc", "-lfr", "-lcoap", "-lfd", "-lnet80211", "-lcore", "-lexpat",
        "-lbootloader_support", "-lesp_gdbstub", "-lrtc", "-lesp_ringbuf",
        "-lasio", "-lxtensa", "-lspi_flash", "-lesp_adc_cal", "-ldl",
        "-lesp_common", "-lphy", "-lesp_eth", "-ljson", "-lesp_http_server",
        "-lwear_levelling", "-lesp32", "-ljsmn", "-llibsodium", "-lcxx",
        "-lvfs", "-lpp", "-llog", "-lulp", "-lod", "-lunity", "-ldriver",
        "-lfreertos", "-lesp_http_client", "-lespcoredump", "-lopenssl",
        "-limage_util", "-lesp_https_ota", "-lwpa_supplicant", "-lmqtt",
        "-lhal", "-ltcpip_adapter", "-lesp_event", "-ltcp_transport", "-llwip",
        "-lesp-tls", "-lesp_wifi", "-lesp32-camera", "-lapp_trace",
        "-lesp_local_ctrl", "-lefuse", "-lnewlib", "-lsmartconfig", "-lfatfs",
        "-lprotobuf-c", "-lc", "-lstdc++"
    ],
    LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")],
    FLASH_EXTRA_IMAGES=[(
        "0x1000",
        join(
            FRAMEWORK_DIR, "tools", "sdk", "bin",
            "bootloader_${BOARD_FLASH_MODE}_${__get_board_f_flash(__env__)}.bin"
        )), ("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")),
                        ("0xe000",
                         join(FRAMEWORK_DIR, "tools", "partitions",
                              "boot_app0.bin"))])
Ejemplo n.º 19
0
env = DefaultEnvironment()

env.Replace(_BINPREFIX="",
            AR="${_BINPREFIX}ar",
            AS="${_BINPREFIX}as",
            CC="${_BINPREFIX}gcc",
            CXX="${_BINPREFIX}g++",
            GDB="${_BINPREFIX}gdb",
            OBJCOPY="${_BINPREFIX}objcopy",
            RANLIB="${_BINPREFIX}ranlib",
            SIZETOOL="${_BINPREFIX}size",
            SIZEPRINTCMD='$SIZETOOL $SOURCES',
            PROGSUFFIX=".exe")

env.Append(LINKFLAGS=["-static", "-static-libgcc", "-static-libstdc++"])

if get_systype() == "darwin_x86_64":
    env.Replace(_BINPREFIX="i586-mingw32-")
elif get_systype() in ("linux_x86_64", "linux_i686"):
    env.Replace(_BINPREFIX="i686-w64-mingw32-")

#
# Target: Build executable program
#

target_bin = env.BuildProgram()

#
# Target: Print binary size
#
Ejemplo n.º 20
0
env.Append(
    CCFLAGS=[
        "--param", "max-inline-insns-single=500",
        "-march=armv7-m"
    ],

    CPPDEFINES=[
        ("ARDUINO", 10610),
        "BOARD_%s" % board.get("build.variant"),
        ("ERROR_LED_PORT", "GPIOB"),
        ("ERROR_LED_PIN", 1),
        ("DEBUG_LEVEL", "DEBUG_NONE"),
        "__STM32F1__",
        "ARDUINO_ARCH_STM32F1"
    ],

    CPPPATH=[
        join(FRAMEWORK_DIR, "cores", board.get("build.core")),
        join(FRAMEWORK_DIR, "system", "libmaple"),
        join(FRAMEWORK_DIR, "system", "libmaple", "include"),
        join(FRAMEWORK_DIR, "system", "libmaple", "usb", "stm32f1"),
        join(FRAMEWORK_DIR, "system", "libmaple", "usb", "usb_lib")
    ],

    LIBPATH=[
        join(FRAMEWORK_DIR, "variants",
             board.get("build.variant"), "ld")
    ],

    LIBS=["c"]
)
Ejemplo n.º 21
0
"""

from SCons.Script import AlwaysBuild, Default, DefaultEnvironment

env = DefaultEnvironment()

# Preserve C and C++ build flags
backup_cflags = env.get("CFLAGS", [])
backup_cxxflags = env.get("CXXFLAGS", [])

# Scan for GCC compiler
env.Tool("gcc")
env.Tool("g++")

# Restore C/C++ build flags as they were overridden by env.Tool
env.Append(CFLAGS=backup_cflags, CXXFLAGS=backup_cxxflags)

#
# Target: Build executable program
#

target_bin = env.BuildProgram()

#
# Target: Print binary size
#

target_size = env.Alias(
    "size", target_bin,
    env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE"))
AlwaysBuild(target_size)
Ejemplo n.º 22
0
    "USB_MIDI16",
    "USB_MIDI_SERIAL",
    "USB_MIDI4_SERIAL",
    "USB_MIDI16_SERIAL",
    "USB_AUDIO",
    "USB_MIDI_AUDIO_SERIAL",
    "USB_MIDI16_AUDIO_SERIAL",
    "USB_MTPDISK",
    "USB_RAWHID",
    "USB_FLIGHTSIM",
    "USB_FLIGHTSIM_JOYSTICK",
    "USB_EVERYTHING",
    "USB_DISABLED",
)
if not set(env.get("CPPDEFINES", [])) & set(BUILTIN_USB_FLAGS):
    env.Append(CPPDEFINES=["USB_SERIAL"])

env.Replace(
    SIZEPROGREGEXP=
    r"^(?:\.text|\.text\.progmem|\.text\.itcm|\.data|\.text\.csf)\s+([0-9]+).*",
    SIZEDATAREGEXP=
    r"^(?:\.usbdescriptortable|\.dmabuffers|\.usbbuffers|\.data|\.bss|\.noinit|\.text\.itcm|\.text\.itcm\.padding)\s+([0-9]+).*"
)

env.Append(CPPDEFINES=[("ARDUINO", 10805),
                       ("TEENSYDUINO", int(FRAMEWORK_VERSION.split(".")[1])),
                       "CORE_TEENSY"],
           CPPPATH=[join(FRAMEWORK_DIR, "cores", BUILD_CORE)],
           LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")])

if "BOARD" in env and BUILD_CORE == "teensy":
Ejemplo n.º 23
0
Archivo: arduino.py Proyecto: OS-Q/P231
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
#

cpp_flags = env.Flatten(env.get("CPPDEFINES", []))
if any(str(f).startswith("PIO_ARDUINO_ENABLE_USB") for f in cpp_flags):
    env.Append(CPPDEFINES=["__USB_ENABLED__", "__SERIAL_IS_USB__"])
if "PIO_ARDUINO_ENABLE_USB_SERIAL" in cpp_flags:
    env.Append(CPPDEFINES=["__USB_CDCACM__"])
elif "PIO_ARDUINO_ENABLE_USB_HID" in cpp_flags:
Ejemplo n.º 24
0
Archivo: _bare.py Proyecto: OS-Q/P515
env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],

    CCFLAGS=[
        "-Os",  # optimize for size
        "-ffunction-sections",  # place each function in its own section
        "-fdata-sections",
        "-Wall",
        "-mthumb",
        "-nostdlib"
    ],

    CXXFLAGS=[
        "-fno-rtti",
        "-fno-exceptions"
    ],

    CPPDEFINES=[
        ("F_CPU", "$BOARD_F_CPU")
    ],

    LINKFLAGS=[
        "-Os",
        "-Wl,--gc-sections,--relax",
        "-mthumb",
        "-nostartfiles",
        "-nostdlib"
    ],

    LIBS=["c", "gcc", "m", "stdc++", "nosys"]
)
Ejemplo n.º 25
0
    LIBS=[
        "app_update", "bt", "btdm_app", "c", "coexist", "core", "driver",
        "esp32", "ethernet", "expat", "freertos", "g", "hal", "json", "log",
        "lwip", "m", "mbedtls", "net80211", "newlib", "nghttp", "nvs_flash",
        "openssl", "phy", "pp", "rtc", "smartconfig", "spi_flash",
        "tcpip_adapter", "ulp", "vfs", "wpa", "wpa2", "wpa_supplicant", "wps",
        "xtensa-debug-module"
    ]
)

env.Append(
    LIBSOURCE_DIRS=[
        join(FRAMEWORK_DIR, "libraries")
    ],

    LINKFLAGS=[
        "-T", "esp32.common.ld",
        "-T", "esp32.rom.ld",
        "-T", "esp32.peripherals.ld"
    ]
)

#
# Target: Build Core Library
#

libs = []

if "build.variant" in env.BoardConfig():
    env.Append(
        CPPPATH=[
Ejemplo n.º 26
0
                    '"%s"' % join("$PROJECT_DIR", "upload.gdb")
                ],
                UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS')
else:
    env.Replace(
        UPLOADER=join("$PIOPACKAGES_DIR", "tool-stlink", "st-flash"),
        UPLOADERFLAGS=[
            "write",  # write in flash
            "$SOURCES",  # firmware path to flash
            "0x08000000"  # flash start adress
        ],
        UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS')

env.Append(CPPDEFINES=[
    env.get("BOARD_OPTIONS", {}).get("build", {}).get("variant", "").upper()
],
           LIBS=["stdc++", "nosys"],
           LINKFLAGS=["-nostartfiles", "-nostdlib"])

#
# Target: Build executable and linkable firmware
#

target_elf = env.BuildProgram()

#
# Target: Build the .bin file
#

if "uploadlazy" in COMMAND_LINE_TARGETS:
    target_firm = join("$BUILD_DIR", "firmware.bin")
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",
        "--param",
        "max-inline-insns-single=500"
    ],
    CXXFLAGS=[
        "-fno-rtti", "-fno-exceptions", "-std=gnu++11",
        "-fno-threadsafe-statics"
    ],
    CPPDEFINES=[
        ("ARDUINO", 10805),
        # For compatibility with sketches designed for AVR@16 MHz (see SPI lib)
        ("F_CPU", "16000000L"),
        "ARDUINO_ARCH_NRF5",
        "NRF5",
        "%s" % board.get("build.mcu", "")[0:5].upper()
    ],
    LIBPATH=[
        join(FRAMEWORK_DIR, "cores", board.get("build.core"), "SDK",
             "components", "toolchain", "gcc")
    ],
    CPPPATH=[
        join(FRAMEWORK_DIR, "cores", board.get("build.core")),
        join(FRAMEWORK_DIR, "cores", board.get("build.core"), "SDK",
             "components", "drivers_nrf", "delay"),
        join(FRAMEWORK_DIR, "cores", board.get("build.core"), "SDK",
             "components", "device"),
        join(FRAMEWORK_DIR, "cores", board.get("build.core"), "SDK",
             "components", "toolchain"),
        join(FRAMEWORK_DIR, "cores", board.get("build.core"), "SDK",
             "components", "toolchain", "CMSIS", "Include")
    ],
    LINKFLAGS=[
        "-Os", "-Wl,--gc-sections", "-mthumb", "--specs=nano.specs",
        "--specs=nosys.specs", "-Wl,--check-sections",
        "-Wl,--unresolved-symbols=report-all", "-Wl,--warn-common",
        "-Wl,--warn-section-align"
    ],
    LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")],
    LIBS=["m"])
Ejemplo n.º 28
0
    LINK="$CC",
    LINKFLAGS=["-Os", "-mmcu=$BOARD_MCU", "-Wl,-gc-sections,-u,main"],
    LIBS=["m"],
    SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
    UPLOADER=join("$PIOPACKAGES_DIR", "tool-mspdebug", "mspdebug"),
    UPLOADERFLAGS=[
        "$UPLOAD_PROTOCOL" if system() != "Windows" else "tilib",
        "--force-reset"
    ],
    UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS "prog $SOURCES"',
    PROGNAME="firmware",
    PROGSUFFIX=".elf")

env.Append(
    ASFLAGS=env.get("CCFLAGS", [])[:],
    BUILDERS=dict(ElfToHex=Builder(action=" ".join(
        ["$OBJCOPY", "-O", "ihex", "-R", ".eeprom", "$SOURCES", "$TARGET"]),
                                   suffix=".hex")))

#
# Target: Build executable and linkable firmware
#

target_elf = env.BuildProgram()

#
# Target: Build the .hex
#

if "uploadlazy" in COMMAND_LINE_TARGETS:
    target_firm = join("$BUILD_DIR", "firmware.hex")
Ejemplo n.º 29
0
env.Append(
    CPPDEFINES=["CORE_" + CORE.upper()],  # -D
    CPPPATH=[  # -I
        CORE_DIR,
        join(CORE_DIR, "include"),
        join(CORE_DIR, "ril", "inc"),
        join(CORE_DIR, "fota", "inc"),
    ],
    CFLAGS=[
        "-march=armv5te",
        "-mfloat-abi=soft",
        "-mfpu=vfp",
        "-fsingle-precision-constant",
        "-mthumb",
        "-mthumb-interwork",
        "-std=c99",
        "-O0",
        "-Wall",
        "-fno-builtin",
        "-Wstrict-prototypes",
        "-Wp,-w",
    ],
    LINKFLAGS=[
        "-march=armv5te",
        "-mfloat-abi=soft",
        "-mfpu=vfp",
        "-mthumb",
        "-mthumb-interwork",
        "-nostartfiles",
        "-Rbuild",
        "-Wl,--gc-sections,--relax",
    ],
    LIBPATH=[CORE_DIR],
    LDSCRIPT_PATH=join(CORE_DIR, "linkscript.ld"),
    LIBS=["gcc", "m", "app_start"],
    UPLOADER=join(
        ".", TOOL_DIR, "QFlash_V4.0",
        "QFlash_V4.0"),  # We are waithing Quectel for console uploader
    UPLOADERFLAGS=[],  # https://ss64.com/nt/start.html
    UPLOADCMD='START /D ' + TOOL_DIR + '\\QFlash_V4.0 /W QFlash_V4.0.exe',
    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
)
Ejemplo n.º 30
0
        _extra_flags = "-DSTM32F103xE"
    elif "F103x8" in _extra_flags:
        _extra_flags = "-DSTM32F103xB"

    env.ProcessFlags(_extra_flags)
# remove base flags
env.ProcessUnFlags(env.get("BUILD_UNFLAGS"))
# apply user flags
env.ProcessFlags(env.get("BUILD_FLAGS"))

env.Append(CPPPATH=[
    join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers", "CMSIS", "Include"),
    join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers", "CMSIS", "Device", "ST",
         MCU_FAMILY.upper() + "xx", "Include"),
    join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers",
         MCU_FAMILY.upper() + "xx_HAL_Driver", "Inc")
],
           LIBPATH=[
               join(FRAMEWORK_DIR, FRAMEWORK_CORE, "Drivers", "CMSIS", "Lib",
                    "GCC"),
               join(FRAMEWORK_DIR, "platformio", "ldscripts")
           ])

#
# Generate framework specific files
#

generate_hal_config_file(env.BoardConfig().get("build.mcu"))

#
# Target: Build HAL Library
#