微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

嵌入式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之间可以有多少层设计需要或要求.

原文地址:https://www.jb51.cc/linux/395252.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐