本帖最后由 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}
|