嵌入式Linux基础知识

来源:互联网 发布:js 弹出提示框 编辑:程序博客网 时间:2024/06/08 10:13

目标设备与主机开发平台不同,需要使用交叉编译器

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) 通过网络下载到目标机。



0 0
原创粉丝点击