打印
[STM32F1]

启动代码里的 __main不能正常启动

[复制链接]
1307|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hufuju|  楼主 | 2014-7-2 17:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天刚刚调试,有个问题不解...?
芯片是STM32F103RBT6,程序启动不了,最后把启动代码里的 __main 更改为 main 程序能够启动!
难道一定要用 __main 吗? 请指教,谢谢!!


沙发
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()运行,可是就跳不去呀?

使用特权

评论回复
5
hufuju|  楼主 | 2014-7-3 20:36 | 只看该作者
__main()不能跳到main()的问题,困扰了我几天,终于被我发现了,原来是在设置里把"micro LIB"打勾,重新编译就好了!

使用特权

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

本版积分规则

10

主题

65

帖子

3

粉丝