Esempio n. 1
0
File: main.py Progetto: OS-Q/P411
#
# 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"),
                   exports={"env": env})

upload_protocol = env.subst("$UPLOAD_PROTOCOL")
target_elf = None
if "nobuild" in COMMAND_LINE_TARGETS:
    target_elf = join("$BUILD_DIR", "${PROGNAME}.elf")
    target_firm = join("$BUILD_DIR", "${PROGNAME}.hex")
else:
    target_elf = env.BuildProgram()

    if "SOFTDEVICEHEX" in env:
        target_firm = env.MergeHex(
            join("$BUILD_DIR", "${PROGNAME}"),
            env.ElfToHex(join("$BUILD_DIR", "userfirmware"), target_elf))
    elif "nrfutil" == upload_protocol and use_adafruit:
        target_firm = env.PackageDfu(
            join("$BUILD_DIR", "${PROGNAME}"),
            env.ElfToHex(join("$BUILD_DIR", "${PROGNAME}"), target_elf))
    elif "nrfjprog" == upload_protocol:
        target_firm = env.ElfToHex(join("$BUILD_DIR", "${PROGNAME}"),
                                   target_elf)
    elif "sam-ba" == upload_protocol:
        target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"),
                                   target_elf)
Esempio n. 2
0
    RANLIB="arm-none-eabi-ranlib",
    SIZETOOL="arm-none-eabi-size",
    ARFLAGS=["rc"],
    SIZEPROGREGEXP=r"^(?:\.text|\.data|\.bootloader)\s+(\d+).*",
    SIZEDATAREGEXP=r"^(?:\.data|\.bss|\.noinit)\s+(\d+).*",
    SIZECHECKCMD="$SIZETOOL -A -d $SOURCES",
    SIZEPRINTCMD='$SIZETOOL --mcu=$BOARD_MCU -C -d $SOURCES',
    PROGSUFFIX=".elf",  
    UPLOADNAME=join("$BUILD_DIR", "${PROGNAME}.cfg"),
)

####################################################
# Target: Build executable and linkable program
####################################################
elf = None
elf = env.BuildProgram()
src = env.GFH(
    join("$BUILD_DIR", "${PROGNAME}"),
    env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), elf),    
)
AlwaysBuild( env.Alias("nobuild", src) )

####################################################
# Target: Upload BC66
####################################################
target_upload = env.Alias("upload", src, [
    env.VerboseAction(env.AutodetectUploadPort, "Looking for upload port..."),
    env.VerboseAction("",  "--- WAITING MODULE ---"),
    env.VerboseAction("$UPLOADCMD", "RESET BOARD TO START FLASHING"),
    env.VerboseAction("",  "POWER ON BOARD"),
Esempio n. 3
0
            CXX="${_BINPREFIX}g++",
            OBJCOPY="${_BINPREFIX}objcopy",
            RANLIB="${_BINPREFIX}ranlib",
            SIZETOOL="${_BINPREFIX}size",
            SIZEPRINTCMD='"$SIZETOOL" $SOURCES',
            PROGSUFFIX=".exe")

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
#

target_size = env.Alias("size", target_bin, "$SIZEPRINTCMD")
AlwaysBuild(target_size)

#
# Target: Define targets
#

Default([target_bin])
Esempio n. 4
0
File: main.py Progetto: OS-Q/P122
# parse manually SDCC flags
if env.get("BUILD_FLAGS"):
    _parsed, _unparsed = _parseSdccFlags(env.get("BUILD_FLAGS"))
    env.Append(CCFLAGS=_parsed)
    env['BUILD_FLAGS'] = _unparsed

project_sdcc_flags = None
if env.get("SRC_BUILD_FLAGS"):
    project_sdcc_flags, _unparsed = _parseSdccFlags(env.get("SRC_BUILD_FLAGS"))
    env['SRC_BUILD_FLAGS'] = _unparsed

#
# Target: Build executable and linkable firmware
#

target_firm = env.BuildProgram()

if project_sdcc_flags:
    env.Import("projenv")
    projenv.Append(CCFLAGS=project_sdcc_flags)

AlwaysBuild(env.Alias("nobuild", target_firm))
target_buildprog = env.Alias("buildprog", target_firm, target_firm)

#
# Target: Print binary size
#

target_size = env.Alias(
    "size", target_firm,
    env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE"))
Esempio n. 5
0
]

uploading = [
    env.VerboseAction(
        BTAsize_create,
        "Generating " + join(env.subst("$BUILD_DIR"), "BTAsize.gdb")),
    env.VerboseAction(
        fwsize_create,
        "Generating " + join(env.subst("$BUILD_DIR"), "fwsize.gdb")),
    env.VerboseAction(
        replace_rtl, "Generating " +
        join(env.subst("$BUILD_DIR"), "rtl_gdb_flash_write.txt")),
    env.VerboseAction(
        "$CP $BOOTALL_BIN " + join(env.subst("$BUILD_DIR"), "boot_all.bin"),
        '.'),
    env.VerboseAction(
        env.subst("$UPLOADCMD").replace("\\", "\\\\") + env["OPENOCD_KILL"],
        "Uploading binary to flash"),
]

env.Append(BUILDERS=dict(Manipulate=Builder(
    action=env.VerboseAction(manipulating, "Manipulating images")), ))

program_b = env.BuildProgram()
manipulate_images_b = env.Manipulate("$BUILD_DIR/image2_all_ota1.bin",
                                     [program_b])
upload = env.Alias("upload", manipulate_images_b, uploading)
AlwaysBuild(upload)

Default([manipulate_images_b])
if not env.get("PIOFRAMEWORK"):
    env.SConscript("frameworks/_bare.py")

#
# Target: Build executable and linkable firmware
#
target_firm_elf = None
target_firm_hex = None
object_dump_dis = None

if "nobuild" in COMMAND_LINE_TARGETS:
    target_firm_elf = join("$BUILD_DIR", "${PROGNAME}.elf")
    target_firm_hex = join("$BUILD_DIR", "${PROGNAME}.hex")
    target_firm = join("$BUILD_DIR", "${PROGNAME}.bin")
else:
    target_firm_elf = env.BuildProgram()

    if "SOFTDEVICEHEX" in env:
        merged_softdevice_hex = env.MergeHex(
            join("$BUILD_DIR", "${PROGNAME}"),
            env.ElfToHex(join("$BUILD_DIR", "user_${PROGNAME}"),
                         target_firm_elf))
        target_firm_hex = join("$BUILD_DIR", "user_${PROGNAME}.hex")
    else:
        target_firm_hex = env.ElfToHex(join("$BUILD_DIR", "${PROGNAME}"),
                                       target_firm_elf)

    object_dump_dis = env.ObjectDump(join("$BUILD_DIR", "${PROGNAME}"),
                                     target_firm_elf)
    target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"),
                               target_firm_elf)
Esempio n. 7
0
    SIZEPROGREGEXP=
    r"^(?:CODE|GSINIT|GSFINAL|CONST|HOME|RSEG0|SSEG|HEADER1|HEADER3|PREG2)[^=]*\D+(\d+).*",
    SIZEDATAREGEXP=r"^(?:DATA)[^=]*\D+(\d+).*",
    PROGNAME="firmware",
    PROGSUFFIX=".ihx")

#
# Target: Build executable and linkable firmware
#

#target_elf = None
if "nobuild" in COMMAND_LINE_TARGETS:
    target_ihx = join("$BUILD_DIR", "${PROGNAME}.elf")
    target_bin = join("$BUILD_DIR", "${PROGNAME}.bin")
else:
    target_ihx = env.BuildProgram()
    target_bin = env.Command(join("$BUILD_DIR", "${PROGNAME}.bin"), target_ihx,
                             "$OBJCOPY -p $SOURCES $TARGET")

#
# Target: Print binary size
#

target_size = env.AddPlatformTarget(
    "size",
    target_bin,
    sizePrintCMD,
    "Program Size",
    "Calculate program size",
)
Esempio n. 8
0
# A full list with the available variables
# http://www.scons.org/doc/production/HTML/scons-user.html#app-variables
env.Replace(
    AR="mips-openwrt-linux-ar",
    AS="mips-openwrt-linux-as",
    CC="mips-openwrt-linux-gcc",
    CXX="mips-openwrt-linux-g++",
    OBJCOPY="mips-openwrt-linux-objcopy",
    RANLIB="mips-openwrt-linux-ranlib",
    SIZETOOL="mips-openwrt-linux-size"
)

env.PrependENVPath(
    "PATH",
    "/home/andrew/develop/k5/sentrifarm/software/openwrt/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin"
)

env['ENV']['STAGING_DIR'] = "/home/andrew/develop/k5/sentrifarm/software/openwrt/openwrt/staging_dir"


#
# Target: Build executable and linkable firmware
#
target_bin = env.BuildProgram() # BuildFirmware()

#
# Target: Define targets
#
Default(target_bin)