TI-TM4C123x学习记录(十):FPU使用注意事项

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/redgragon0/article/details/80562253

一、写在前面

逛TI论坛的时候看到关于使用FPU算pid速度慢的问题,原题主走了不少弯路,在此记录下来免得自己也掉进坑里。

估计用到FPU也在挺后面了,随便给个编号。。。

二、问题简述

在高速运算pid时(60Khz),浮点运算速度跟不上。

三、解决方案

1.软件开启FPU

ROM_FPUEnable();
ROM_FPULazyStackingEnable();    //例程中给的是ROM_FPUStackingEnable();

2.需要在CCS中选项开启(待验证)

论坛原文:

FPU的开启,除了软件开启外,还需要在CCS中有个选项,开启才可以的。至于你说的编译器优化开到最大,出现错误,也是有可能的,这个需要你单步调试确定。

3.将变量定义为volatile float类型

例如:

volatile float value = 0.0;

4.(重要)在计算中注意常数默认应改为float

计算公式中有些 x * 0.4这种的算式,这里直接使用的0.4在编译器中是默认为double类型的,导致很多运算不能用FPU执行,改成 0.4f 之后就正常了。

四、引用地址

TIVA launchpad利用FPU进行高速双环pid运算问题

https://e2echina.ti.com/question_answer/microcontrollers/tiva_arm_cortex/f/96/t/87433

展开阅读全文

没有更多推荐了,返回首页