[STM32F4] 想要重命名 main 函数?

[复制链接]
 楼主| SocialButterfly 发表于 2025-5-28 21:03 | 显示全部楼层 |阅读模式
正在 STM32 上开发引导加载程序。引导加载程序和主程序都在 STM32CubeIDE 中编写和调试。为了避免在同时调试两个应用程序时出现问题,我想编辑链接器文件 (startup_stm32f446retx.s) 以在调用应用程序入口点时跳转到 boot_main 而不是 main。
还须在 main.c 中将 main 重命名为 boot_main。但是每次我使用 CubeMX 重新配置外围设备时,main.c 都会由 CubeMX 生成,会清除我对 main 函数的名称更改。有没有一种的方法可以永久更改给定程序的 main 函数的名称?

t60yz 发表于 2025-5-31 23:39 | 显示全部楼层
保留 CubeMX 生成的 main(),在里面调用 boot_main()
codingtuzi 发表于 2025-6-9 10:59 | 显示全部楼层
一次性生成好外设的配置呀!
暖了夏天蓝了海 发表于 2025-6-9 11:00 | 显示全部楼层
在STM32开发中,使用CubeMX重新配置外设时,main.c文件会被重新生成,导致手动修改(如重命名main函数)被覆盖
别乱了阵脚 发表于 2025-6-9 11:00 | 显示全部楼层
使用宏定义重命名main函数,在main.c中定义宏,在main.c文件的开头,定义一个宏来将main重命名为boot_main
夜阑风雨 发表于 2025-6-9 13:00 | 显示全部楼层
确保在链接器脚本和其他相关文件中使用boot_main作为入口点
淡漠安然 发表于 2025-6-9 14:41 | 显示全部楼层
在main.c中使用条件编译:在main.c中使用条件编译来区分引导加载程序和主程序
江河千里 发表于 2025-6-9 16:00 | 显示全部楼层
在构建配置中定义BOOTLOADER宏,以区分引导加载程序和主程序
一秒落纱 发表于 2025-6-9 22:28 | 显示全部楼层
建议使用宏定义重命名main函数是最简单和直接的方法,适用于大多数情况
冰春彩落下 发表于 2025-6-9 23:00 | 显示全部楼层
其实可以修改链接器脚本或启动文件适用于需要更精细控制的情况,但需要更多的知识和经验
三生万物 发表于 2025-6-10 01:11 | 显示全部楼层
条件编译适用于需要区分不同构建配置的情况
远山寻你 发表于 2025-6-10 02:00 | 显示全部楼层
在链接器脚本(通常是.ld文件)中,将入口点从main更改为boot_main
光辉梦境 发表于 2025-6-10 09:00 | 显示全部楼层
在启动文件(如startup_stm32f446xx.s)中,将main的引用更改为boot_main
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

42

帖子

0

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