gpt4 book ai didi

linux - 嵌入式 Linux - 启动阶段

转载 作者:IT王子 更新时间:2023-10-28 23:58:05 26 4
gpt4 key购买 nike

我想系统化我的 U-Boot/linux 知识。每个嵌入式平台至少需要 2 个引导加载程序阶段,对吗?或者以下过程可以变化吗?

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

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

  3. linux 内核启动。

第一阶段引导加载程序总是只读的吗?

最佳答案

第一个引导加载程序的运行方式在很大程度上取决于系统。您可能有某种 USB 可启动设备,它可以枚举固件并将其下载到硬件中的所有内存中,然后处理器从该内存中启动。

通常是的,第一次启动是某种闪存。最好让第一个引导加载程序 super 简单,基本上 100% 无错误,持久可靠,也许可以通过串行或其他方式进入,这样您就可以用它来替换第二个/真正的引导加载程序。

理想情况下,第二个引导加载程序也希望成为闪存,第二个引导加载程序将完成大部分工作,初始化 ddr,设置以太网(如果它想要某种基于以太网的调试或文件传输),bootp等。由于体积更大、更复杂,因此与主引导加载程序相比,预计会有错误并且需要更频繁地升级。希望主 Bootstrap 不会被覆盖,这样您就可以轻松地替换第二个引导加载程序而不会阻塞系统。

是否所有系统都使用以上内容?不,一些/许多人可能只使用一个引导加载程序,可能会很早就暂停,以便串行端口上的击键可以中断引导加载程序,将您带到可以重新加载引导加载程序的地方。允许引导加载程序开发,减少变砖的机会,但如果您在之前搞砸了第一位并且包括击键和串行闪存加载程序事情,仍然有机会。同样,串行加载程序并不总是存在,这只是为引导加载程序开发人员提供的便利。通常回退将是 jtag,或可移动的舞会或其他一些系统方式来进入并在你变砖时重新编程舞会(而且,有时与你在生产电路板时第一次在系统中编程它的方式相同,一些设计可以变砖以节省成本,并在制造过程中使用预编程的闪存,因此第一次启动就可以工作。

linux 引导加载程序不需要任何/所有这些,一个非常非常小的设置 ram,准备命令行或 atags 或其他任何东西,然后分支到 linux。

这是一个负荷很大的问题,因为答案在很大程度上取决于您的系统、处理器、设计工程师(包括您)。传统上,处理器从闪存启动,引导加载程序获取内存和其他一些东西,以便下一段代码可以运行。下一段代码可以来自许多地方,usb、磁盘、flash/rom、ethernet/bootp/tftp、pcie、mdio、spi、i2c 等。在开机复位和 linux 启动之间可以有许多层设计希望或要求。

关于linux - 嵌入式 Linux - 启动阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com