嵌入式linux系统设计与应用 课件 第7、8章 嵌入式Linux系统移植、 嵌入式Linux驱动程序.pptx

嵌入式linux系统设计与应用 课件 第7、8章 嵌入式Linux系统移植、 嵌入式Linux驱动程序.pptx

  1. 1、本文档共152页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第七章嵌入式Linux系统移植;目录;第七章嵌入式Linux系统移植;BootLoader基本概念

;在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行的一小段程序,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个适合的状态,以便为最终调用操作系统内核准备好正确的环境。

在嵌入式系统中,通常并没有像通用计算机中BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。;BootLoader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中然后跳转到操作系统所在的空间,启动操作系统运行。;7.1.2BootLoader的操作模式;2)交互模式

交互模式也叫下载模式。在这种模式下,目标机上的BootLoader将通过串口或网络等通信手段从开发主机上下载内核映像、根文件系统到RAM中。然后再被BootLoader写到目标机上的固态存储媒质(如FLASH)中,或者直接进入系统的引导。交互模式也可以通过接口(如串口)接收用户的命令。这种模式在初次固化内核、根文件系统时或者更新内核及根文件系统时都会用到。;7.1.3BootLoader的典型结构;第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:

初始化本阶段要使用到的硬件设备。

检测系统内存映射。

将内核映像和根文件系统映像从Flash读到RAM。

为内核设置启动参数。

调用内核。;ARM:S5PV210的启动流程;RISC-V;常见的BootLoader

;(1)Redboot

Redboot(RedHatEmbeddedDebugandBootstrap)是RedHat公司开发的一个独立运行在嵌入式系统上的BootLoader程序,是目前比较流行的一个功能、可移植性好的BootLoader。Redboot是一个采用eCos开发环境开发的应用程序,并采用了eCos的硬件抽象层作为基础,但它完全可以摆脱eCos环境运行,可以用来引导任何其他的嵌入式操作系统,如Linux、WindowsCE等。

Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC,RenesasSHx,v850,x86等,是一个完善的嵌入式系统BootLoader。;(2)U-Boot

U-Boot(UniversalBootLoader)于2002年12月17日发布第一个版本U-Boot-0.2.0。U-Boot自发布以后已更新多次,其支持具有持续性。U-Boot是在GPL下资源代码最完整的一个通用BootLoader。;(4)vivi

vivi是韩国mizi公司开发的BootLoader,适用于ARM9处理器,现在已经停止开发了。它是三星官方板SMDK2410采用的BootLoader。Vivi最主要的特点就是代码小巧,有利于移植新的处理器。同时vivi的软件架构和配置方法类似Linux风格,对于有过编译Linux内核经验的用户,vivi更容易上手。;U-Boot

;7.2.1U-Boot概述;U-Boot的主要特点有:

源码开放,目前有些版本的未开源。

支持多种嵌入式操作系统内核和处理器架构。

可靠性和稳定性均较好。

功能设置高度灵活,适合调试、产品发布等;

设备驱动源码十分丰富,支持绝大多数常见硬件外设;并将对于与硬件平台相关的代码定义成宏并保留在配置文件中,开发者往往只需要修改这些宏的值就能成功使用这些硬件资源,简化了移植工作。;U-Boot

;在U-Boot的这些源文件中,以S5PV210为例几个比较重要的源文件如下所示:

(1)start.S(arch\arm\cpu\armv7\start.S)

通常情况下start.S是U-Boot上电后执行的第一个源文件。该汇编文件包括定义了异常向量入口、相关的全局变量、禁用L2缓存、关闭MMU等,之后跳转到lowlevel_init()函数中继续执行。

(2)lowlevel_init.S(board\samsung\smdkv210\lowlevel_init.S)

该源文件用汇编代码编写,其中只定义了一个函数lowlevel_init()。该函数实现对平台硬件资源的一系列初始化过程,包括关看门狗、初始化系统时钟、内存和串口。;(3)board.c(arch\arm\lib\board.c)

Board.c主要实现了U-Boot第二阶段启动过程,包括初始化环境变量、串口控制台、Flash和打印调试信息等,最后调用main_loop()函数。

(4)smdkv210.h(i

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档