嵌入式linux操作系统u-boot启动顺序以及代码解析

嵌入式linux操作系统u-boot启动顺序以及代码解析

ID:28059932

大小:64.08 KB

页数:9页

时间:2018-12-07

嵌入式linux操作系统u-boot启动顺序以及代码解析_第1页
嵌入式linux操作系统u-boot启动顺序以及代码解析_第2页
嵌入式linux操作系统u-boot启动顺序以及代码解析_第3页
嵌入式linux操作系统u-boot启动顺序以及代码解析_第4页
嵌入式linux操作系统u-boot启动顺序以及代码解析_第5页
资源描述:

《嵌入式linux操作系统u-boot启动顺序以及代码解析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Bootloader/u-boot的启动模式对于计算机系统来说,从计算机开机上电的到操作系统的启动需耍一个引导过程。嵌入式Linux同样也需要一个引导的过程,及引导程序就叫做Bootloader。Bootloader是在操作系统启动之前执行的一小段程序,通过这段小程序,我们可以初始化硬件设备、建立内存空问映射表,从而建立适当系统软硬件环境,为最终调用操作系统内核做好准备。对于嵌入式系统,Bootloader是基于特定平台来实现的,因此几乎不可能为所有的计算机操作系统建立一个通用的Bootloader,不同

2、的处理器架构都有不同的Bootloader,Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级的设备的配置。对于两块不同的嵌入式开发板,即使他们使用同一种处理器,要想让运行于一块板子上的Bootloader运行在另一块板子上,一般都需要修改Bootloader源程序。反过来大多数的Bootloader都具有很多的共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如:u-boot就同时文持Powerpc、ARm、MIPS和X86等等的体系结构,支持的板子有上百种,通常

3、他们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和网口的操作。系统加电或者复位后,cpu通常都会从某个地址开始执行,这是由处理器决定的,对于ARM处理器而言会从0x00000000取第一条指令,嵌入式系统的开发板都要把ROM和FLASH映射到这个地址上,因此必须将Bootloader的程序存储在相应的FLASH位置,这样系统加电后就会首先执行它。u-boot的启动一般流码:第一阶段:依赖cpu初始化外围硬件代码,通常用汇编代码实现1、设置Cpu的工作模式;2、关屮断,以防止

4、意外发生;Z/,.、rjw,卜r.、r

5、w,y、r.、r

6、wrjwr.、r

7、wrjw,.、r.、rjwr.、r

8、w,蠢、r.、<Jw,y、,y、<Jwrjw,y、<Jwrjw,y、,y、rjw,y、<Jwrjw,y、r.、,y、,y、rjwr

9、w,y、rjwr

10、w,卜r.、r

11、w<Jwr.、,:、,:、*setthecputoSVC32mode,设置cpu丁作模式为11010011,*后五位表示cpu的工作模式设置为”管理”,并且关闭中断*110则表示IRQ(普通中断)和FIQ(快速中断)都为禁止/1、1

12、、1、/mrsr0,cpsr//读取cpsr中的数抛到rO中bic1*04),#(^117/将寄存器10的值和0x1f的反码安位与之后将结果存储在r0中相当于清零orrr0,r0,#0xd3//将寄存器r0的值和0xd3安位或之后将结果保存在r0寄存器之屮,关闭屮断msrcpsr,rO//将cpsr中的数值写到r0寄存器中3、关闭看门狗,避免系统重启;#ifdefined(CONFIG_S3C2400)

13、

14、defined(CONFIG_S3C2410)

15、

16、defined(CONFIG_S3C2440)/*

17、turnoffthewatchdog,关闭开门狗*/#ifdefined(CONFIG_S3C2400)#definepWTCON0x15300000#defineINTMSK0x14400008/*Interupt-Controllerbaseaddresses#defineCLKDIVN0x14800014/*clockdivisorregister*/#else#definepWTCON0x53000000#defineINTMSK0x4A000008/*Interupt-Controllerbas

18、eaddresses*/#defineINTSUBMSK0x4A00001C#defineCLKDIVN0x4C000014/*clockdivisorregister*/#endif4、设置back初始化,设置cpu的工作频率;#ifdefined(CONFIG_S3C2440)/*FCLKHCLKPCLK=1:4:8*/ldrr0,CLKDIVNmovrl,#5strrl,[rO]mrcpl5,0,rl,cl,c0,0orrr1,rl,#0xc0000000mcrpl5,0,rl,cl,c0,0mov

19、rl,#CLKCTLBASEmovr2,#MDIV_405addr2,r2,#PSDIV一405strr2,[rl,#0x4]#else/*FCLK:HCLK:PCLK=1:2:4*//*defaultFCLKis120MHz!*/ldrrO,二CLKDIVNmovrl,#3strrl,[rO]#endif/*CONFIG_S3C2400

20、

21、CONFIG_S3C2410*5、从FLASH拷贝到RAM;#ifndefCONFIG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。