图示启动代码

[复制链接]
 楼主| monkeypony 发表于 2015-5-27 22:40 | 显示全部楼层 |阅读模式

启动代码主要完成

1  硬件初始化,最起码的是要初始化堆栈指针。

2  C语言环境   在main函数调用之前要完成对一些变量的初始化。

3  应用初始化   这主要取决于你的应用。比如设置系统的晶振、时钟。


 楼主| monkeypony 发表于 2015-5-27 22:41 | 显示全部楼层
)程序开始运行,系统启动代码首先要完成硬件初始化,比如说对堆栈的初始化。图中显示初始化堆栈指针为之前
预先定义好堆栈区域的末尾。
QQ图片20150527224231.png
 楼主| monkeypony 发表于 2015-5-27 22:42 | 显示全部楼层
2)初始化变量初始值为0 的变量
QQ图片20150527224310.png
 楼主| monkeypony 发表于 2015-5-27 22:42 | 显示全部楼层
3)初始化变量初始值为非0的变量,链接器将存储在ROM的初始值复制到相应的RAM中。
QQ图片20150527224343.png
 楼主| monkeypony 发表于 2015-5-27 22:43 | 显示全部楼层
4)初始化应用(可选)
5)最后调用主函数
QQ图片20150527224415.png
 楼主| monkeypony 发表于 2015-5-27 22:43 | 显示全部楼层
6)附录
关于C语言中变量的存储区域。
1、初始化和非初始化的变量都存放在内存区(RAM);
2、全局const被存放在代码区。
3、static存放在内存区(RAM)
4、对于数量少的局部变量一般是寄存器操作
5、对于数据量大的局部变量则采用是堆栈操作。
vivilzb1985 发表于 2015-6-8 19:35 | 显示全部楼层
对时钟的初始化设置很重要。
shenmu2012 发表于 2015-6-10 19:44 | 显示全部楼层
在main函数调用之前要完成对一些变量的初始化。初始化是很重要的,,初始化的过程也是检查外设工作好坏的过程。
firstblood 发表于 2015-6-11 19:11 | 显示全部楼层
monkeypony 发表于 2015-5-27 22:43
4)初始化应用(可选)
5)最后调用主函数

这样的做法我还没做过的,可以试试的了。
Thefantasy 发表于 2015-6-16 09:24 | 显示全部楼层
学习了,讲解的很详细。我一直以为初始化不可以在bootloader中调用的。
baimiaocun2015 发表于 2015-6-17 21:44 | 显示全部楼层
一般的代码设计的,在初始化部分是很关键的。
冒泡的鱼儿 发表于 2015-6-18 21:12 | 显示全部楼层
收藏下,这个讲解的很详细。
豆腐块 发表于 2015-7-3 21:17 | 显示全部楼层
时钟的初始化设置很重要的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

715

帖子

0

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