rp2040

RP2040 Programming without SDK
Log | Files | Refs

commit d4782618cbd2c8cc737cba77a7fec5379b8d6bee
parent 3cb08405293f0153822e7301496fc07d15080b37
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Fri,  8 Mar 2024 08:01:25 +0900

move to sram bank 4

Diffstat:
Mex3/boot2.s | 16+++++++++++++++-
Mex3/memmap.ld | 9+++++----
2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/ex3/boot2.s b/ex3/boot2.s @@ -11,11 +11,21 @@ boot2: blx r2 blx r0 + // clear sram contents + mov r0, #0 + ldr r3, sram_base + ldr r4, sram_end +mem_clear_loop: + str r0, [r3, #0] + add r3, #4 + cmp r3, r4 + blt mem_clear_loop + // load main program to sram ldr r0, =prog_start ldr r1, =prog_size mov r2, #0 - ldr r3, sram_base + ldr r3, sram4_base copy: cmp r1, r2 blt end @@ -39,6 +49,10 @@ rom_base: .word 0x00000000 sram_base: .word 0x20000000 +sram4_base: + .word 0x20040000 +sram_end: + .word 0x20042000 m0plus_vtor: .word 0xe0000000 + 0xed08 literals: diff --git a/ex3/memmap.ld b/ex3/memmap.ld @@ -1,7 +1,8 @@ MEMORY { FLASH(rx) : ORIGIN = 0x10000000, LENGTH = 2m - SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 264k + SRAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k + SRAM4(rwx) : ORIGIN = 0x20040000, LENGTH = 4k } SECTIONS @@ -13,13 +14,13 @@ SECTIONS } > FLASH .text : { *(.text) - } > SRAM AT > FLASH + } > SRAM4 AT > FLASH .data : { *(.data) - } > SRAM AT > FLASH + } > SRAM4 AT > FLASH .rodata : { *(.rodata) - } > SRAM AT > FLASH + } > SRAM4 AT > FLASH prog_start = LOADADDR(.text); prog_size = SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.rodata); }