示例#1
0
文件: libopencm3.py 项目: OS-Q/P291

#
# Processing ...
#

platform = env.subst("$PIOPLATFORM")
root_dir = join(FRAMEWORK_DIR, "lib")
variant = MCU
if platform == "titiva":
    env.Append(CPPDEFINES=["LM4F"])
    root_dir = join(root_dir, "lm4f")
elif platform == "ststm32":
    variant = MCU[0:7]
    root_dir = join(root_dir, "stm32", MCU[5:7])
    env.AppendUnique(CPPDEFINES=[variant.upper()])
elif platform == "nxplpc":
    variant = MCU[0:5] + "xx"
    root_dir = join(root_dir, variant)
    env.AppendUnique(CPPDEFINES=[variant.upper()])
elif platform == "siliconlabsefm32":
    root_dir = join(root_dir, "efm32", MCU[5:7])
    env.AppendUnique(CPPDEFINES=[MCU[0:7].upper()])

generate_nvic_files()

env.Append(
    ASFLAGS=["-x", "assembler-with-cpp"],
    CFLAGS=[
        "-Wimplicit-function-declaration", "-Wmissing-prototypes",
        "-Wstrict-prototypes"
示例#2
0
if (build_core in ("MiniCore", "MegaCore", "MightyCore", "MajorCore")
        and board.get("hardware.uart", "uart0") != "no_bootloader"):
    upload_section = board.get("upload")
    upload_section["maximum_size"] -= board.get("bootloader.size",
                                                get_bootloader_size())
elif build_core in ("tiny", "tinymodern"):
    flatten_defines = env.Flatten(env["CPPDEFINES"])
    extra_defines = []
    if "CLOCK_SOURCE" not in flatten_defines:
        extra_defines.append(("CLOCK_SOURCE", 0))
    if "NEOPIXELPORT" not in flatten_defines:
        extra_defines.append(("NEOPIXELPORT", "PORTA"))

    if extra_defines:
        env.AppendUnique(CPPDEFINES=extra_defines)

# copy CCFLAGS to ASFLAGS (-x assembler-with-cpp mode)
env.Append(ASFLAGS=env.get("CCFLAGS", [])[:])

#
# Target: Build Core Library
#

libs = []

if "build.variant" in board:
    variants_dir = join(
        "$PROJECT_DIR", board.get("build.variants_dir")) if board.get(
            "build.variants_dir", "") else join(FRAMEWORK_DIR, "variants")
示例#3
0
except Exception as exc:
    sys.stderr.write("mbed build API internal error\n")
    print(exc)
    env.Exit(1)

env.Replace(AS="$CC", ASCOM="$ASPPCOM")

for scope in ("asm", "c", "cxx"):
    if "-c" in configuration.get("build_flags").get(scope, []):
        configuration.get("build_flags").get(scope).remove("-c")

env.AppendUnique(
    ASFLAGS=configuration.get("build_flags").get("asm"),
    CFLAGS=configuration.get("build_flags").get("c"),
    CCFLAGS=["-includembed_config.h"] + configuration.get("build_flags").get("common"),
    CPPDEFINES=configuration.get("build_symbols"),
    CPPPATH=[FRAMEWORK_DIR, "$BUILD_DIR", "$PROJECTSRC_DIR"],
    CXXFLAGS=configuration.get("build_flags").get("cxx"),
    LINKFLAGS=configuration.get("build_flags").get("ld"),
    LIBS=configuration.get("libs") + configuration.get("syslibs"),
)

# Note: this line should be called before appending CCFLAGS to ASFLAGS
env.Append(**get_inc_flags())

env.Append(
    ASFLAGS=env.get("CCFLAGS", [])[:],
    LIBPATH=[
        p if os.path.isabs(p) else os.path.join(FRAMEWORK_DIR, p)
        for p in configuration.get("lib_paths")
    ],
    LIBS=["c", "gcc"],  # Fixes linker issues in some cases
示例#4
0
文件: pulp-runtime.py 项目: OS-Q/P07
               "-include", "chips/pulpissimo/config.h", "-fno-jump-tables",
               "-fno-tree-loop-distribute-patterns", "-U__riscv__"
           ],
           CPPDEFINES=[
               "RV_ISA_RV32", ("__PLATFORM__", "ARCHI_PLATFORM_FPGA"),
               ("CONFIG_IO_UART", 0), ("CONFIG_IO_UART_BAUDRATE", 115200),
               ("CONFIG_IO_UART_ITF", 0)
           ],
           CPPPATH=[
               os.path.join(RUNTIME_DIR, "include", "chips", "pulpissimo"),
               os.path.join(RUNTIME_DIR, "lib", "libc", "minimal", "include"),
               os.path.join(RUNTIME_DIR, "include"),
               os.path.join(RUNTIME_DIR, "kernel"),
           ])

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

if not board_config.get("build.ldscript", ""):
    env.Append(
        LIBPATH=[os.path.join(RUNTIME_DIR, "kernel", "chips", "pulpissimo")])
    env.Replace(LDSCRIPT_PATH="link.ld")

libs = []

libs.append(
    env.BuildLibrary(
        os.path.join("$BUILD_DIR", "kernel"),
        os.path.join(RUNTIME_DIR, "kernel"),
        src_filter=[
            "+<*>",
            "-<cluster.c>",
示例#5
0
)

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

if not env.get("PIOFRAMEWORK"):
    env.SConscript("frameworks/_bare.py", exports="env")

# Pass memory mode flags to linker
if env.get("BUILD_FLAGS"):
    memmode = [
        "-mcog", "-mlmm", "-mcmm",
        "-mxmmc", "-mxmm-single", "-mxmm-split"
    ]
    env.AppendUnique(LINKFLAGS=[i for i in memmode if i in env.get("BUILD_FLAGS")])

# Auto disable cache
if env.GetBuildType() == "debug":
    if "-mfcache" in env.get("CCFLAGS"):
        env.get("CCFLAGS").remove("-mfcache")

#
# Target: Build executable and linkable firmware
#
target_elf = None
if "nobuild" in COMMAND_LINE_TARGETS:
    target_elf = join("$BUILD_DIR", "${PROGNAME}.elf")
    target_firm = target_elf
else:
    target_elf = env.BuildProgram()