telink support team:
目前使用的是mesh sdk,芯片是tlsr8253,目前是遇到使用浮点运算和指数运算的问题。
在工程中有看到libsoft-fp.a库,这个库是否就是用来实现浮点运算的呢(因为没有硬件浮点单元)?
另外,我调用了pow()进行指数运算,编译的时候提示 “undefined reference to `pow ”,但是根据代码的运行结果(可以生成.bin文件)和我手动计算的结果,两者是一致的,这说明pow()是起作用了的,为什么这里会报编译错误呢? 这个pow()是在哪个头文件里,又是在哪里实现的?
如果没有库包含pow(),Telink是否有自己的针对telink芯片(比如tlsr8253)的pow()函数的实现呢? 因为如果自己去实现这个pow()的话就太困难了啊。
你好,
目前是软件浮点实现的浮点运算,目前没有pow实现,可以参考开源的pow实现自己的功能。
你好,
我在测试pow这个功能的时候,我使用了telink_b85m_driver_sdk,我在初始后做了一个小小的对pow()函数使用的测试,如下图。我在BDT中查看test_r这个变量,然后我用电脑的计算器手动计算,手动计算的结果跟这里的test_r变量的结果是一样的。我跟换pow()的参数,然后手动计算和test_r的值都是一样。 这说明pow()在这个测试中起作用了的啊。
在telink ide的安装目录C:\TelinkSDK\opt\tc32\lib\gcc\tc32-elf\4.5.1-tc32-1.3\include下,tgmath.h中有pow()函数。在C:\TelinkSDK\opt\tc32\tc32-elf\include目录下,有math.h,其中也有pow. C:\TelinkSDK\opt\tc32\tc32-elf\lib目录下的这几个libc.a, libg.a, libm.a分别是什么库呢?
但是我在我自己的工程中使用这个pow(),编译时始终报错说找不到pow.
请问下这是是怎么回事呢?
Telink,
有人帮看下这个问题吗?