linux - 谁初始化flash?

标签 linux arm u-boot flash-memory

<分区>

我正在了解 ARM 处理器上的 Linux 启动过程,发现 U-boot 是从闪存启动的,然后 u-boot 代码初始化 RAM 以设置执行环境,如堆栈设置和所有 并重新定位。

现在我的问题是谁初始化闪存以便 u-boot 代码可以执行?

还有从NOR flash和NAND flash启动有什么区别吗?

从 NOR 闪存启动是否比从 NAND 闪存启动快?

最佳答案

自然有人必须在第一时间对闪存进行编程。每个电路板设计都决定了实际情况如何发生,有时零件在焊接之前就已编程,有时有一个后门,您可以通过一个连接器进行编程,等等。有时则没有。有时板上的处理器或其他硬件有一些其他类型的引导加载程序,您可以使用它来对正常的引导闪存等进行编程。

NOR 或 NAND 通常差别不大,我对较新闪存的最大问题是担心读取干扰。 Flash 读取比写入快,并且很多努力是或至少需要在写入速度、密度和成本方面,所以我认为这就是努力所在,而不是读取速度与写入速度。如果您有读取速度问题,那么只需尽快将引导加载程序复制到 ram,然后从那里运行,之后不要参加舞会。

关于linux - 谁初始化flash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22229590/

相关文章:

linux - gcc: 错误: 无法识别的命令行选项

linux-kernel - 默认波特率-linux/u-boot

linux - 自动接受 "Configuring iptables-persistent"

linux - 在 KDE Linux Mint 12 上删除 RVM 以作为单用户重新安装 RVM

linux - 如何从软件工具向 Zynq 中的 AXI-Stream 发送数据?

performance - 在 Windows 上选择 Google API(API 级别 17 或任何其他 API 级别)时,Android 模拟器不会加载

c - 对 'nCr' 的 undefined reference

linux - 检测信号发送者(linux,ptrace)

c - 使用 GNU 工具链在 Windows 命令行上运行 ARM/C

linux - u-boot 引导加载程序如何读取/保存其环境变量?