打印
[STM32H7]

STM32H7使用cunemx配置freertos问题

[复制链接]
1123|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2025-1-15 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用Cubemx配置STM32H750VBT6的freertos连最基本的keil编译都过不了,请问这是为什么啊?cubemx是最新版,keil使用v5v6编译器都不行,显示float_t之类的错误,这该怎么办啊

使用特权

评论回复
沙发
别乱了阵脚| | 2025-2-10 01:19 | 只看该作者
Keil 5.37及以上版本默认使用ARM Compiler 6,这可能导致与某些库文件或FreeRTOS源代码的不兼容。您可以尝试将Keil的编译器设置回ARM Compiler 5,看看是否能解决问题。但请注意,ARM Compiler 5可能不再受到官方支持或更新

使用特权

评论回复
板凳
冰春彩落下| | 2025-2-10 02:29 | 只看该作者
如果您坚持使用ARM Compiler 6,可以尝试更新FreeRTOS到最新版本,或者查找是否有针对ARM Compiler 6的补丁或修改

使用特权

评论回复
地板
三生万物| | 2025-2-10 03:19 | 只看该作者
是不是float_t类型错误啊,这个错误通常与C语言标准或编译器设置有关。float_t可能不是标准C类型,而是特定于某个库或项目定义的类型。您需要检查FreeRTOS的源代码和配置,确认是否有类型定义错误或缺失

使用特权

评论回复
5
江河千里| | 2025-2-10 04:44 | 只看该作者
确保您的项目设置中的C语言标准与FreeRTOS源代码兼容。例如,如果FreeRTOS源代码是基于C99标准编写的,您的项目设置也应该选择C99或更高版本

使用特权

评论回复
6
暖了夏天蓝了海| | 2025-2-10 05:25 | 只看该作者
如果您在项目中使用了STM32HAL库或其他中间件库,请确保这些库与您的STM32CubeMX版本和Keil编译器版本兼容

使用特权

评论回复
7
淡漠安然| | 2025-2-10 06:36 | 只看该作者
有时,STM32CubeMX生成的代码可能包含特定于某个库版本的函数调用或宏定义。如果库版本不匹配,可能会导致编译错误

使用特权

评论回复
8
光辉梦境| | 2025-2-10 07:47 | 只看该作者
仔细检查STM32CubeMX中的项目配置,确保所有设置都正确无误。特别是与FreeRTOS相关的配置,如任务堆栈大小、优先级、中断优先级等

使用特权

评论回复
9
远山寻你| | 2025-2-10 08:38 | 只看该作者
Keil中清理并重建您的项目。有时,旧的编译缓存或中间文件可能会导致编译错误

使用特权

评论回复
10
夜阑风雨| | 2025-2-10 09:19 | 只看该作者
回退到旧版本,尝试使用旧版本的STM32CubeMXKeil编译器,看看是否能成功编译

使用特权

评论回复
11
一秒落纱| | 2025-2-10 10:43 | 只看该作者
手动修改代码,如果错误是由特定于编译器的代码或类型定义引起的,您可能需要手动修改这部分代码以使其兼容

使用特权

评论回复
12
公羊子丹| | 2025-2-11 08:16 | 只看该作者
你检查一下Keil的编译器选项,确认是否启用了Cortex-M7的FPU支持,没有开启的话可能导致 float_t 等浮点相关错误。

使用特权

评论回复
13
周半梅| | 2025-2-11 08:17 | 只看该作者
CubeMX生成的代码有时候默认会漏掉一些头文件路径配置,建议在Keil中手动检查工程属性,把 CMSIS、 FreeRTOS 等路径补上。

使用特权

评论回复
14
帛灿灿| | 2025-2-11 08:18 | 只看该作者
float_t 错误可能和 math.h 或 stddef.h 的包含顺序有关,确保在编译前包含了标准库头文件。

使用特权

评论回复
15
童雨竹| | 2025-2-11 08:20 | 只看该作者
确认编译器使用的是 ARM Compiler 6,这个版本对新型号支持更好,Keil v5的编译器可能对H7兼容性不佳。

使用特权

评论回复
16
万图| | 2025-2-11 08:21 | 只看该作者
你可以尝试在CubeMX里重新生成代码时选择不初始化函数,手动优化配置,以避免自动生成的代码有错误。

使用特权

评论回复
17
Wordsworth| | 2025-2-11 08:22 | 只看该作者
如果依然不行,建议删除 startup.s 文件重新导入 Keil 自带的启动代码,以确保正确初始化。

使用特权

评论回复
18
Bblythe| | 2025-2-11 08:23 | 只看该作者
H7系列默认启用了DTCM和ITCM内存管理,建议检查 Scatter File 中的内存分配是否合理,否则容易出现编译链接问题。

使用特权

评论回复
19
Pulitzer| | 2025-2-11 08:24 | 只看该作者
尝试切换Keil编译器的C标准到 C99 或 C11,有时候CubeMX生成的代码不完全兼容低版本标准。

使用特权

评论回复
20
Uriah| | 2025-2-11 08:25 | 只看该作者
你也可以在 main.c 中直接添加 #include <stdint.h> 和 #include <math.h> 手动引入必要的头文件,看看是否能绕开错误。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

614

主题

3268

帖子

4

粉丝