Update README
[fw/stlink] / flashloaders / stm32lx.s
index 799d1345cc3fbff8a044b2468f399dff7e160add..10e5644bffc303fa0b05c85cb6f594c729240bcd 100644 (file)
@@ -25,7 +25,7 @@
  ***************************************************************************/
 
 
-// Build : arm-eabi-gcc -c stm32lx.S
+// Build : arm-eabi-gcc -c stm32lx.s
     .text
     .syntax unified
     .cpu cortex-m3
     .global write
 
 /*
-    r0 - destination address
-    r1 - source address
-    r2 - count
+    r0 - source address
+    r1 - destination address
+    r2 - output, remaining word count
 */
 
-    // Set 0 to r3
-    movs    r3, #0
     // Go to compare
-    b.n test_done
+    b test_done
 
 write_word:
     // Load one word from address in r0, increment by 4
-    ldr.w    ip, [r1], #4
+    ldr.w    ip, [r0], #4
     // Store the word to address in r1, increment by 4
-    str.w    ip, [r0], #4
-    // Increment r3
-    adds    r3, #1
+    str.w    ip, [r1], #4
+    // Decrement r2
+    subs    r2, #1
 
 test_done:
-    // Compare r3 and r2
-    cmp     r3, r2
+    // Test r2
+    cmp     r2, #0
     // Loop if not zero
-    bcc.n    write_word
+    bhi     write_word
 
     // Set breakpoint to exit
     bkpt    #0x00