Esempio n. 1
0
def write_all(platforms, softdevices, args):
    make_bootloader_for_platforms(platforms)
    set_softdevices_for_platforms(platforms, softdevices)

    with open(args.bootloader_config, "r") as f:
        bootloader_config = json.load(f)["bootloader_config"]

    for platform in platforms:
        for softdevice in platform["softdevices"]:
            device_page = DevicePage(platform, softdevice, bootloader_config)
            device_page.write_hex(args.output_file)
Esempio n. 2
0
def main():
    softdevices = load_softdevies("tools/configuration/softdevices.json")
    platforms = load_platforms("tools/configuration/platforms.json")

    # No support for nrf52810 yet.
    platforms = [p for p in platforms if "nrf52810" not in p["name"].lower()]

    make_bootloader_for_platforms(platforms)
    set_softdevices_for_platforms(platforms, softdevices)
    timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    write_bootloader_linker_files(platforms, timestamp,
                                  "mesh/bootloader/linker")
    write_app_linker_files(platforms, softdevices, timestamp, [
        "examples/beaconing/linker", "examples/dfu/linker",
        "examples/light_switch/client/linker",
        "examples/light_switch/server/linker",
        "examples/pb_remote/client/linker", "examples/pb_remote/server/linker",
        "examples/serial/linker"
    ])
Esempio n. 3
0
def write_specific_page(platforms, softdevices, args):
    platform = next((p for p in platforms if args.device == p["name"]), None)
    if not platform:
        print("Unknown device: \"%s\" in list %r" %
              (args.device, [p["name"] for p in platforms]))
        sys.exit(1)

    softdevice = next((s for s in softdevices if args.softdevice == s["name"]),
                      None)
    if not softdevice:
        print("Unknown SoftDevice: \"%s\"" % (args.softdevice))
        sys.exit(1)

    if args.softdevice not in platform["softdevices"]:
        print("Unknown SoftDevice \"%s\" for platform \"%s\"" %
              (args.softdevice, args.device))
        sys.exit(1)

    # Filter out the others...
    platforms = [
        p for p in platforms if args.device.lower() in p["name"].lower()
    ]

    make_bootloader_for_platforms(platforms)
    set_softdevices_for_platforms(platforms, softdevices)

    # Dict is updated by reference
    # platform = platforms[args.device]
    # softdevice = softdevices[args.softdevice]

    with open(args.bootloader_config, "r") as f:
        bootloader_config = json.load(f)["bootloader_config"]
    device_page = DevicePage(platform, softdevice, bootloader_config)
    if not args.output_file:
        args.output_file = "_".join([
            "device_page", self.platform["name"], self.softdevice["name"]
        ]) + ".hex"

    device_page.write_hex(args.output_file)