如何使用Keil打开GD32 FPU及使用ARM DSP库

GD32目前支持ARM Cortex-M和RISC-V两种内核系列芯片,其中Cortex-M内核已经支持的有M3、M4、M23、M33、M7,这里面除了M3和M23以外,其他的都带FPU单元。我们知道,FPU在浮点运算速度上有很大的提升,并且只有带FPU才可以使用ARM的DSP库。

现在就以GD32F303为例来教大家在keil中如何打开GD32 FPU以及使用ARM DSP库的方法。

第一步:在keil-Options-Target中设置Floating Point Hardware为Single Precision(小编用的是Keil5,用Keil4的小伙伴这里应该选为Use FPU)

第二步:工程中定义 __TARGET_FPU_VFP

第三步:打开gd32f30x.h文件,设置 __FPU_PRESENT为1

做完以上三步,可以看到SystemInit函数中的SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2));语句从无效变为有效了(实际上这句就是打开FPU单元)。

好了,我们来验证下FPU是不是被打开了,我们编译工程并下载到MCU中,在Memory窗口看下0xE000ED88地址的数,如果为0x00F00000,就说明FPU被正确打开了。

下面我们来介绍下如何使用ARM的DSP库,首先,我们需要两个文件:arm_cortexM4lf_math.lib 和arm_math.h,GD官方库是不带这两个文件的,小伙伴们可以自行网上下载或者联系我们提供哦。

第一步:将arm_cortexM4lf_math.lib 加入到工程中

第二步:工程中定义ARM_MATH_CM4

做好这两步后,就可以使用ARM DSP库了。调用的方法也很简单,在需要调用DSP库的文件中包含头文件:arm_math.h

然后就可以使用DSP库中的函数了,比如arm_sin_f32函数,下面分别用math标准库函数和ARM DSP math库来计算sin(π/6),小伙伴们可以自行测试运算速度差别哦。

好了,今天的内容就这些,如果还没有学废,那就评论区聊聊吧~记得点赞收藏加关注

GD32MCU技术交流群:859440462

更多GD32 MCU相关咨询:https://www.gd32bbs.com/

相关推荐

  1. STM32-寄存器和HAL以及如何使用

    2024-06-16 05:18:02       26 阅读
  2. Go使用Terraform

    2024-06-16 05:18:02       21 阅读
  3. 使用idea如何打开python项目

    2024-06-16 05:18:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 05:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 05:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 05:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 05:18:02       20 阅读

热门阅读

  1. 新增套餐——后端

    2024-06-16 05:18:02       6 阅读
  2. 向mysql发送一个请求的时候,mysql到底做了什么

    2024-06-16 05:18:02       8 阅读
  3. 什么是 Linux ?(Linux)

    2024-06-16 05:18:02       7 阅读
  4. 前端面试题日常练-day70 【面试题】

    2024-06-16 05:18:02       8 阅读
  5. 服务器硬件基础知识

    2024-06-16 05:18:02       6 阅读
  6. 13.零拷贝

    2024-06-16 05:18:02       8 阅读
  7. 【定义通讯数据类型】LCM搭建系统通讯

    2024-06-16 05:18:02       7 阅读
  8. Cesium4Unreal - # 011 加载显示geojson

    2024-06-16 05:18:02       8 阅读
  9. Spring Boot 项目中的 GC Root

    2024-06-16 05:18:02       8 阅读
  10. Docker常用命令

    2024-06-16 05:18:02       7 阅读
  11. mysql 分组后每个取最新的一条记录

    2024-06-16 05:18:02       11 阅读
  12. 常用的工具:pdf转换器、流程图

    2024-06-16 05:18:02       7 阅读