Update multi booter

final flash offset of bootloader set to 200k
right now bootloader code occupied 156k of flash
so there is a small space left for future modifications
This commit is contained in:
cuu 2025-06-02 14:55:46 +08:00
parent 6a15612907
commit 26cde76df8
8 changed files with 17 additions and 9 deletions

View File

@ -463,12 +463,20 @@ def Built(dir, app):
if adr + length - 1 > last : last = adr + length - 1 if adr + length - 1 > last : last = adr + length - 1
block = Uf2Block(f) block = Uf2Block(f)
##enlarge sd_boot flash size
if app == "sd_boot":
print("original last: ", last," ",'{:02X}'.format(last))
print("orignal size: ","{:>3}k".format(Size(last-strt, 1024)))
print("orignal used: ","{:>3}k".format(Size(last, 4*1024)))
if last < 0x10032000:
last = 0x10032000
size = "{:>3}k".format(Size(last-strt, 1024)) size = "{:>3}k".format(Size(last-strt, 1024))
used = "{:>3}k".format(Size(last, 4*1024)) used = "{:>3}k".format(Size(last, 4*1024))
print(last,strt) print(last,strt)
print(size,used) print(size,used)
mapfile = os.path.join(dir, "applink.map") mapfile = os.path.join(dir, "applink.map")
if (strt & 0x0FFFFFFF) == 0: if (strt & 0x0FFFFFFF) == 0:
with open(mapfile, "w") as f: with open(mapfile, "w") as f:

View File

@ -1,7 +1,7 @@
/*arduino-pico*/ /*arduino-pico*/
MEMORY MEMORY
{ {
FLASH(rx) : ORIGIN = 0x10000000 + 152k, LENGTH = __FLASH_LENGTH__ - 152k FLASH(rx) : ORIGIN = 0x10000000 + 200k, LENGTH = __FLASH_LENGTH__ - 200k
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = __RAM_LENGTH__ RAM(rwx) : ORIGIN = 0x20000000, LENGTH = __RAM_LENGTH__
SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k
SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k

View File

@ -24,7 +24,7 @@
MEMORY MEMORY
{ {
FLASH(rx) : ORIGIN = 0x10000000 + 152k, LENGTH = 2048k - 152k FLASH(rx) : ORIGIN = 0x10000000 + 200k, LENGTH = 2048k - 200k
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k
SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k
SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k

View File

@ -4,7 +4,7 @@
MEMORY MEMORY
{ {
FLASH(rx) : ORIGIN = 0x10000000 + 152k, LENGTH = 2048k - 152k FLASH(rx) : ORIGIN = 0x10000000 + 200k, LENGTH = 2048k - 200k
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k
SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k
SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k

View File

@ -1,6 +1,6 @@
MEMORY MEMORY
{ {
FLASH(rx) : ORIGIN = 0x10000000 + 152k, LENGTH = 2048k - 152k FLASH(rx) : ORIGIN = 0x10000000 + 200k, LENGTH = 2048k - 200k
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k
SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k
SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k

View File

@ -23,7 +23,7 @@
MEMORY MEMORY
{ {
FLASH(rx) : ORIGIN = 0x10000000 + 152k, LENGTH = 4096k - 152k FLASH(rx) : ORIGIN = 0x10000000 + 200k, LENGTH = 4096k - 200k
RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 512k RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 512k
SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k
SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k

View File

@ -162,7 +162,7 @@ extern "C" {
#ifdef rp2350 #ifdef rp2350
#define HEAP_MEMORY_SIZE (288*1024) #define HEAP_MEMORY_SIZE (288*1024)
#define MAXVARS 768 // 8 + MAXVARLEN + MAXDIM * 4 (ie, 64 bytes) - these do not incl array members #define MAXVARS 768 // 8 + MAXVARLEN + MAXDIM * 4 (ie, 64 bytes) - these do not incl array members
#define FLASH_TARGET_OFFSET (920 * 1024) #define FLASH_TARGET_OFFSET (968 * 1024)
#define MAX_CPU (rp2350a ? 396000 : 378000) #define MAX_CPU (rp2350a ? 396000 : 378000)
#define MAXSUBFUN 512 // each entry takes up 4 bytes #define MAXSUBFUN 512 // each entry takes up 4 bytes
#ifdef USBKEYBOARD #ifdef USBKEYBOARD
@ -175,7 +175,7 @@ extern "C" {
#else #else
#define HEAP_MEMORY_SIZE (128*1024) #define HEAP_MEMORY_SIZE (128*1024)
#define MAXVARS 512 // 8 + MAXVARLEN + MAXDIM * 2 (ie, 56 bytes) - these do not incl array members #define MAXVARS 512 // 8 + MAXVARLEN + MAXDIM * 2 (ie, 56 bytes) - these do not incl array members
#define FLASH_TARGET_OFFSET (920 * 1024) #define FLASH_TARGET_OFFSET (968 * 1024)
#define MAX_CPU 420000 #define MAX_CPU 420000
#define MAXSUBFUN 256 // each entry takes up 4 bytes #define MAXSUBFUN 256 // each entry takes up 4 bytes
#ifdef USBKEYBOARD #ifdef USBKEYBOARD

View File

@ -36,7 +36,7 @@
// According to the applink.map ,with combined PicoMite, here is 920k // According to the applink.map ,with combined PicoMite, here is 920k
// This offset is used to ensure that the bootloader does not get overwritten // This offset is used to ensure that the bootloader does not get overwritten
// when loading a new application from the SD card // when loading a new application from the SD card
#define SD_BOOT_FLASH_OFFSET (152 * 1024) #define SD_BOOT_FLASH_OFFSET (200 * 1024)
// Maximum size of the application that can be loaded // Maximum size of the application that can be loaded
// This ensures we don't overwrite the bootloader itself // This ensures we don't overwrite the bootloader itself