build.rs resolves the linker layout in two steps: per-board override
`ld/{board}-memory.x` first, MCU-family default second. Lets a board
deviate from the family default without a per-board build matrix.
Adds `ld/wio_tracker_l1-memory.x` with `ORIGIN = 0x1000` (no-SD
layout). The Wio Tracker L1 ships from Seeed with s140 SoftDevice, but
our earlier `ORIGIN = 0x1000, LENGTH = 0xE9000` linker silently
overwrote it across many UF2 flashes; the bootloader now reports
`SoftDevice: not found`. Until s140 is restored via SWD, the WIO
needs the no-SD layout to match the bootloader's actual boot chain.
Delete the per-board file once SD is restored -- the build will then
fall back to the SD-aware `ld/nrf52840-memory.x` and the WIO matches
every other nRF52840 board.
26 lines
998 B
Plaintext
26 lines
998 B
Plaintext
/* Wio Tracker L1 memory layout — UF2 bootloader, NO SoftDevice
|
||
*
|
||
* 0x00000 – 0x01000 MBR (Master Boot Record)
|
||
* 0x01000 – 0xEA000 Application ← we live here (no SD present)
|
||
* 0xEA000 – 0xF4000 Reserved (app data)
|
||
* 0xF4000 – 0xFC000 UF2 Bootloader
|
||
* 0xFF000 – 0x100000 Bootloader settings
|
||
*
|
||
* Background: Seeed factory firmware ships s140 SoftDevice at
|
||
* 0x01000–0x26000, but our earlier UF2 flashes (with the original
|
||
* `ORIGIN = 0x1000` layout) silently overwrote that region. The WIO
|
||
* bootloader now reports `SoftDevice: not found`; until we restore
|
||
* s140 via SWD, the app must live at 0x1000 to match the bootloader's
|
||
* no-SD boot chain.
|
||
*
|
||
* Delete this file once SD is reinstalled — `build.rs` will then fall
|
||
* back to `ld/nrf52840-memory.x` (the SD-aware default at 0x26000)
|
||
* and the WIO matches every other nRF52840 board.
|
||
*/
|
||
|
||
MEMORY
|
||
{
|
||
FLASH : ORIGIN = 0x00001000, LENGTH = 0xE9000
|
||
RAM : ORIGIN = 0x20000008, LENGTH = 255K
|
||
}
|