Unsigned int a;
float c;
a=1000;
c=a; 该句执行时间28335下,需要62个时钟周期。
c=1.0/a;该句执行时间28335下,需要224个时钟周期。
请问有什么办法能优化下吗?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Unsigned int a;
float c;
a=1000;
c=a; 该句执行时间28335下,需要62个时钟周期。
c=1.0/a;该句执行时间28335下,需要224个时钟周期。
请问有什么办法能优化下吗?
谢谢!
你使用的是浮点芯片,定义的也是浮点数,所以请确保你是在用浮点单元进行运算。
是否在编译选项里打开了硬件浮点功能,是否添加了所需要的所有相关浮点加速库?
请参考 www.ti.com/lit/SPRUEO2 文档1.2.1 Floating-Point Code Development确保完成了所有相关设置。
此外,请确保你的Flash进行了初始化,设定了对应的等待时间。
如果时间上还是有问题,可以考虑将对应代码copy到RAM上运行。
谢谢!
现在
c=a; 该句执行时间28335下,需要只需要3个时钟周期。
c=1.0/a;该句执行时间28335下,需要236个时钟周期,时间还是很长。
我的程序是放在RAM里执行的。不是下载到flash里运行的。
我添加了三个fpu的lib:
IQmath_fpu32.lib
rts2800_fpu32_fast_suppliment.lib
C28x_FPU_Lib.lib
我添加了这三个lib后,需要添加这三个库文件的.h头文件吗?
需不需要在ram.CMD文件中更改库文件的配置?
库文件在我的ram.CMD中的配置,请指正!
IQmath : > RAML, PAGE = 0
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
IQmathTables2 : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
我有个疑问:您是如何测量有多少个时钟周期的?
头文件要加上。
CMD文件改的没有问题。
建议您在TI浮点的例程中添加您的这几行代码再试试看吧。