OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

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

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

[复制链接]

  离线 

15

主题

50

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
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

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

01 __main反汇编工程解析.zip

2.11 MB, 下载次数: 10550

回复 支持 反对

使用道具 举报

  离线 

24

主题

1285

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2217
金钱
2217
注册时间
2018-5-11
在线时间
411 小时
发表于 2018-6-25 18:11:16 | 显示全部楼层
资源不错,顶一下。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复 支持 反对

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

  离线 

18

主题

549

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

  离线 

31

主题

185

帖子

1

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

6

主题

158

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

0

主题

9

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

80

主题

775

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1404
金钱
1404
注册时间
2014-3-7
在线时间
297 小时
发表于 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
回复 支持 反对

使用道具 举报

  离线 

80

主题

775

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1404
金钱
1404
注册时间
2014-3-7
在线时间
297 小时
发表于 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

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

2

主题

684

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

  离线 

2

主题

684

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1252
金钱
1252
注册时间
2018-8-14
在线时间
164 小时
发表于 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

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

  离线 

12

主题

80

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

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

GMT+8, 2018-11-19 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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