First RP2040 board and third MCU family (after ESP32-S3 and nRF52840). Hardware: RP2040 + SX1262 radio, 850-930 MHz HF, PE4259 antenna switch, LED on GPIO25, no OLED, USB-C via FPC ribbon cable to adapter board. New files: - src/hal/rp2040.rs: MCU primitives (SPI bus, USB driver, flash unique ID MAC) - src/board/waveshare_rp2040_lora.rs: board implementation - ld/rp2040-memory.x: linker memory layout Also fixes cortex-m-rt/set-vtor (moved from global dep to per-board feature, since Cortex-M0+ has no VTOR register) and makes build.rs memory.x selection target-aware.
25 lines
595 B
Plaintext
25 lines
595 B
Plaintext
/* RP2040 memory layout — UF2 bootloader (ROM boot2)
|
||
*
|
||
* 0x10000000 – 0x10000100 boot2 (second-stage bootloader, 256 bytes)
|
||
* 0x10000100 – 0x10200000 Application <- we live here
|
||
*
|
||
* Flash: 2MB (W25Q16JV on Waveshare RP2040-LoRa)
|
||
* RAM: 264KB SRAM (two 256KB banks + 2x 4KB scratch)
|
||
*/
|
||
|
||
MEMORY
|
||
{
|
||
BOOT2 : ORIGIN = 0x10000000, LENGTH = 0x100
|
||
FLASH : ORIGIN = 0x10000100, LENGTH = 2048K - 0x100
|
||
RAM : ORIGIN = 0x20000000, LENGTH = 264K
|
||
}
|
||
|
||
EXTERN(BOOT2_FIRMWARE)
|
||
|
||
SECTIONS {
|
||
.boot2 ORIGIN(BOOT2) :
|
||
{
|
||
KEEP(*(.boot2));
|
||
} > BOOT2
|
||
} INSERT BEFORE .text;
|