X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=flashloaders%2Fstm32lx.s;fp=flashloaders%2Fstm32lx.s;h=bb8f7c93f6ad77b703b3aa25a59f4eb5f131e5ee;hb=f782e931b0c51836ffae8a47618e6c2263607555;hp=799d1345cc3fbff8a044b2468f399dff7e160add;hpb=5121ae07c4a58887dcf940c107a4f45422ffd092;p=fw%2Fstlink diff --git a/flashloaders/stm32lx.s b/flashloaders/stm32lx.s index 799d134..bb8f7c9 100644 --- a/flashloaders/stm32lx.s +++ b/flashloaders/stm32lx.s @@ -34,27 +34,25 @@ .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