aboutsummaryrefslogtreecommitdiff
path: root/flashstub/nrf51.s
diff options
context:
space:
mode:
authorNicolas Schodet2015-05-11 11:44:13 +0200
committerNicolas Schodet2015-06-16 17:00:31 +0200
commitb877293fd8603270854876f8c7e6a6d46fb49c2c (patch)
tree580838207cb8a0b5d980a6b1d2cc5b3d5420fb90 /flashstub/nrf51.s
parent21b3aba640e492b49140cb9c994f97a61ca51d29 (diff)
parent482070c91b0cc5a5f16c02a30e26e306685566bb (diff)
Merge remote-tracking branch 'github/master' into dev2
Conflicts: src/main.c
Diffstat (limited to 'flashstub/nrf51.s')
-rw-r--r--flashstub/nrf51.s40
1 files changed, 40 insertions, 0 deletions
diff --git a/flashstub/nrf51.s b/flashstub/nrf51.s
new file mode 100644
index 0000000..e23b613
--- /dev/null
+++ b/flashstub/nrf51.s
@@ -0,0 +1,40 @@
+.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