Basically I am adding data to an existing .uf2 (MicroPython), contiguous with the executable at 0x10046300, at a later 4K boundary of 0x10080000, with another block at 0x10090000 which points to the start of the contiguous block at 0x10046300.

I have some MicroPython code which reports what's in those loaded areas -

Code: Select all

```
from machine import mem8
def Dump(adr, size):
n = (mem8[adr+7]<<24) +(mem8[adr+6]<<16) + (mem8[adr+5]<<8) + mem8[adr+4]
print("{} : {}".format(hex(adr+4), hex(n)))
print("{} ...".format(hex(adr)))
s = ""
for pc in range(adr, adr + size):
n = mem8[pc]
if n < 0x20 or n > 0x7E : s = s + "<"+hex(n)[2:]+">"
else : s = s + chr(n)
print(s)
# 12345678
Dump(0x10046300, 32)
Dump(0x10080000, 32)
Dump(0x10090000, 32)
```

Code: Select all

```
0x10046304 : 0x1b
0x10046300 ...
<ff><ff><ff><ff><1b><0><0><0>test.py<0>print('in test.p
0x10080004 : 0x1b
0x10080000 ...
<ff><ff><ff><ff><1b><0><0><0>test.py<0>print('in test.p
0x10090004 : 0x10046300
0x10090000 ...
<0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10>
```

Code: Select all

```
0x10046304 : 0x1c
0x10046300 ...
<ff><ff><ff><ff><1c><0><0><0>yabba.py<0>print('in test.
0x10080004 : 0x18
0x10080000 ...
<ff><ff><ff><ff><18><0><0><0>pab` p<0><0>p`hd !h dap$
0x10090004 : 0x10046300
0x10090000 ...
<0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10>
```

Code: Select all

```
0x10046304 : 0x1c
0x10046300 ...
<ff><ff><ff><ff><1c><0><0><0>yabba.py<0>print('in test.
0x10080004 : 0x1c
0x10080000 ...
<ff><ff><ff><ff><1c><0><0><0>yabba.py<0>print('in test.
0x10090004 : 0x10046300
0x10090000 ...
<0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10><0>c<4><10>
```