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)
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" ])
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)