41 lines
467 B
ArmAsm
41 lines
467 B
ArmAsm
|
.global _start
|
||
|
|
||
|
_start:
|
||
|
ldr r0, _ready
|
||
|
ldr r1, _addr
|
||
|
mov r2, pc
|
||
|
add r2, #(_data - . - 2)
|
||
|
ldr r3, _size
|
||
|
_next:
|
||
|
cmp r3, #0
|
||
|
beq _done
|
||
|
@ Write data to flash
|
||
|
ldr r4, [r2]
|
||
|
str r4, [r1]
|
||
|
|
||
|
_wait: @ Wait for READY bit
|
||
|
ldr r4, [r0]
|
||
|
mov r6, #1
|
||
|
tst r4, r6
|
||
|
beq _wait
|
||
|
|
||
|
sub r3, #4
|
||
|
add r1, #4
|
||
|
add r2, #4
|
||
|
b _next
|
||
|
_done:
|
||
|
bkpt
|
||
|
|
||
|
@.align 4
|
||
|
.org 0x24
|
||
|
_ready:
|
||
|
.word 0x4001E400
|
||
|
_addr:
|
||
|
.word 0
|
||
|
_size:
|
||
|
.word 12
|
||
|
_data:
|
||
|
.word 0xAAAAAAAA
|
||
|
.word 0xBBBBBBBB
|
||
|
.word 0xCCCCCCCC
|