bootloader开始段必须用汇编
CPU上电后会从IO空间的某地址取第一条指令。但此时:PLL没有启动,CPU工作频率为外部输入晶振频率,非常低;CPU工作模式、中断设置等不确定;存储空间的各个BANK(包括内存)都没有驱动,内存不能使用。在这种情况下必须在第一条指令处做一些初始化工作,这段初始化程序与操作系统独立分开,称之为bootloader。
一个嵌入式Bootloader最初始部分的代码几乎必须是用汇编语言写成的,因为开发板刚上电后没有准备好C程序运行环境,比如堆栈指针SP没有指到正确的位置。汇编代码应该完成最原始的硬件设备初始化,并准备好C运行环境,这样后面的功能就可以用C语言来写了。
一个嵌入式Bootloader最初始部分的代码几乎必须是用汇编语言写成的,因为开发板刚上电后没有准备好C程序运行环境,比如堆栈指针SP没有指到正确的位置。汇编代码应该完成最原始的硬件设备初始化,并准备好C运行环境,这样后面的功能就可以用C语言来写了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
单端信号,双端信号,差分信号的区别和概念
wuyuzun
2020-07-02 22:58:26
pcap4j读取pcap抓包文件DEMO
来去黑暗中
2020-06-26 14:25:26
空-时块编码STBC的原理及仿真
仰望星空,脚踏实地111
2020-06-26 00:14:26
求不同类型信号频谱的理解与总结
仰望星空,脚踏实地111
2020-06-26 00:14:16
你不可不知的——物联网通信技术常用专有名词中英互译
九天小牛
2020-06-23 16:05:02
【通信】通信中的基本知识
guansir
2020-06-22 10:52:45
可见光成像通信(Optical Camera Communication,OCC)——基于IEEE 802.15.7-2018标准的解读
gwpscut
2020-06-16 15:22:26
HOST和Endpoint
o 主機(Host)主機配有一個或多個IP地址,是一個典型的物理實體。o 端點(SCTP Endpoint)一個傳送地址(IP地址+SCTP端口號)唯一標識一個端點。o 一個主機上可以有多個端點。
sinodragon21
2020-06-16 13:19:07
急切呼唤一线直接决策
sinodragon21
2020-06-16 13:19:07
为什么在网络系统中的端口号范围为0~65535(2^16-1)?
因爲在傳輸層協議(例如TCP、SCTP)中,Header Format的最前端32bit結構爲: 0 1 2 3
sinodragon21
2020-06-16 13:19:07
数字程控交换机的发展及工作原理
ericsone
2020-06-15 09:33:09
IP的出路——MPLS
ericsone
2020-06-15 09:33:09