为啥这么慢呢?

2019-07-22 14:40发布


sprintf(rgbhChar,"%4.4f",1234.5678);

测试了一下,这句耗时18740个机器周期。
印象里,以前测试过Keil的C51,好像比较复杂的转换也就2K~4K个机器周期(很久了,记忆准确吗?)

现CPU是msp430F449,编译器是IAR,工程选项卡里已经选了硬件乘法器。
为啥这么慢呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
heweibig
1楼-- · 2019-07-23 15:36
 精彩回答 2  元偷偷看……
dengdc
2楼-- · 2019-07-23 18:31
主要还有由于楼主用的开发环境不同,是不是用的库中的sprintf()功能不同?
我原来用汇编编过很多程序,430有很多指令在4个周期左右(和寻址方式有关),c51大多数指令是2周期;当然,在同等晶振频率下,430还是比51快的多。
heweibig
3楼-- · 2019-07-23 21:42

4个核当然要写4个main函数.
其实这里还涉及一个任务分配的问题. 撇开这个问题的话.
要发挥4核的性能.
可以让每个核做 100 次的加计算, 最后把结果加起来.
zhaoxqi
4楼-- · 2019-07-24 02:32
哦,这样啊
jiahy
5楼-- · 2019-07-24 05:18
你听到的说法是对的,编译器会根据内核情况选用合适的硬件。静态库文件是否使用到硬件的乘法器,决定于编译时候编译器的配置
zhaoxqi
6楼-- · 2019-07-24 07:23
 精彩回答 2  元偷偷看……

一周热门 更多>