OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 873|回复: 15

STM32系列开发-揭开MDK下__main的面纱--非常详解

[复制链接]

  离线 

15

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2014-10-29
在线时间
34 小时
发表于 2018-6-25 17:57:12 | 显示全部楼层 |阅读模式
    之前,是大体了解了MDK下的__main函数所做的事情,一直没有深究,最近突然很想知道,MDK下在程序运行到我们用户定义的main()函数前,到底做了些什么,想看看ARMCC编译器默默地为我们做了哪些工作。    想知道这些细节,其实还是在一次使用rtt OS 时,发现了一个编译器相关的知识点:int $Super$$main(void); int $Sub$$main(void);之前不了解这个知识点的用法,后来看了MDK的help文件后才会使用,所以对编译器做的事情感兴趣,就有了下面的__main分析;
说明:内容结合工程下的.map .axf文件,以及.AXF的反汇编文件,LED工程代码,从上电-----到用户main()函数的所有流程,都有详细的分析和介绍,并配有大量的图片进行说明,只要你按照流程过一遍,都能明白的;
熬了两个夜整出来的,如果觉得分析的不错,对你的学习有帮助,还请多多支持
如果,发现文档中有不对的地方,还请详细指出来,不要吝啬,共同进步;
资料我以压缩包形式上传,这里只贴两个图;
123.png
456.png
回复

使用道具 举报

  离线 

15

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2014-10-29
在线时间
34 小时
 楼主| 发表于 2018-6-25 18:00:18 | 显示全部楼层
忘了上传资料包了,补一下;

01 __main反汇编工程解析.zip

2.11 MB, 下载次数: 528

回复 支持 反对

使用道具 举报

  离线 

24

主题

1180

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1962
金钱
1962
注册时间
2018-5-11
在线时间
369 小时
发表于 2018-6-25 18:11:16 | 显示全部楼层
资源不错,顶一下。
https://github.com/ShuifaHe/STM32.git
回复 支持 反对

使用道具 举报

  离线 

509

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
132820
金钱
132820
注册时间
2010-12-1
在线时间
1245 小时
发表于 2018-6-26 01:04:24 | 显示全部楼层
牛牛牛.... 非常清晰。
回复 支持 反对

使用道具 举报

  离线 

18

主题

531

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1204
金钱
1204
注册时间
2016-4-29
在线时间
187 小时
发表于 2018-6-26 12:46:29 | 显示全部楼层
谢谢分享,顶一下
回复 支持 反对

使用道具 举报

  离线 

30

主题

184

帖子

1

精华

高级会员

Rank: 4

积分
931
金钱
931
注册时间
2013-4-3
在线时间
157 小时
发表于 2018-8-27 16:21:46 | 显示全部楼层
必须赞
回复 支持 反对

使用道具 举报

  离线 

6

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2018-4-6
在线时间
20 小时
发表于 2018-8-27 16:33:01 | 显示全部楼层
666666
回复 支持 反对

使用道具 举报

  离线 

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-6-25
在线时间
23 小时
发表于 2018-8-28 16:27:33 | 显示全部楼层
大大的赞,666
回复 支持 反对

使用道具 举报

  离线 

76

主题

732

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1301
金钱
1301
注册时间
2014-3-7
在线时间
266 小时
发表于 2018-8-28 16:53:48 | 显示全部楼层
__main 地址为0x080020ed,应该是在图片中D00CF8DF 中的0c处?为什么不是字节对其的地方?0x080020ec   的d0又是什么?
  __Vectors                                     0x08002000   Data           4  startup_stm32f10x_md.o(RESET)
    __Vectors_End                            0x080020ec   Data           0  startup_stm32f10x_md.o(RESET)
    __main                                   0x080020ed   Thumb Code     0  
微信截图_20180827085354.png
嗯呢
回复 支持 反对

使用道具 举报

  离线 

76

主题

732

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1301
金钱
1301
注册时间
2014-3-7
在线时间
266 小时
发表于 2018-8-28 17:06:48 | 显示全部楼层
本帖最后由 ssssssssssss 于 2018-8-28 17:08 编辑

像楼主提供的led工程,
__Vectors_Size                           0x00000130   Number         0  startup_stm32f10x_hd.o ABSOLUTE    __Vectors                                0x08000000   Data           4  startup_stm32f10x_hd.o(RESET)
    __Vectors_End                            0x08000130   Data           0  startup_stm32f10x_hd.o(RESET)
    __main                                   0x08000131   Thumb Code     8  __main.o(!!!main)为什么F802F000,02前面的f8又是什么呢?






mmyy.png
嗯呢
回复 支持 反对

使用道具 举报

  离线 

0

主题

74

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2017-7-17
在线时间
140 小时
发表于 2018-9-10 16:24:01 | 显示全部楼层
学习学习,谢谢分享!
回复 支持 反对

使用道具 举报

  离线 

2

主题

490

帖子

0

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2018-8-14
在线时间
105 小时
发表于 2018-9-10 17:11:06 | 显示全部楼层
ssssssssssss 发表于 2018-8-28 16:53
__main 地址为0x080020ed,应该是在图片中D00CF8DF 中的0c处?为什么不是字节对其的地方?0x080020ec   的d ...

地址线的最低位是用作thumb Code标记
回复 支持 反对

使用道具 举报

  离线 

2

主题

490

帖子

0

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2018-8-14
在线时间
105 小时
发表于 2018-9-10 17:16:27 | 显示全部楼层
ssssssssssss 发表于 2018-8-28 17:06
像楼主提供的led工程,
__Vectors_Size                           0x00000130   Number         0  star ...

Main的实际地址是0x08000130, +1是因为Thumb Code, F000 和 F802是完整的Thumb指令
回复 支持 反对

使用道具 举报

  离线 

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-10-17
在线时间
81 小时
发表于 2018-9-11 09:19:04 | 显示全部楼层
非常强大!!!
回复 支持 反对

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-11-12
在线时间
18 小时
发表于 前天 14:28 | 显示全部楼层
好文,怎么没人顶
回复 支持 反对

使用道具 举报

  离线 

6

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2018-9-3
在线时间
9 小时
发表于 前天 14:32 | 显示全部楼层
看不懂的,好不好不清楚,楼主的钻研精神值得肯定
回复 支持 反对

使用道具 举报

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

本版积分规则




关闭

必看,必学:"原子哥”力荐上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-9-22 01:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */