STM32F4 的FPU 的配置.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32F4 的FPU 的配置

STM32F4 的FPU 的配置 编译环境为EWARM-6601 首先看下面一段代码:来自core_cm4.h文件 /*! __FPU_USED to be checked prior to making use of FPU specific registers and functions */ #if defined ( __CC_ARM ) #if defined __TARGET_FPU_VFP #if (__FPU_PRESENT == 1) #define __FPU_USED 1 #else #warning Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) #define __FPU_USED 0 #endif #else #define __FPU_USED 0 #endif #elif defined ( __ICCARM__ ) //IAR编译工具的开关 #if defined __ARMVFP__ //要求编译出的文件使用FPU功能 #if (__FPU_PRESENT == 1) //检查是否有FPU功能 #define __FPU_USED 1 #else #warning Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) #define __FPU_USED 0 #endif #else #define __FPU_USED 0 #endif #elif defined ( __GNUC__ ) #if defined (__VFP_FP__) !defined(__SOFTFP__) #if (__FPU_PRESENT == 1) #define __FPU_USED 1 #else #warning Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT) #define __FPU_USED 0 #endif #else #define __FPU_USED 0 #endif #elif defined ( __TASKING__ ) /* add preprocessor checks to define __FPU_USED */ #define __FPU_USED 0 #endif 这里针对各种工具链设置了相应的条件编译选项,这里只说的,其他工具链的用户请参考本文自行修改最上层的开关是 __CC_ARM 这个宏,很明显这个开关是针对MDK工具的,同理IAR工具的开关就叫做 __ICCARM__ 了;然后一个开关就是__ARMVFP__ 了,这个开关要求编译出的文件使用FPU功能,但是m4的FPU并不是必装设备,某些厂家可能会不装这个东西,所以需要检查是否有FPU,即 __FPU_PRESENT 这个开关。在core_cm4.h中有这样的代码#ifndef __FPU_PRESENT #define __FPU_PRESENT 0 #warning __FPU_PRESENT not defined in device header file; using default! #endif #ifndef __MPU_PRESENT #define __MPU_PRESENT 0 #warning __MPU_PRESENT not defined in device header file; using default! #endif 由上述代码可以知道CMSIS默认的定义是没有FPU的,所以需要我们手动添加FPU存在的定义__FPU_PRESENT 1 这样FPU存在与否的检查就通过了,所以后面就自动定义了 __FPU_USED

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档