commit b5a8285479ca22755f493e59f99d6ff882df1363
parent 1467a54682a9b18ad2124e8d906defaa899d11f1
Author: Matsuda Kenji <info@mtkn.jp>
Date: Thu, 16 Mar 2023 14:01:12 +0900
use xosc
Diffstat:
M | main.s | | | 32 | ++++++++++++++++++++++++++++++++ |
1 file changed, 32 insertions(+), 0 deletions(-)
diff --git a/main.s b/main.s
@@ -1,6 +1,38 @@
.section .text
.global main
main:
+ // set xosc delay
+ ldr r0, xosc_base
+ mov r1, #47
+ str r1, [r0, #0xc] // XOSC_STARTUP
+
+ // enable xosc
+ ldr r1, atomic_set
+ add r0, r0, r1
+ mov r1, #0xf
+ lsl r1, r1, #8
+ add r1, r1, #0xab
+ lsl r1, r1, #8
+ add r1, r1, #0xaa
+ lsl r1, r1, #4
+ str r1, [r0, #0] // XOSC_CTRL
+
+ // wait for xosc startup
+ ldr r0, xosc_base
+xosc_stable:
+ ldr r1, [r0, #0x4]
+ lsr r1, r1, #31
+ beq xosc_stable
+
+ // set ref clock to xosc
+ ldr r0, clocks_base
+ mov r1, #2
+ str r1, [r0, #0x30] // CLOCKS_CLK_REF_CTRL
+
+ // set sys clock to ref
+ mov r1, #0
+ str r1, [r0, #0x3c] // CLOCKS_CLK_SYS_CTRL
+
// reset gpio
ldr r0, resets_base
ldr r1, atomic_clr