发新帖我要提问
123
返回列表
打印

最据山寨特色的《中颖快速浮点乘、除法程库》!!!

[复制链接]
楼主: Cortex-M0
手机看帖
扫描二维码
随时随地手机跟帖
41
乘法、除法、快速返回都加进去编译,主函数如下调用为什么总是不行呢?
extern        float   FPMUL(float value1, float value2);                  // 二进制浮点数快速乘法  
extern        float   FPDIV(float value1, float value2);                  // 二进制浮点数快速除法

float c,d,e ;

void main(void)
{
        c = 987.654321;
        d = 123.456789
        while(1)
        {
                e = 0;       
                e = FPMUL(c,d);
                e = FPDIV(c,d);
                _nop_();
        }
}

使用特权

评论回复
42
Cortex-M0|  楼主 | 2012-10-29 13:29 | 只看该作者
你如外挂库,如出错,是由于FPMUL,FPDIV 和Keil C51中保留字冲突,将函数改个名字重新编译即可。

你如不外挂库,外挂函数源程序,如出错,除了上述原因,还有可能这两个函数FPMUL,FPDIV用到的支持函数没有外挂全。

使用特权

评论回复
43
liuhongyu_2408| | 2012-10-29 14:01 | 只看该作者
我挂了三个:   FPMUL.A51 、  FPDIV.A51 、FPRET.A51 ,我只用浮点的乘除法。里面什么都不没改动,然后再主程序中直接按上述调用不行吗?

使用特权

评论回复
44
Cortex-M0|  楼主 | 2012-10-29 17:45 | 只看该作者
因FPMUL,FPDIV 和Keil C51中保留字冲突,你写成
  e = FPMUL(c,d);
   e = FPDIV(c,d);
不行,但可按Keil C51标准写
  e = c * d;
  e = c / d;
或将所有的函数改个名字,如改成FPMUL1, FPDIV1, 避开和Keil C51中保留字冲突,按你上述方法即OK !

使用特权

评论回复
45
Cortex-M0|  楼主 | 2012-10-29 17:47 | 只看该作者
注:函数改名应从 FPMUL.A51 、FPDIV.A51 内改起。

使用特权

评论回复
46
ymzsl| | 2014-6-19 17:05 | 只看该作者
支持SH79F6488的硬件平台吗

使用特权

评论回复
47
wjx460714055| | 2021-11-23 18:05 | 只看该作者
大佬 有参考的**说明一下 32*32的浮点快速算法么  看不太懂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则