嵌入式Linux – 引导阶段

我想系统化我的U-Boot / linux知识.在每个嵌入式平台中需要最少2个引导加载程序阶段吗?还是以下过程会有所不同?

>第一级引导程序(可以是U-Boot)存储在处理器的内部ROM中,无法更新.它将从内部缓存内存运行.此U-Boot需要(至少):初始化RAM,初始化外部闪存,初始化串行控制台,读取和运行第2阶段引导加载程序.
>第二级引导程序(可以是U-Boot)存储在RW闪存中.它将处理以太网,闪存RW功能等.此U-Boot可以自定义和覆盖.主要任务是将linux内核加载到RAM中并运行它.
> linux内核启动.

第一级引导程序是否只读?

解决方法

在哪里,第一个引导加载程序的系统依赖程度如何.您可能会使用某种USB引导设备来枚举并将固件下载到全部硬件中,然后处理器从该RAM启动.

通常是第一次启动是某种闪光.这是一个好主意,让第一个引导程序uber简单,基本上100%的bug免费,耐用和可靠,可能是一个串行或其他方式进入,以便您可以使用它来替换第二个/真正的引导加载程序.

理想情况下,第二个引导加载程序也想要闪存,第二个引导加载程序想要进行大量的工作,初始化ddr,如果要进行某种基于以太网的调试或文件传输,bootp等则设置以太网.显着更大,更复杂,预期它们都有错误,需要比主引导程序更频繁地升级.主要是希望被保护不被覆盖,以便您可以舒适地替换第二个引导程序,而不会破坏系统.

所有系统都使用上述?不,有些/许多只能使用单个引导加载程序,也许有一个非常早的暂停,以便串口上的按键可以中断引导加载程序带您到一个可以重新加载引导程序的地方.允许引导程序开发的机会更少,但是如果你把这个第一位搞砸,并且包括击键和串行Flash加载器的东西,还是一个机会.这里再一次,串行加载器的东西并不总是存在,只是一个方便的引导程序开发人员.通常情况下,回退将是jtag,或者可拆卸的舞台或其他系统的方法,以便在您打砖块时进入和重新编程舞会(同样,有时您在制作板时首次在系统中编程时也可以使用某些设计可以节省成本,并在制造过程中使用预编程闪存,以便第一次启动工作).

一个linux引导加载程序不需要任何/所有这一切,非常非常非常简单的安装程序,准备命令行或atag或任何和分支到linux.

这是一个加载的问题,因为答案严重依赖于您的系统,处理器,设计工程师(包括您).传统上,处理器从闪存启动,引导加载程序获取内存和其他一些功能,以便下一代代码可以运行.下一代的代码可以来自许多地方,usb,disk,flash / rom,ethernet / bootp / tftp,pcie,mdio,spi,i2c等.而且上电复位和linux之间可以有多少层设计需要或要求.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...