1.Keil 环境下使用 FPU 的方法
GD现有的M4内核MCU 均支持FPU,以下例子以Keil 为环境参考,进行代码修改和设置界面的配置(同理IAR的设置也是类似)。
1.在选项中找到上述的页面,选择使用use single precision。以下使用的是KEIL5的编译器,其他版本的也是类似。
2.使用F3系列,需要加入两条语句
在gd32f3xx.h中加入#define __FPU_PRESENT 1
在system_gd32f30x.c中的SystemInit()中加入
/ FPU settings / //如果库中没有这条语句,就需要加上
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif
如下图所示
使用F4系列 在gd32f4xx.h中加入#define __FPU_PRESENT 1
打开魔法棒,在 C/C++ 选项卡处添加宏定义 __TARGET_FPU_VFP 使用 FPU 单元。
4.重新编译下载烧录即可。
5.检查FPU是否打开。
a在jlink调试控制界面下,输入语句
mem32 0XE000ED88 1
具体看下图,得到为00F0 0000的值,证明FPU已经开启。
b.在GD link的调试下
在进入仿真阶段后,
点击下方memory ,在address 中输入0XE000ED88
出现上述圈中的词证明FPU已经打开。
2. Embedded Builder 环境下使用 FPU 的方法
在gd32f4xx.h中加入#define __FPU_PRESENT 1的宏
在工程的 properties 里添加预编译宏 __VFP_FP__
选择浮点运算类型及VFP架构
在core_cm4.h文件中确认FPU使能
在system_gd32f4xx.c中的SystemInit()中加入下述语句。
/ FPU settings / //如果库中没有这条语句,就需要加上
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif
用 Jlink 检查 FPU 是否打开的方法如前文所述,在此便不赘述。
上一篇:【GD32 MCU入门教程】GD32 MCU GPIO 结构与使用注意事项
下一篇:不同型号的GD32 MCU如何区分?
设计资源 培训 开发板 精华推荐
- 是德科技有奖直播:如何让你的Wi-Fi测试“兔”飞猛进?
- 点评《让世界更安全——TI Hercules开发实战手册》,精彩好礼等你拿!
- 有奖直播|ADI在可穿戴产品中的生命体征监测解决方案
- 直播:计算机视觉影像处理应用于智能驾驶的未来及挑战
- 【备战国赛】干货文集限时免积分下载,别错过哦~
- “慧眼”识PCIe——阅读《PCIe要了解的十件事》和泰克OPEN-DAY的培训资料 抽奖、分享赢好礼!
- 了解PI最新产品,评论、下载抢楼好礼送!
- 考眼力:高速数字设计的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- 考眼力:高速数字设计的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- 免费申请测评 | Sipeed MAix BiT AIoT 开发套件,搭载K210、屏幕和摄像头