62 lines
No EOL
757 B
ArmAsm
62 lines
No EOL
757 B
ArmAsm
.syntax unified
|
|
.cpu cortex-m4
|
|
.thumb
|
|
|
|
.global _estack
|
|
|
|
.equ SCR, 0xE000E000
|
|
.equ STCSR, SCR+0x10
|
|
.equ STRVR, SCR+0x14
|
|
.equ STCVR, SCR+0x18
|
|
.equ STCR, SCR+0x20
|
|
|
|
ivt:
|
|
.word _estack
|
|
.word int0_reset
|
|
|
|
int0_reset:
|
|
ldr r0, =_estack
|
|
mov sp, r0
|
|
|
|
bl main
|
|
|
|
ldr r7, =0xDEADBEEF
|
|
mov r0, #0
|
|
reset_loop:
|
|
add r0, r0, #1
|
|
b reset_loop
|
|
|
|
.equ CLOCK_1MS, 180000
|
|
|
|
# r0 - delay
|
|
systick_wait:
|
|
push {lr}
|
|
|
|
ldr r1, =CLOCK_1MS
|
|
mul r0, r0, r1
|
|
ldr r1, =STCVR
|
|
str r0, [r1]
|
|
|
|
mov r0, #0b101
|
|
ldr r1, =STCSR
|
|
str r0, [r1]
|
|
|
|
systick_loop:
|
|
ldr r0, [r1]
|
|
ands r0, #0b10000
|
|
beq systick_loop
|
|
|
|
pop {lr}
|
|
bx lr
|
|
|
|
main:
|
|
mov r0, #9000
|
|
bl systick_wait
|
|
|
|
ldr r6, =0xAABBCCDD
|
|
dbg_loop: b dbg_loop
|
|
|
|
mov r0, #9000
|
|
bl systick_wait
|
|
|
|
bx lr |