[其他ST产品] 设备配置工具生成代码更改后再次生成的问题

[复制链接]
 楼主| 唐纳德d 发表于 2025-7-26 09:44 | 显示全部楼层 |阅读模式
设备配置工具和main.c。为STM32项目开发生产代码,并尽可能使用设备配置工具。
我需要合理组织代码,以免所有内容都集中在main.c中。
例如,有没有办法将FreeRTOS任务从main.c移到它们自己的文件中,这样当我用配置工具更改某些内容时,避免它们重新生成回main.c?

公羊子丹 发表于 2025-7-27 07:22 | 显示全部楼层
我也不喜欢任务代码全堆在 main.c,太乱了,现在我都把任务函数放到 task_xxx.c,再在 main 里引用就行了。
周半梅 发表于 2025-7-27 07:23 | 显示全部楼层
CubeMX 生成代码时不会覆盖你自己加的 .c/.h 文件,只要你别动那些 /* USER CODE BEGIN */ 外面的地方就没事。
帛灿灿 发表于 2025-7-27 07:24 | 显示全部楼层
main.c 里你可以留一个 MX_FREERTOS_Init(),然后具体任务再放外部文件,只要在这函数里调用 init 就好。
童雨竹 发表于 2025-7-27 07:25 | 显示全部楼层
你可以新建一个 app_freertos.c 专门放任务创建代码,Cube 不会自动修改这个文件,比较安全。
万图 发表于 2025-7-27 07:26 | 显示全部楼层
有一个隐藏技巧是把任务定义和创建逻辑写进 StartDefaultTask 里,然后再拆分出去用函数封装。
Wordsworth 发表于 2025-7-27 07:28 | 显示全部楼层
我现在都固定在 User Code Begin 5 区里写任务调用入口,这样无论怎么生成都不会丢代码。
Bblythe 发表于 2025-7-27 07:30 | 显示全部楼层
建议你不要在 MX_FREERTOS_Init() 里写太多逻辑,尽量调用外部函数,这样结构清晰还不怕被覆盖。
Pulitzer 发表于 2025-7-27 07:31 | 显示全部楼层
如果你用的是 STM32CubeMX 配合 STM32CubeIDE,那就一定要养成用 USER CODE 区块的习惯,很关键。
Uriah 发表于 2025-7-27 07:32 | 显示全部楼层
我习惯把每个功能模块拆分成 task_xxx.c、task_xxx.h,这样任务多了也不混乱,重生成也影响不到。
Clyde011 发表于 2025-7-27 07:32 | 显示全部楼层
真要保险一点,就在 .ioc 文件旁边备份一下 main.c,每次生成完都用工具对比一下改动,有备无患。
小夏天的大西瓜 发表于 2025-7-27 22:36 | 显示全部楼层
建议分层级进行程序确认
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

41

帖子

0

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