天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt

天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt

ID:56982403

大小:105.50 KB

页数:21页

时间:2020-07-25

天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt_第1页
天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt_第2页
天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt_第3页
天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt_第4页
天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt_第5页
资源描述:

《天津科技大学嵌入式系统ppt---第7章 嵌入式Linux软件设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章嵌入式Linux软件设计主要内容1324Bootloader引导程序Linux的移植驱动程序开发应用程序开发7.1.1Bootloader的启动过程在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。嵌

2、入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。bootloader的操作模式:1,自启动模式:bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行。2,交互模式:目标机上的bootloader将通过串口或网络等通行手段从开发主机(Host)上下载内核映像等到RAM中。可以被bootloader写到目标机上的固态存储媒质中,或者直接进入系统的引导。也可以通过串口接收用户的命令。7.1.1Bootlo

3、ader的启动过程BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。BootLoader的stage1通常包括以下步骤:硬件设备初始化。为加载BootLoader的stage2准备RAM空间。复制BootLoader的stage2到RAM空间中。设置好堆栈。跳转到stage2的入口点。BootLoader的stage2通常包括以下步骤:初始化本阶段要使用的硬件设备。检测系统内存映射。将kernel映像和根文件系统映像从Flash读到RAM

4、中。为内核设置启动参数。调用内核。7.1.2BootLoader——vivivivi是由韩国MIZI公司提供的一款针对S3C2410芯片的BootLoader。vivi的启动过程分为两个阶段:阶段1和阶段2。阶段1的主要工作是:硬件初始化;配置串口;复制自身到SDRAM中(跳转到C代码的入口函数)。阶段2的主要工作是:对硬件系统继续初始化;内存映射初始化,内存管理单元MMU初始化;初始化堆;初始化MTD设备,MTD设备指具有闪存功能的设备,如闪存芯片、闪存卡等;初始化私有数据;初始化内置命令;启动vivi。7

5、.1.3BootLoader——U-BootU-Boot,全称UniversalBootLoader,是开源项目。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序。U-Boot不仅仅支持嵌入式Linux系统的引导,它还支持VxWorks,QNX,Solaris等嵌入式操作系统。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、N

6、IOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。主要内容1324Bootloader引导程序Linux的移植驱动程序开发应用程序开发7.2Linux的移植所谓Linux移植,就是针对具体的目标平台对Linux做必要的改写后,安装到该目标平台并使其正确运行的过程。基本内容包括:获取某一版本的Linux内核源码。根据具体的目标平台,对源码进行

7、必要的改写(主要是修改有关体系结构的部分),然后添加一些驱动,打造一款适合目标平台的新的操作系统。对该系统进行针对目标平台的交叉编译,生成一个内核映像文件。将该映像文件烧写、安装到目标平台中。7.2.1Linux内核的目录结构1./arch:其中的子目录包含了所有与硬件体系结构相关的内核移植代码。每一个目录都代表一种硬件平台,对于每种平台都应该包括:boot:包含启动内核所使用的部分或全部平台的相关代码。kernel:包含支持体系结构特有的特征代码。lib:包含存放体系结构特有的通用函数的实现代码。mm:包含

8、存放体系结构特有的内存管理程序的实现。mach-xxx:包含存放该处理器的移植代码。2./Documentation:其中的子目录包含有关内核的许多非常详细的文档。3./drivers:其中的子目录包含内核中所有的设备驱动程序。4./fs:其中的子目录包含了所有文件系统的代码。5./include:其中的子目录包含了建立内核代码时所需的大部分库文件的头文件,该模块利用其他模块重建内核。同时,包括不同

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

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

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