当前位置: 首页 > news >正文

GD32/STM32嵌入CMSIS-DSP的库(基于Keil)

        当你要用到三角函数、开方、矩阵运算等复杂的数学运算时,可以选择用C库的math.h里面的函数,如果要求速度快的话就得用CMSIS-DSP库里面的函数了,因为CMSIS-DSP库充分运用了CM4内核的浮点运算单元(若有)和DSP相关的指令(若有),使得运算速度大幅提升,具体使用步骤为:

1.添加lib

        可以在keil的安装目录找到,具体目录为:C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\DSP\Lib\ARM

        根据所用MCU的内核选择相应的lib,其中“l”代表小端格式,“b”代表大端格式,“f”表示具有浮点运算单元,fsp和fdp表示单精度/双精度浮点单元,如对于GD32F303来说是M4内核+小端格式+单精度浮点单元,所以要选择arm_cortexM4lf_math.lib。

2.将DSP库文件夹下的Include目录下的文件也复制到工程中并添加头文件路径

3.在工程中添加全局宏定义ARM_MATH_CM4

4.支持浮点单元的要在工程配置中开启浮点单元支持

5.CMSIS-DSP库会需要CMSIS-Core里面的函数的支持,所以也需要把CMSIS-Core里面的头文件复制到工程中并添加头文件路径

6.#include "arm_math.h"之后就可以使用DSP库里面的函数了,如正弦计算函数:arm_sin_f32(0.232)

7.编译的时候可能会报一些错,根据错误类型针对解决就行

注意:一般来说keil安装目录里面自带的CMSIS库是针对ARM编译器版本5的,你如果用的是ARM编译器版本6则需要自行去官网下载对应的CMSIS库,两个版本的编译器对C嵌汇编的形式不一样,所以当编译器版本不适配时,凡是用到C嵌汇编的地方都会报错

http://www.lryc.cn/news/588239.html

相关文章:

  • 系统思考:跨境跨界团队学习
  • 后端接口通用返回格式与异常处理实现
  • Flask服务器公外网访问,IPv6(亲测有效!!!!)
  • 8.数据库索引
  • vmware使用说明
  • XML vs JSON:核心区别与最佳选择
  • 如何基于FFMPEG 实现视频推拉流
  • win10安装Elasticsearch
  • 分享三个python爬虫案例
  • nginx:SSL_CTX_use_PrivateKey failed
  • CentOS7 OpenSSL升级1.1.1t;OpenSSH 升级 9.8p1 保姆级教程
  • 【Java EE】多线程-初阶 认识线程(Thread)
  • redis面试高频问题汇总(一)
  • .net天擎分钟降水数据统计
  • 北京饮马河科技公司 Java 实习面经
  • 【数据结构】树(堆)·上
  • 【人工智能】通过 Dify 构建智能助手
  • sfe_py的应力云图计算与显示step by step
  • 夏令营集训7月14日模拟赛④
  • 7.14 Java|搞清楚String 和StringBuilder
  • 【HarmonyOS】元服务入门详解 (一)
  • Java学习————————ThreadLocal
  • 九、官方人格提示词汇总(中-2)
  • 【笔记】chrome 无法打开特定协议或访问特定协议时卡死
  • 计算机基础:小端字节序
  • muduo面试准备
  • 算法:投票法
  • Debezium日常分享系列之:Debezium 3.2.0.Final发布
  • 观察应用宝进程的自启动行为
  • JAVA经典单例模式