rp2040

RP2040 Programming without SDK
Log | Files | Refs

commit 992a278b65c0fb2599752f09f0f95f9c5f5872f5
parent 004799eb8e0f07992acb10210fd1aa054a916d56
Author: Matsuda Kenji <info@mtkn.jp>
Date:   Thu, 28 Aug 2025 09:33:03 +0900

make unreset a function

Diffstat:
Mex4_shell/main.c | 10++++++++++
Mex4_shell/start.s | 15++++++++++-----
2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/ex4_shell/main.c b/ex4_shell/main.c @@ -1,5 +1,15 @@ +enum reset_num { + RESET_IOBANK0 = 1 << 5, + RESET_PLL_SYS = 1 << 12, + RESET_UART0 = 1 << 22, +}; + +void unreset(enum reset_num); +void mains(void); + void main(void) { + unreset(RESET_IOBANK0|RESET_PLL_SYS|RESET_UART0); mains(); } diff --git a/ex4_shell/start.s b/ex4_shell/start.s @@ -58,12 +58,12 @@ loop: wfe b loop - .global mains -mains: - push {lr} - + // void unreset(enum reset_num subsystems); + // unreset unresets subsystems. + // subsystems is bitwise or. + .global unreset +unreset: // unreset gpio, pll_sys, uart0 - ldr r0, =(1 << 22 | 1 << 12 | 1 << 5) // uart0 | pll_sys | io_bank0 ldr r3, resets_base ldr r1, atomic_clr str r0, [r3, r1] // RESETS: RESET @@ -74,6 +74,11 @@ unreset_chk: ldr r1, [r3, #0x8] // RESETS: RESET_DONE bic r0, r1 bne unreset_chk + bx lr + + .global mains +mains: + push {lr} // set gpio functions ldr r3, io_bank0_base