1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
.syntax unified
.cpu cortex-m0plus
.thumb
.equ XOSC_BASE, 0x40024000
.equ CTRL_OFST, 0x0
.equ STATUS_OFST, 0x4
.equ STARTUP_OFST, 0xc
.type start_xosc, %function
.global start_xosc
start_xosc:
ldr r1, =XOSC_BASE
movs r0, 47 // startup delay = 47 for 12Mhz crystal
str r0, [r1, STARTUP_OFST]
ldr r0, =0x00fabaa0 // enable
str r0, [r1, CTRL_OFST]
1:
ldr r0, [r1, STATUS_OFST]
lsrs r0, r0, 31 // poll status bit
beq 1b
mov pc, lr
|