[STM32F4] 模拟 HAL 库编译失败是常见问题

[复制链接]
110|26
童雨竹 发表于 2026-3-9 08:25 | 显示全部楼层
想问问大家有没有用过社区的STM32 HAL模拟库啊?自己写模拟代码太费时间,还容易出接口问题,不知道现成的模拟库能不能直接适配Ceedling,省点造轮子的功夫。
万图 发表于 2026-3-9 08:26 | 显示全部楼层
分享个小技巧,编译失败先看报错信息是找不到头文件还是函数未定义,找不到头文件就补路径,函数未定义就是模拟代码漏实现了,按报错类型排查比瞎找快十倍,亲测有效。
Wordsworth 发表于 2026-3-9 08:27 | 显示全部楼层
我之前碰到过编译器版本的坑,Ceedling默认的GCC版本太新,和老版本HAL库的语法冲突,你试试把工具链换成arm-none-eabi-gcc 9.3版,这个版本和F4的HAL库兼容性贼好。
Bblythe 发表于 2026-3-9 08:28 | 显示全部楼层
给新手提个醒,模拟HAL库别全量模拟,只模拟项目里用到的模块就行,比如只用了串口和定时器,就只写这两个的模拟代码,既减少工作量,还能避免模块依赖的编译问题。
Pulitzer 发表于 2026-3-9 08:29 | 显示全部楼层
想问问楼主是不是把模拟代码和实际HAL库代码放一块了?这样会造成文件冲突,建议在项目里建个mock文件夹专门放模拟代码,在project.yml里指定模拟模块的路径指向这个文件夹。
Uriah 发表于 2026-3-9 08:30 | 显示全部楼层
吐槽一句,Ceedling的报错信息真的太绕了,每次模拟HAL库编译失败,我都要把报错信息拆开来分析,建议大家把报错里的关键函数和头文件复制出来搜,能快速定位问题。
Clyde011 发表于 2026-3-9 08:31 | 显示全部楼层
我建议先做个最小测试,先模拟一个最简单的HAL库函数比如HAL_Delay,配好路径和宏定义,能编译通过再逐步加其他模块,这样能快速排查是配置问题还是模拟代码本身的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0