我没写过DSP,所以那部份我没办法给建议
不过,用C写的效率如果不好,用组合语言写不见得就会比较好
除非你有把握你可以最佳化做得比compiler还要好XD
将除法改成"先求出除数的倒数,再和被除数相乘来达成"
首先就会碰到的问题是,你除数的倒数,精确度够高吗?
如果转换成倒数的过程就损失了部分的精确度,相乘之后自然误差会更大
建议你可以往两个部分想看看
第一个是去网络上找找除法的算法,简单说,别人怎么实现除法的?
第二个是你的除法的改善,因为你没有提供数字,
所以我也不知道你是整数除法?还是浮点数除法?
一般来说整数除法会比浮点数除法的速度要快,
那你的资料有没有可能先调整成整数去运算?最后再调整回原先的数值?
真想不出来,就把你的算法瓶颈的部分贴上来
或许会有人给你一点建议:)
※ 引述《asdrtyjkl925 (阿斯拉)》之铭言:
: 大家好
: 小弟之前写DSP,都是用C来写
: 但目前的CASE,用C的话执行速度不够快,所以开始学用组合语言
: 最近在除法上遇到了瓶颈
: 我想到的除法的做法是:
: 用RCPSP或RCPDP指令先求出除数的倒数,再和被除数相乘来达成
: 但后来发现这两个指令求出的倒数值,不是那么精确
: (和计算机按出来的答案有落差)
: 所以想请教大大们 正确的除法该怎么执行,谢谢:)
: (ps.使用的DSP为C6748)