Merge tag '1.2.0' into debian
[fw/stlink] / flashloaders / stm32lx.s
index 799d1345cc3fbff8a044b2468f399dff7e160add..bb8f7c93f6ad77b703b3aa25a59f4eb5f131e5ee 100644 (file)
     .global write
 
 /*
-    r0 - destination address
-    r1 - source address
+    r0 - source address
+    r1 - destination address
     r2 - 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