|
| 1 | +#!/usr/bin/env python3 |
| 2 | + |
| 3 | +def BuildFlashMenu(name, flashsize, fssizelist): |
| 4 | + for fssize in fssizelist: |
| 5 | + if fssize == 0: |
| 6 | + fssizename = "no FS" |
| 7 | + elif fssize < 1024 * 1024: |
| 8 | + fssizename = "FS: %dKB" % (fssize / 1024) |
| 9 | + else: |
| 10 | + fssizename = "FS: %dMB" % (fssize / (1024 * 1024)) |
| 11 | + mn="%d_%d" % (flashsize, fssize) |
| 12 | + print("%s.menu.flash.%s=%dMB (%s)" % (name, mn, flashsize / (1024 * 1024), fssizename)) |
| 13 | + print("%s.menu.flash.%s.upload.maximum_size=%d" % (name, mn, flashsize - 4096 - fssize)) |
| 14 | + print("%s.menu.flash.%s.build.flash_length=%d" % (name, mn, flashsize - 4096 - fssize)) |
| 15 | + print("%s.menu.flash.%s.build.eeprom_start=%d" % (name, mn, flashsize - 4096)) |
| 16 | + print("%s.menu.flash.%s.build.fs_start=%d" % (name, mn, flashsize - 4096 - fssize)) |
| 17 | + print("%s.menu.flash.%s.build.fs_end=%d" % (name, mn, flashsize - 4096)) |
| 18 | + |
| 19 | +def BuildDebugPort(name): |
| 20 | + print("%s.menu.dbgport.Disabled=Disabled" % (name)) |
| 21 | + print("%s.menu.dbgport.Disabled.build.debug_port=" % (name)) |
| 22 | + for p in ["Serial", "Serial1", "Serial2"]: |
| 23 | + print("%s.menu.dbgport.%s=%s" % (name, p, p)) |
| 24 | + print("%s.menu.dbgport.%s.build.debug_port=-DDEBUG_RP2040_PORT=%s" % (name, p, p)) |
| 25 | + |
| 26 | +def BuildDebugLevel(name): |
| 27 | + for l in [ ("None", ""), ("Core", "-DDEBUG_RP2040_CORE"), ("SPI", "-DDEBUG_RP2040_SPI"), ("Wire", "DDEBUG_RP2040_WIRE"), |
| 28 | + ("All", "-DDEBUG_RP2040_WIRE -DDEBUG_RP2040_SPI -DDEBUG_RP2040_CORE"), ("NDEBUG", "-DNDEBUG") ]: |
| 29 | + print("%s.menu.dbglvl.%s=%s" % (name, l[0], l[0])) |
| 30 | + print("%s.menu.dbglvl.%s.build.debug_level=%s" % (name, l[0], l[1])) |
| 31 | + |
| 32 | +def BuildFreq(name): |
| 33 | + for f in [ 125, 50, 100, 133, 150, 175, 200, 225, 250, 275, 300]: |
| 34 | + warn = "" |
| 35 | + if f > 133: warn = " (Overclock)" |
| 36 | + print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn)) |
| 37 | + print("%s.menu.freq.%s.build.f_cpu=%dL" % (name, f, f * 1000000)) |
| 38 | + |
| 39 | +def BuildHeader(name, prettyname, pid, boarddefine, variant, uploadtool, flashsize): |
| 40 | + print("%s.name=%s" % (name, prettyname)) |
| 41 | + print("%s.vid.0=0x2e8a" % (name)) |
| 42 | + print("%s.pid.0=%s" % (name, pid)) |
| 43 | + print("%s.build.usbpid=-DSERIALUSB_PID=%s" % (name, pid)) |
| 44 | + print("%s.build.board=%s" % (name, boarddefine)) |
| 45 | + print("%s.build.mcu=cortex-m0plus" % (name)) |
| 46 | + print("%s.build.variant=%s" % (name, variant)) |
| 47 | + print("%s.upload.tool=%s" % (name, uploadtool)) |
| 48 | + print("%s.upload.maximum_size=%d" % (name, flashsize)) |
| 49 | + print("%s.upload.maximum_data_size=262144" % (name)) |
| 50 | + print("%s.upload.wait_for_upload_port=true" % (name)) |
| 51 | + print("%s.upload.erase_cmd=" % (name)) |
| 52 | + print("%s.serial.disableDTR=false" % (name)) |
| 53 | + print("%s.serial.disableRTS=false" % (name)) |
| 54 | + print("%s.build.f_cpu=125000000" % (name)) |
| 55 | + print("%s.build.led=" % (name)) |
| 56 | + print("%s.build.core=rp2040" % (name)) |
| 57 | + print("%s.build.mcu=rp2040" % (name)) |
| 58 | + print("%s.build.ldscript=memmap_default.ld" % (name)) |
| 59 | + |
| 60 | +def BuildGlobalMenuList(): |
| 61 | + print("menu.BoardModel=Model") |
| 62 | + print("menu.flash=Flash Size") |
| 63 | + print("menu.freq=CPU Speed") |
| 64 | + print("menu.dbgport=Debug Port") |
| 65 | + print("menu.dbglvl=Debug Level") |
| 66 | + |
| 67 | +BuildGlobalMenuList() |
| 68 | + |
| 69 | +BuildHeader("rpipico", "Raspberry Pi Pico", "0x000a", "RASPBERRY_PI_PICO", "rpipico", "uf2conv", 2 * 1024*1024) |
| 70 | +BuildFlashMenu("rpipico", 2 * 1024 * 1024, [ 0, 64 * 1024, 256 * 1024, 512 * 1024, 1024 * 1024 ]) |
| 71 | +BuildFreq("rpipico") |
| 72 | +BuildDebugPort("rpipico") |
| 73 | +BuildDebugLevel("rpipico") |
| 74 | + |
| 75 | +BuildHeader("adafruitfeather", "Adafruit Feather RP2040", "0x000b", "ADAFRUIT_FEATHER_RP2040", "adafruitfeather", "uf2conv", 8 *1024*1024) |
| 76 | +BuildFlashMenu("adafruitfeather", 8 * 1024 * 1024, [ 0, 64 * 1024, 256 * 1024, 512 * 1024, 1024 * 1024, 2 * 1024 * 1024, 3 * 1024 * 1024, 4 * 1024 *1024, 5 * 1024 *1024, 6 * 1024*1024, 7*1024*1024 ]) |
| 77 | +BuildFreq("adafruitfeather") |
| 78 | +BuildDebugPort("adafruitfeather") |
| 79 | +BuildDebugLevel("adafruitfeather") |
| 80 | + |
| 81 | +BuildHeader("generic", "Generic RP2040", "0xf00a", "GENERIC_RP2040", "generif", "uf2conv", 2 * 1024*1024) |
| 82 | +BuildFlashMenu("generic", 2 * 1024 * 1024, [ 0, 64 * 1024, 256 * 1024, 512 * 1024, 1024 * 1024 ]) |
| 83 | +BuildFreq("generic") |
| 84 | +BuildDebugPort("generic") |
| 85 | +BuildDebugLevel("generic") |
0 commit comments