1、嵌入式Linux系统,1:linux内核 2:linux根文件系统 3:bootloader(uboot),嵌入式Linux系统组成,1:linux内核的制作,2:linux根文件系统的定义,2:linux根文件系统的制作,/etc里面存放配置文件,2:linux文件系统的介绍,3:Bootloader的工作流程与移植,3:嵌入式Linux四个软件层次,1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。 2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系
2、统。通常用ramdisk来作为rootfs。 4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI,QT、GTK。,3:Bootloader定义,而在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader
3、程序。 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。,Bootloader的移植,不同的cpu体系结构都有不同的bootloader Bootloader还依赖具体的嵌入式板级设备(除了CPU以外的芯片)的配置。这两个原因都会使得bootloader需要移植,Bootloader的工作流程,Bootloader的stage1通常包含以下几个步骤:1:硬件设备初始化(初始化的硬件主要集中于:cpu的寄存器,内存的控制器)
4、,Bootloader的工作流程,为加载bootloader的stage2准备ram空间拷贝bootloader的stage2到ram空间中,(第一阶段在FLASH中运行,第二阶段在RAM中运行)。 设置好堆栈(为第二阶段的C语言需要) 跳转到第二阶段c语言入口。,Bootloader的工作流程,Bootloader的stage2通常包含以下几个步骤 1:初始化硬件设备(网卡,串口)2:将内核和根文件系统映像从FLASH读到ram中,3:调用内核。,Bootloader的工作流程,Uboot的介绍,Uboot是一种bootloader程序,用于多种嵌入式cpu,还支持多种嵌入式操作系统。,Uboot的编译,Uboot的编译,