嵌入式系统设计-BootLoader.pptVIP

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课前回顾 学习目标 学习指南 难重点 知识点 第章 大纲要求:当前关键词:难重点: 嵌入式系统设计 Bootloader U-BOOT Bank 的划分 面对不同速度、总线宽度的外设,通常,嵌入式处理器都把外部总线分成不同的Bank空间,对应不同的地址。 不同的Bank可以有不同的配置,或者对应的功能也不一样,支持的外设也不同。 S3C44B0的Bank0-5支持,ROM、SRAM等那些线性寻址的存储器或者外设;Bank6-7,还可以支持SDRAM、DRAM等。而且,每一个Bank都可以配置成8-32bit的总线,大端(big endian)或者小端(little endian)等 嵌入式处理器的启动过程(1) 通常系统上电(或者复位)以后,程序从地址空间的0x0开始 即PC(程序计数器)指针,指向0x0。从这个地址开始读取指令并运行。通常这个地址对应的是Bank0 嵌入式处理器的启动过程(2) 因为系统是从bank0上引导的,所以,在Bank0上连接保存有启动代码的Flash ROM,这就是我们常说的Boot ROM Bootloader要实现的主要工作1 硬件系统自检 配置其他Bank或者端口、外设等工作模式 处理中系统的中断 在不支持remap的处理器中,中断必然要经过Boot ROM的空间,这时,Boot ROM需要处理的任务就是把固定的中断向量映射到一个可编程的中断处理子程序的地址 Bootloader要实现的主要工作2 引导操作系统 系统配置完成以后, Bootloader需要把操作系统(或者其他程序)装载到SDRAM(就是系统的RAM区),然后,把PC指针指向程序的RAM空间,使操作系统启动,这就是引导。 Bootloader要实现的主要工作3 Flash(Boot ROM)编程 对引导Flash(或者其他的非易失性存储器)编程,通过串口或者以太网口下载编译成功的操作系统或者应用程序,甚至Boot ROM本身。 要想实现Boot ROM的自编程,必须让Boot 程序是在RAM中运行 Bootloader的制作 Boot ROM使用来配置系统启动的。没有Boot ROM,系统就不能配置,更不能启动。 Boot ROM可以自编程,但是,第一次系统启动用的Boot ROM是如何烧录的呢? 使用插座连接Flash配合编程器 通过ARM的JTAG接口 Bootloader Bootloader的概念 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boot Loader 归纳出一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。 嵌入式系统离不开Bootloader 每种CPU 体系结构都有不同的BootLoader。 有些Boot Loader 也支持多种体系结构的CPU,比如U-Boot 就同时支持ARM 体系结构和MIPS 体系结构。 除了依赖于CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种CPU 而构建的,要想让运行在一块板子上的Boot Loader 程序也能运行在另一块板子上,通常也都需要修改Boot Loader 的源程序。 Boot Loader 的安装媒介 系统加电或复位后,所有的CPU 通常都从某个由CPU 制造商预先安排的地址上取指令。比如,基于ARM7TDMI core 的CPU 在复位时通常都从地址0取它的第一条指令。 基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或FLASH等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行Boot Loader 程序。 典型存储空间分配结构 Blob的存储器区域分配 Bootloader空间结构划分 控制Boot Loader 的设备或机制 主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行I/O,比如:输出打印信息到串口,从串口读取用户控制字符等 Boot Loader 的操作模式 大多数Boot Loader 都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别仅对于开发人员才有意义。 最终用户的角度看,Boot Loader 的作

文档评论(0)

smashing + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档