本帖最后由 yjmwxwx 于 2021-3-16 18:55 编辑
谢谢你了,你都说的这么明白了我还看不懂,已经改过来了,比原来效率高太多了,以前只是看着书上的FIR算法写的,没想到还能优化,脑子不怎么灵活。。。
看样子一个人闭门造车不太行,这么大错误都发现不了,别的地方肯定还有更多错误。。
- __lv_bo_qi:
- @地址顺序:指针,累加值,缓冲区
- @入口R0=缓冲区,R1=数据, r2,=指针
- @出口R0
- push {r3-r6,lr}
- movs r4, # 4
- ldr r5, [r2]
- mov r3, r5
- lsls r3, r5, # 2
- ldr r6, [r0, r3]
- str r1, [r0, r3]
- adds r5, r5, # 1
- str r5, [r2]
- cmp r5, r4
- bne __huanchong_leijia1
- movs r5, # 0
- str r5, [r2]
- __huanchong_leijia1:
- subs r0, r0, # 4
- ldr r5, [r0]
- adds r1, r1, r5
- subs r1, r1, r6
- str r1, [r0]
- asrs r0, r1, # 2
- pop {r3-r6,pc}
|