KEIL5 cortex-m3使用FPU浮点库,GD使用ST库文件(笔记)

多谢c友分享,在此做个笔记:

1.ARM Cortex M4
  ARM Cortex-M4处理器是由ARM专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等。Cortex-M4处理器的最大亮点之一,也是本文主要描述的一个功能就是增加了一个单精度浮点单元(FPU),能够高效率处理较为复杂的浮点运算,如电机闭环控制、PID算法、快速傅里叶变换等。

2.使用M4的浮点运算
2.1获取FPU库
M4浮点库集成在Keil中,安装完Keil工具,即可从对应的文件路径获取FPU库。
 ·对于Keil4,库文件在路径:“…\Keil\ARM\CMSIS”
 ·对于Keil5,库文件在路径:“…\Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS”,前面“…”是安装的磁盘路径,比如:“D:\Keil_v5\ARM\Pack\ARM\CMSIS\4.3.0\CMSIS”;

2.2拷贝库文件
对于一个项目来说,为了工程的完整性和源文的管理,一般将库文件拷贝到项目工程中文件路径下。这里有两种处理用方法。
 ·使用该目录下的“Lib”库,该文件夹就是FPU相关运算函数库,使用时根据头文件函数名调用库。
 ·使用该目录下的“DSP_Lib”库,该文件夹是FPU相关运算函数库源码,每个浮点运算函数都提供源码,比较好理解和使用。

2.3加入FPU库
  首先将FPU库的路径加入Keil的编译路径中。
  第二步是加入工程,可以全部FPU库函数添加到工程中,但一般根据需要选择性添加使用到的函数库,提高编译速度和节省空间。鄙人暂时用到标准差( standard deviation)和平均值(mean)运算函数,所以仅添加两函数。另外,从命名看,ARM的命名规则比较易懂,基本上看函数名称即可知道该函数的功能,如标准差运算函数arm_std_f32,平均值运算函数arm_mean_f32,等都是以对应术语的英文名称命名。
2.4开启FPU
  使能浮点运算,在工程设置中“option for target” 中开启浮点运算功能。

加入FPU库的宏“ARM_MATH_CM4”定义。

2.5使用FPU   使用前,需要在文件头加入浮点库函数头文件,即是#include "arm_math.h",否则编译时可能会提示警告或者编译错误。然后即是根据库函数的参数类型传入对应类型参数调用该函数。

3.总结  实体测试及综合网友的一些实验,关于FPU的几个总结: 1)编译器未开启FPU功能,代码中配置了FPU,程序依然按照未配置FPU的代码进行处理。 2)编译器开启了FPU功能,代码中未配置FPU,如果代码中带有单精度(float)浮点运算的代码,编译器会使用FPU单元汇编指令,无论芯片是否开启了FPU功能。除非用户在代码中关闭了FPU功能,此时程序执行会出错,直接进入HardFault_Handle。 3)Cortex M4默认的开启浮点运算功能的,但目前M4只支持单精度浮点运算,单精度浮点运算对于大部分场合来说已经足够使用。 4)一般情况下,编译器对于小数处理默认是双精度(double)类型,所以在涉及小数运算时,若要使用FPU功能,应该指定为单精度类型,如:float a = 1.23f * 2.34f。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值