[APM32E1] 大致了解MDK下的__main函数在做什么?

[复制链接]
 楼主| LQM568 发表于 2022-5-27 17:49 | 显示全部楼层 |阅读模式
     大致了解了MDK下的__main函数所做的事情, MDK下在程序运行到我们用户定义的main()函数前,到底做了些什么,想看看ARMCC编译器默默地为做了哪些工作? 想知道这些细节,其实还是在一次使用RTOS 时,发现了一个编译器相关的知识点:int $Super$$main(void); int $Sub$$main(void);之前不了解这个知识点的用法,后来看了MDK的help文件后才会使用,所以对编译器做的事情感兴趣,就有了下面的__main分析;
说明:内容结合工程下的.map .axf文件,以及.AXF的反汇编文件,LED工程代码,从上电-----到用户main()函数的所有流程,都有详细的分析和介绍,并配有大量的图片进行说明,只要你按照流程过一遍,都能明白的; 如果如果觉得分析的不错,对你的学习有帮助,还请多多支持;
如果,发现文档中有不对的地方,还请详细指出来,共同进步;
flash分布.png
工作流程.png




bestwell 发表于 2022-10-10 20:07 | 显示全部楼层
程序执行从主函数 -- main() 开始,到主函数的结束为止,退出程序。
updownq 发表于 2022-10-10 20:21 | 显示全部楼层
__main是keil运行库提供的函数,进行一些系统初始化的操作,然后跳转到用户定义的main函数
pmp 发表于 2022-10-10 20:42 | 显示全部楼层
一程序开始执行都是从主函数开始的      
tabmone 发表于 2022-10-10 21:13 | 显示全部楼层
main函数是程序执行时的入口              
cemaj 发表于 2022-10-10 21:55 | 显示全部楼层
main函数之前--真正的函数执行入口或开始 一种解释 实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

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

3

主题

3

帖子

0

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