0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

聚沃科技 2024-01-13 09:42 次阅读

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)

wKgaomWh6dyAObq2AAGNfkmnj2w223.png

第二步:工程中定义 __TARGET_FPU_VFP

wKgZomWh6eGAQBhiAALObuBqrRA242.png

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

wKgZomWh6eaANicrAAKQllSxQJM238.png

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

wKgaomWh6e2ANkqLAAD31X3yCFI880.pngwKgZomWh6fKAGCsqAAD7NE-3bRE920.png

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

wKgaomWh6fiAfLPZAAB9O0RqHOw455.png

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

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

wKgZomWh6gCAWX8aAACt588UcXs007.png

第二步:工程中定义ARM_MATH_CM4

wKgZomWh6gSAXHLMAAH_AzNTd4w205.png

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

wKgaomWh6gmAWribAACFnZ9Sr74382.png

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

wKgZomWh6hGAH2lYAADuZgTm3Cs424.png

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632714
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9040

    浏览量

    366731
  • keil
    +关注

    关注

    68

    文章

    1211

    浏览量

    166661
  • GD32
    +关注

    关注

    7

    文章

    403

    浏览量

    24209
收藏 人收藏

    评论

    相关推荐

    如何使用Keil打开GD32 FPU及使用ARM DSP?#GD32 #KEIL #单片机 #嵌入式

    单片机mcu
    聚沃科技
    发布于 :2024年01月15日 10:08:48

    什么是GD32

    是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。相同的地方我们就不说了,下面我给大家讲一下不同的地方。二、区别1、内核GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,
    发表于 08-12 07:46

    GD32芯片包添加步骤有哪些

    **GD32芯片包添加步骤**GD32开发环境可以有多个选择,常见的开发编译环境有:Keil4,keil5,IAR。本教程针对keil5如何
    发表于 11-22 08:30

    请问GD32启动文件使用的ARM汇编指令有哪些呢

    请问GD32启动文件使用的ARM汇编指令有哪些呢?
    发表于 11-29 07:06

    GD32系列总结

    LSI时钟片内时钟关系CubeMX配置LL集成CubeMX关键配置Port配置时钟树Debug其他配置CubeMX的整体感受写在前面由于手里暂时没有GD32的板子,只有一个同系列的STM32,但是封装
    发表于 02-11 07:11

    如何使用keil5/MDK对GD32进行软件仿真?

    如何使用keil5/MDK对GD32进行软件仿真?
    发表于 02-22 06:32

    学习一下GD32官方的使用

    GD32和STM32相比有哪些优势呢?学习一下GD32官方的使用
    发表于 02-28 06:55

    GD32单片机开发环境搭建(Keil5安装)

    GD32单片机开发环境搭建(Keil5安装)
    发表于 11-13 14:36 40次下载
    <b class='flag-5'>GD32</b>单片机开发环境搭建(<b class='flag-5'>Keil</b>5安装)

    GD32F系列单片机开发总结(二):GD32芯片包添加步骤

    **GD32芯片包添加步骤**GD32开发环境可以有多个选择,常见的开发编译环境有:Keil4,keil5,IAR。本教程针对keil5如何
    发表于 11-13 17:21 37次下载
    <b class='flag-5'>GD</b>32F系列单片机开发总结(二):<b class='flag-5'>GD32</b>芯片包添加步骤

    GD32和AT32哪个好?

    功能和强大的性能的微控制器。它主要用于智能家居、智能电机控制、医疗设备等领域。 GD32系列芯片采用了3种不同的内核:ARM Cortex-M0+、
    的头像 发表于 08-16 11:32 2297次阅读

    GD32与STM32兼容吗?

    的STMicroelectronics公司设计和生产的。 虽然GD32与STM32都是基于ARM Cortex-M内核的微控制器,但是它们并不完全兼容。由于两个公司的设计和生产流程不同,GD32系列和STM32系列
    的头像 发表于 08-16 11:32 2847次阅读

    hc32和gd32的区别

    hc32和gd32的区别 HC32和GD32都是中国的MCU品牌,它们都是标准的ARM Cortex-M内核芯片。HC32的品牌是华大集成电路,而GD32的品牌是吉祥航空电子。这两个品
    的头像 发表于 08-16 11:33 3168次阅读

    KEIL5如何打开KEIL4的GD工程

    GD官方提供的很多KEIL例程为KIEL4的版本,读者使用的时候可能会碰到使用KEIL5打开KEIL4的工程会报错以及无法找到芯片选型的问题
    的头像 发表于 01-11 09:43 837次阅读
    <b class='flag-5'>KEIL</b>5如何<b class='flag-5'>打开</b><b class='flag-5'>KEIL</b>4的<b class='flag-5'>GD</b>工程

    GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(1)使用Keil开发GD32

    GD32系列为通用型MCU,所以开发环境也可以使用通用型的IDE,目前使用较多的是KEIL、IAR、 GCC和Embedded Builder,客户可以根据个人喜好来选择相应的开发环境。
    的头像 发表于 08-08 15:01 1001次阅读
    【<b class='flag-5'>GD32</b> MCU 入门教程】一、<b class='flag-5'>GD32</b> MCU 开发环境搭建(1)使用<b class='flag-5'>Keil</b>开发<b class='flag-5'>GD32</b>

    GD32 MCU 入门教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的头像 发表于 08-25 09:24 460次阅读
    【<b class='flag-5'>GD32</b> MCU 入门教程】<b class='flag-5'>GD32</b> MCU <b class='flag-5'>FPU</b> 使用方法