[STM32F1] 启动代码里的 __main不能正常启动

[复制链接]
1632|4
 楼主| hufuju 发表于 2014-7-2 17:28 | 显示全部楼层 |阅读模式
今天刚刚调试,有个问题不解...?
芯片是STM32F103RBT6,程序启动不了,最后把启动代码里的 __main 更改为 main 程序能够启动!
难道一定要用 __main 吗? 请指教,谢谢!!

st1.jpg
pattywu 发表于 2014-7-2 18:01 | 显示全部楼层
在MDK里,汇编标号main,代表C函数main();
在MDK里,汇编标号__main,代表C函数__main().

别看就加了2个下划线,其实表示的是不同的函数,你的明白?
要加强基础。

在MDK的微库中,__main()函数完成已初始化变量由FLASH搬到RAM的任务。
你直接改成调用main(),已初始化变量就没由FLASH搬到RAM中,所有全局变量的初始值都是随机的。
你认为这样,你的程序还对吗?
mmuuss586 发表于 2014-7-2 19:49 | 显示全部楼层

学习了
 楼主| hufuju 发表于 2014-7-2 22:15 | 显示全部楼层
我用的STM32库版本是V2.02,  环境是MDK-ARM4.71a,是否是同这些有关?
如果,__main()函数完成已初始化变量由FLASH搬到RAM的任务,最后应该会跳到main()运行,可是就跳不去呀?
 楼主| hufuju 发表于 2014-7-3 20:36 | 显示全部楼层
__main()不能跳到main()的问题,困扰了我几天,终于被我发现了,原来是在设置里把"micro LIB"打勾,重新编译就好了!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

65

帖子

3

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