[STM32H7] STM32H7使用cunemx配置freertos问题

[复制链接]
1739|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的源代码和配置,确认是否有类型定义错误或缺失

江河千里 发表于 2025-2-10 04:44 | 显示全部楼层
确保您的项目设置中的C语言标准与FreeRTOS源代码兼容。例如,如果FreeRTOS源代码是基于C99标准编写的,您的项目设置也应该选择C99或更高版本

暖了夏天蓝了海 发表于 2025-2-10 05:25 | 显示全部楼层
如果您在项目中使用了STM32HAL库或其他中间件库,请确保这些库与您的STM32CubeMX版本和Keil编译器版本兼容

淡漠安然 发表于 2025-2-10 06:36 | 显示全部楼层
有时,STM32CubeMX生成的代码可能包含特定于某个库版本的函数调用或宏定义。如果库版本不匹配,可能会导致编译错误

光辉梦境 发表于 2025-2-10 07:47 | 显示全部楼层
仔细检查STM32CubeMX中的项目配置,确保所有设置都正确无误。特别是与FreeRTOS相关的配置,如任务堆栈大小、优先级、中断优先级等

远山寻你 发表于 2025-2-10 08:38 | 显示全部楼层
Keil中清理并重建您的项目。有时,旧的编译缓存或中间文件可能会导致编译错误

夜阑风雨 发表于 2025-2-10 09:19 | 显示全部楼层
回退到旧版本,尝试使用旧版本的STM32CubeMXKeil编译器,看看是否能成功编译
一秒落纱 发表于 2025-2-10 10:43 | 显示全部楼层
手动修改代码,如果错误是由特定于编译器的代码或类型定义引起的,您可能需要手动修改这部分代码以使其兼容

公羊子丹 发表于 2025-2-11 08:16 | 显示全部楼层
你检查一下Keil的编译器选项,确认是否启用了Cortex-M7的FPU支持,没有开启的话可能导致 float_t 等浮点相关错误。
周半梅 发表于 2025-2-11 08:17 | 显示全部楼层
CubeMX生成的代码有时候默认会漏掉一些头文件路径配置,建议在Keil中手动检查工程属性,把 CMSIS、 FreeRTOS 等路径补上。
帛灿灿 发表于 2025-2-11 08:18 | 显示全部楼层
float_t 错误可能和 math.h 或 stddef.h 的包含顺序有关,确保在编译前包含了标准库头文件。
童雨竹 发表于 2025-2-11 08:20 | 显示全部楼层
确认编译器使用的是 ARM Compiler 6,这个版本对新型号支持更好,Keil v5的编译器可能对H7兼容性不佳。
万图 发表于 2025-2-11 08:21 | 显示全部楼层
你可以尝试在CubeMX里重新生成代码时选择不初始化函数,手动优化配置,以避免自动生成的代码有错误。
Wordsworth 发表于 2025-2-11 08:22 | 显示全部楼层
如果依然不行,建议删除 startup.s 文件重新导入 Keil 自带的启动代码,以确保正确初始化。
Bblythe 发表于 2025-2-11 08:23 | 显示全部楼层
H7系列默认启用了DTCM和ITCM内存管理,建议检查 Scatter File 中的内存分配是否合理,否则容易出现编译链接问题。
Pulitzer 发表于 2025-2-11 08:24 | 显示全部楼层
尝试切换Keil编译器的C标准到 C99 或 C11,有时候CubeMX生成的代码不完全兼容低版本标准。
Uriah 发表于 2025-2-11 08:25 | 显示全部楼层
你也可以在 main.c 中直接添加 #include <stdint.h> 和 #include <math.h> 手动引入必要的头文件,看看是否能绕开错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

679

主题

4005

帖子

4

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