cubemx端配置

image-20250618184143412

点击software packs

点击select components

image-20250618184829000

image-20250618202347404

下载并勾选DSP library,重写生成代码

注意,生成代码必须勾选“Copy all used libraries into the project folder”,否则无法早CMSIS文件夹中找到对应的math文件。

image-20250618201432459

生成代码后,转到keil端,我们配置相关宏定义和路径。

keil端配置
step1 添加宏

点击魔术棒,添加宏

image-20250618202947432

,FPU_PRESENT=1,FPU_USED=1,ARM_MATH_CM7

注意,这里因为是h7系列芯片,为m7内核故使用“ARM_MATH_CM7”,如果是f1则用“ARM_MATH_CM3”,如果是f4则用“ARM_MATH_CM4”.

如上,点击“ok”保存。

step2 添加路径

点击魔术棒,配置路径

image-20250618203142772

地址参考路径如下:

工程\Drivers\CMSIS\DSP\Include

注意,如果生成代码时未勾选“Copy all used libraries into the project folder”,则无法找到对应路径。

step3 添加库文件

库文件路径如下

工程\Drivers\CMSIS\DSP\Lib\ARM

将需要文件添加到keil工程目录下。类似如下:

image-20250618203939403

这里我们使用的是h750,所以选择m7内核文件。

后缀定义如下

‘b’表示大端格式(Big Endian),‘l’表示小端格式(Little Endian),‘f’表示带浮点数等等,具体列表如下:

字母 含义(英文) 含义(中文) 参数类别
l Little-endian 小端字节序 字节序(Endian)
b Big-endian 大端字节序(极少用) 字节序
f Floating Point (float) 单精度浮点(float 浮点支持
d Double-precision float 双精度浮点(double 浮点支持
s Soft ABI 使用软浮点 ABI(浮点数用整数寄存器传参) ABI 类型
p Preserve FP registers (Hard ABI) 使用硬浮点 ABI(浮点寄存器传参,保留 FP 寄存器) ABI 类型

组合示例:

后缀 拆解 含义说明
l l 小端,无浮点,常用于 M0/M3 等
lf l + f 小端 + 单精度浮点,未指明 ABI
lfsp l + f + s + p 小端 + 单精度浮点 + Soft ABI + 保留 FP 寄存器
lfhp l + f + h + p(实为 p 小端 + 单精度浮点 + 硬浮点 ABI(Hard ABI)
lfdp l + f + d + p 小端 + 双精度浮点 + 硬浮点 ABI
bfs b + f + s 大端 + 单精度浮点 + Soft ABI(极罕见)

重新编译,0 error,编译通过。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐