S3C2440上Bootloader代码分析

S3C2440上Bootloader代码分析

ID:45355752

大小:683.50 KB

页数:48页

时间:2019-11-12

S3C2440上Bootloader代码分析_第1页
S3C2440上Bootloader代码分析_第2页
S3C2440上Bootloader代码分析_第3页
S3C2440上Bootloader代码分析_第4页
S3C2440上Bootloader代码分析_第5页
资源描述:

《S3C2440上Bootloader代码分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、BootloaderBank的划分面对不同速度、总线宽度的外设,通常,嵌入式处理器都把外部总线分成不同的Bank空间,对应不同的地址。不同的Bank可以有不同的配置,或者对应的功能也不一样,支持的外设也不同。S3C2440的Bank0-5支持ROM、SRAM等那些线性寻址的存储器或者外设;Bank6-7,还可以支持SDRAM、DRAM等。而且,每一个Bank都可以配置成8-32bit的总线,大端(bigendian)或者小端(littleendian)等嵌入式处理器的启动过程(1)通常系统上电(或者复位)以后,程序从地址空间的0x0开始:即PC(程序计数器)指针,指向0x0

2、。从这个地址开始读取指令并运行。通常这个地址对应的是Bank0。嵌入式处理器的启动过程(2)因为系统是从bank0上引导的,所以,在Bank0上连接保存有启动代码的FlashROM,这就是我们常说的BootROM。Bootloader要实现的主要工作1硬件系统自检配置其他Bank或者端口、外设等工作模式处理中系统的中断在不支持remap的处理器中,中断必然要经过BootROM的空间,这时,BootROM需要处理的任务就是把固定的中断向量映射到一个可编程的中断处理子程序的地址。Bootloader要实现的主要工作2引导操作系统系统配置完成以后,Bootloader需要把操作系

3、统(或者其他程序)装载到SDRAM(就是系统的RAM区),然后,把PC指针指向程序的RAM空间,使操作系统启动,这就是引导。Bootloader要实现的主要工作3Flash(BootROM)编程对引导Flash(或者其他的非易失性存储器)编程,通过串口或者以太网口下载编译成功的操作系统或者应用程序,甚至BootROM本身。要想实现BootROM的自编程,必须让Boot程序是在RAM中运行。Bootloader的制作BootROM使用来配置系统启动的。没有BootROM,系统就不能配置,更不能启动。BootROM可以自编程,但是,第一次系统启动用的BootROM是如何烧录的呢

4、?使用插座连接Flash配合编程器通过ARM的JTAG接口BootloaderBootloader的概念BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。嵌入

5、式系统离不开Bootloader每种CPU体系结构都有不同的BootLoader。有些BootLoader也支持多种体系结构的CPU,比如U-Boot就同时支持ARM体系结构和MIPS体系结构。除了依赖于CPU的体系结构外,BootLoader实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种CPU而构建的,要想让运行在一块板子上的BootLoader程序也能运行在另一块板子上,通常也都需要修改BootLoader的源程序。BootLoader的安装媒介系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址

6、上取指令。比如,基于ARM7core的CPU在复位时通常都从地址0x00000000取它的第一条指令。基于CPU构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被映射到这个预先安排的地址上。因此在系统加电后,CPU将首先执行BootLoader程序。典型存储空间分配结构bootloader启动参数内核根文件系统Blob的存储器区域分配FLASHSDRAM大小Blob0-60KB0x0c10000060KB参数60-64KB0x0c1100004KB内核64-768KB0x0c300000704KB根文件系统768-2048KB0x0

7、c4000001280KBBootloader空间结构划分控制BootLoader的设备或机制主机和目标机之间一般通过串口建立连接,BootLoader软件在执行时通常会通过串口来进行I/O,比如:输出打印信息到串口,从串口读取用户控制字符等BootLoader的操作模式大多数BootLoader都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别仅对于开发人员才有意义。从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载模式也

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

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

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