嵌入式Linux基础知识

2019-07-12 18:11发布

目标设备与主机开发平台不同,需要使用交叉编译器 bootlader设计是嵌入式软件开发的起点。
bootstapp代码,,用于将bootloader放置到启动设备。  嵌入式引导程序中,分为两个阶段

1. IPL:   initial program loader   初始化加载器
2. SPL:  secondary  program loader 程序加载器
 bootloader负责提供完成POST,将固件下载到目标机,将内存布局和配置信息发给内核。
引导套件需要一种将bootloader映像(复制份)从主机开发系统传送到目标引导设备的方式,称为bootstapping
EP7211控制器为例 当EP7211在bootstrap 模式下上电后,从一个128B的内部存储器执行代码。这个128B代码经过串口从主机下载bootstap映像(复制一份)到一个板载的2KB SRAM,并把控制权交给它。引导配件分成三个阶段,每个阶段从不同的地址加载 1. 第一阶段:  128B是处理器固件的一部分。(处理器内部) 2. 第二阶段;运行在片上SRAM,最高达2KB,这就是bootstrapper 3.第三阶段:bootstapper从外部主机下载实际的bootloader映像到闪存顶部。当处理器用正常模式上电时,bootloader获得控制权。 注意驻存处理器内的微代码(第一阶段)本身不能用做bootstrapper,因为bootstrapper需要有对闪存编程能力。因为一个处理器可以使用多种类型的闪存芯片。所以bootstrapper与主板有关。
指使用一个很小的程序将某个特定的程序(通常是指操作系统)载入计算机中。亦指启动节点,引导节点。
许多控制芯片不支持bootrap模式,它们的bootloader是通过JTAG接口写到闪存的。bootloader能直接与主机通信。并通过接口如UART,USB或以太网组件。 DRAM 0XC00000000 0XC02000000 运行内核 0xc028000000 内核模块 文件系统 嵌入式驱动程序 硬件 硬件相关的驱动程序 内核抽象层 硬件无关的应用层 NFS挂载的跟文件系统 bootloader 用TFTP(trivial file transfer protocol) 通过网络下载到目标机。