【发布时间】:2014-03-28 14:04:51
【问题描述】:
有人可以澄清硬件寄存器初始化的时间和对象吗?
我目前正在嵌入式项目中使用 u-boot,在 u-boot 中我看到许多硬件寄存器正在初始化。
我以为Bootloader会初始化所有的硬件寄存器,内核提供驱动来驱动硬件。
但是其中一个测试用例说“检查内核中设置的寄存器的值是否设置正确”。
现在我很困惑,一旦内核启动,内核是否也会再次设置这些寄存器。
我不清楚设备启动后会发生什么。比如bootloader的作用是什么,它在执行时做了什么,内核在启动时做了什么。
谢谢。
【问题讨论】:
-
U-Boot 通常是第二阶段(有时甚至是第三阶段)引导加载程序(即有一个更早的引导加载程序将 U-Boot 加载到主内存中)。通常,每个引导加载程序仅初始化完成其任务所需的最小硬件子系统,不会更多。 “内核提供驱动硬件的驱动程序” -- 写这样的语句让我怀疑你是否真的知道驱动程序是什么。
-
你好锯末。谢谢回复。你的疑惑是真的。我对司机一无所知。但我想学习。这就是我提出这个问题的原因。
-
平台特定的东西将由 BIOS 完成,而不是引导加载程序。 stackoverflow.com/questions/3380883/what-is-a-kernel-bootloader/…
-
该产品没有BIOS。它有 U-boot 和 linux 发行版。
标签: linux linux-kernel kernel embedded-linux u-boot