当前位置: 首页 > 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.dtcms.com/a/278478.html

相关文章:

  • 2025年 GitHub 主流开源视频生成模型介绍
  • Go语言第一个程序--hello world!
  • arthas:Java 应用问题诊断利器
  • 企业培训笔记:axios 发送 ajax 请求
  • vue中计算属性的介绍
  • 前端基础知识TypeScript 系列 - 08(TypeScript 装饰器的理解)
  • 代理模式详解:代理、策略与模板方法模式
  • SpringMVC1
  • GraphRAG核心提示词工程完整中文版
  • VyOS起步指南:用Docker快速搭建网络实验环境
  • 分享三个python爬虫案例
  • HTML应用指南:利用GET请求获取河南省胖东来超市门店位置信息
  • STM32新建工程
  • HTB 赛季8靶场 - Outbound
  • 微算法科技技术创新,将量子图像LSQb算法与量子加密技术相结合,构建更加安全的量子信息隐藏和传输系统
  • 复习笔记 38
  • 安卓基于 FirebaseAuth 实现 google 登录
  • 【小米训练营】C++方向 实践项目 Android Player
  • C++ 左值右值、左值引用右值引用、integral_constant、integral_constant的元模板使用案例
  • 量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)
  • ethers.js-5–和solidity的关系
  • RPC 框架学习笔记
  • Spark 之 like 表达式
  • 软件测试中的BUG等级与生命周期详解
  • 走近科学IT版:EasyTire设置了ip,但是一闪之后就变回到原来的dhcp获得的地址
  • ros2版本自定义插件的实现与热插拔
  • 设计模式(行为型)-迭代器模式
  • java 判断两个集合中没有重复元素
  • iOS高级开发工程师面试——Objective-C 语言特性
  • Linux(Ubuntu)硬盘使用情况解析(已房子举例)