嵌入式Linux-引导阶段

Bartlomiej Grzeskowiak:

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

  1. 第一级引导程序(可以是U-Boot)存储在处理器ROM的内部,无法更新。它将从内部缓存运行。该U-Boot需要(至少):初始化RAM,初始化外部闪存,初始化串行控制台,读取并运行第二阶段引导程序。

  2. 第二阶段引导程序(可以是U-Boot)存储在RW闪存中。它将处理以太网,闪存RW功能等。此U-Boot可以自定义和覆盖。主要任务是将linux内核加载到RAM中并运行它。

  3. linux内核启动。

1级引导加载程序是否始终是只读的?

老旧的计时器 :

哪里,第一个引导程序如何很大程度上取决于系统。您可能具有某种USB引导设备,该设备会枚举并下载固件以将其全部加载到硬件中,然后处理器从该ram启动。

通常是的,第一次启动是某种形式的闪存。最好使第一个引导加载程序超级简单,基本上100%无错误,经久耐用且可靠,并且可能采用串行或其他方式插入,以便您可以用它代替第二个/实际的引导加载程序。

理想情况下,第二个引导加载程序也要刷新,第二个引导加载程序要完成大部分工作,初始化ddr,如果要进行基于以太网的调试或文件传输,bootp等,则设置以太网。与主要的引导加载程序相比,由于它的体积更大且更加复杂,因此预计会存在错误并且需要更频繁地进行升级。希望可以保护主引导程序,使其不被覆盖,以便您可以舒适地替换第二个引导加载程序,而不会阻塞系统。

所有系统都使用上述内容吗?不,某些/很多人可能只使用一个引导程序,并且可能很早就暂停了,以便串行端口上的击键会中断引导程序,从而使您到达可以重新加载引导程序的位置。允许进行引导加载程序开发,发生阻塞的机会更少,但是如果您在击键和串行闪存加载程序之前弄乱了第一位,那仍然是一个机会。同样,串行加载程序并不总是存在,只是对引导加载程序开发人员而言是一种便利。通常,后备将是jtag,或者是可移动的Prom或某种其他系统方式,可以在对Brom进行砌块时进入并重新编程Prom(有时,与在制作电路板时第一次在系统中进行编程的方式相同,

linux bootloader不需要任何/所有这些,这是一个非常小的安装ram,可以准备命令行或标签或其他东西并分支到linux。

由于答案在很大程度上取决于您的系统,处理器,设计工程师(包括您),因此这是一个非常棘手的问题。传统上,处理器是从闪存启动,而引导加载程序会获取内存和其他一些东西,以便可以运行下一部分代码。接下来的代码可以来自许多地方,例如USB,磁盘,闪存/ ROM,以太网/ bootp / tftp,pcie,mdio,spi,i2c等。开机复位和linux启动之间可以有尽可能多的层设计的需求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌入式Linux ARM引导地址

具有NFS引导和SSH的嵌入式Linux板

如何通过嵌入式Linux设备上的重新引导使/ var / log持久化

如何确保嵌入式Linux系统上的重新引导期间物理网络接口始终获得相同的接口名称?

使用嵌入式客户端的SymmetricDS Spring引导

使用mailchimp嵌入式形式的引导程序类?

典型的嵌入式引导加载程序如何结束?

如何防止嵌入式网状服务器从弹簧引导起动webflux开始?

如何在引导程序中将嵌入式导航丸与徽章正确对齐

需要引导程序类“嵌入式响应项目”来使用结构画布元素

为什么在嵌入式设备中需要引导加载程序?

从内联/嵌入式引导程序日期选择器获取值

在Navbar引导程序中使用SVG嵌入式图标的对齐问题

如何学习为嵌入式系统构建自己的引导程序?

引导程序:导航栏折叠时,带有按钮的嵌入式表单不对齐

将多个嵌入式单选按钮组与标签垂直对齐(引导程序3)

PIC32MX795F512L 的嵌入式 C、引导加载程序配置

在集成前测试阶段使用maven-tomcat7-plugin部署到嵌入式tomcat时发生403错误

嵌入式Linux发行版

嵌入式Linux和busybox

嵌入式Linux的理论要求

嵌入式Linux的LVDS屏幕

从内核空间关闭(嵌入式)Linux

Windows CE与嵌入式Linux

Windows CE与嵌入式Linux

嵌入式Linux的PPP连接问题

嵌入式Linux电源故障问题

嵌入式Linux RSA私钥策略

Python嵌入式Linux命令