打印

main 函数执行以前,还会执行什么代码?

[复制链接]
2374|10
手机看帖
扫描二维码
随时随地手机跟帖
沙发
下凡买烟| | 2019-5-9 11:12 | 只看该作者
帮你顶贴问问

使用特权

评论回复
板凳
tianxj01| | 2019-5-9 11:18 | 只看该作者

标准情况main函数前,单片机必须执行复位向量,复位向量后面,各家单片机处理不同,主要目的是处理DEBUG、IAP等过程的转移,然后才轮到main函数。

使用特权

评论回复
地板
airwill| | 2019-5-9 21:19 | 只看该作者
启动代码,初始化内存,初始化堆栈指针等。象 STM32 这些还会初始化 PLL 时钟

使用特权

评论回复
5
Prry| | 2019-5-11 13:51 | 只看该作者
https://blog.csdn.net/qq_20553613/article/details/79568441

使用特权

评论回复
6
dirtwillfly| | 2019-5-12 22:26 | 只看该作者
有些嵌入式操作系统也会在main之前做很多初始化工作。比如rtt

使用特权

评论回复
7
autopccopy| | 2019-5-16 12:35 | 只看该作者
反正用户代码是main()开始的。 :)

使用特权

评论回复
8
hobbye501| | 2019-5-16 13:14 | 只看该作者
会执行引导程序。。。。

使用特权

评论回复
9
lihui567| | 2019-5-22 17:16 | 只看该作者
看你的硬件平台是啥了,51内核,ARM内核,main函数执行都不太一样的

使用特权

评论回复
10
王晓辉| | 2019-5-30 16:41 | 只看该作者
main函数之前执行什么,这个问题就比较泛了。其实楼主为什么不想想为什么是main函数为入口函数,而不是其他的诸如init函数之类?这就引申出一个问题,谁规定main函数为入口函数的?给个方向,楼主可以自己学习,一个编译链接脚本lds,一个是汇编代码.s文件。总的来讲,代码从哪里执行都是可以自由定义,main函数也是可以自由定义,主要你愿意,它也可以定义为init,probe等

使用特权

评论回复
11
steelen| | 2019-6-6 13:25 | 只看该作者
所有main()函数执行前都会执行一个初始化代码,一般是汇编编写的
主要功能,关闭中断,初始化时钟,初始化RAM,分配堆栈指针...
然后,调用 __main(),或者直接跳转  __main()

使用特权

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

本版积分规则

44

主题

53

帖子

0

粉丝