- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在 ARM cortex-A8 上使用 ELinux 内核。
我知道引导加载程序如何工作以及它在做什么。但我有一个问题 - 为什么我们需要引导加载程序,为什么要诞生引导加载程序?
为什么我们不能在没有bootloader的情况下直接将内核从闪存加载到RAM中?如果我们加载它会发生什么?其实processor是不会支持的,但是为什么要走流程呢?
最佳答案
在 Linux 环境中,引导加载程序负责一些预定义的任务。因为这个问题是arm标记,我认为 ARM booting可能是有用的资源。具体来说,引导加载程序负责设置一个 ATAG
列表,该列表描述了 RAM 的数量、内核命令行和其他参数。最重要的参数之一是机器类型。使用设备树,可以传递板的完整描述。如果没有一些代码来设置所描述的参数,这使得普通的 ARM Linux 无法启动。
这些参数允许一个 generic Linux 支持多个设备。例如,ARM Debian 内核可以支持数百种不同的主板类型。 Uboot 或其他引导加载程序可以动态确定此信息,也可以为开发板硬编码。
您可能还想看看 bootloader info堆栈溢出时的页面。
基本系统可能能够设置ATAGS
并将NOR 闪存复制到SRAM。但是,它通常比这复杂一点。 Linux 需要 RAM 设置,因此您可能需要初始化 SDRAM Controller 。如果您使用 NAND 闪存,则必须处理坏 block 并且复制 可能比memcpy()
复杂一点。
Linux 通常有一些潜在的驱动程序错误,驱动程序会假定时钟已初始化。例如,如果 Uboot 总是为特定机器初始化以太网时钟,Linux 以太网驱动程序可能会忽略设置此时钟。对于时钟树尤其如此。
有些系统需要 Linux 不支持的引导镜像格式;例如,可以立即初始化硬件的特殊 header ;比如配置 devices
来读取初始代码。此外,通常有需要立即配置的硬件; 引导加载程序 可以快速执行此操作,而 Linux 的正常结构可能会显着延迟此操作,从而导致 I/O 冲突等。
从实用的角度来看,使用引导加载程序更简单。但是,没有什么可以阻止您更改 Linux 的源代码以直接从中引导;虽然它可能就像将 引导加载程序 代码直接粘贴到 Linux 的启动。
另请参阅:Coreboot , Uboot , 和 Wikipedia's comparison . Barebox是一个鲜为人知但结构良好的现代 ARM 引导加载程序。 RedBoot也用于一些ARM系统;内核树支持 RedBoot 分区。
关于linux - 为什么我们需要嵌入式设备中的引导加载程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15548004/
我正在尝试使用中介包在 R 中进行中介分析。我查看了有关如何执行此操作的文档,并通读了 R 提供的示例(即,我已经运行了“example(mediate)”)。尽管如此,我还是无法运行最简单的中介。理
我在我的应用程序中引导 View 时遇到问题。 我试图在 bootstrap 中获取 View 实例,以便我可以分配 View 变量等。 问题是我似乎无法按照推荐的方式来做。我可以做这个: $this
我已经遵循了几个有关运行 RMI 应用程序的教程。但是,我似乎无法使其工作,因为我一直陷入相同的错误:ClassNotFoundException。我知道这个错误意味着我将文件放在了错误的位置,但我尝
最后,我开始与 Aurelia 合作。有一个入门套件可用 Here这有助于初始化 Aurelia。但它是一个模板,应该在网站模板中使用。 我有一个预配置 WebApi项目,我想在其中使用 Aureli
对于回归问题,我有一个训练数据集: - 3个具有高斯分布的变量 - 20 个均匀分布的变量。 我的所有变量都是连续的,在 [0;1] 之间。 问题是用于对我的回归模型进行评分的测试数据对所有变量具有均
我正在尝试“拉伸(stretch)”或扩展第 1 列中的 A 部分以填充该行的高度。 1行2列: +---------------------+---------------------+ |
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在使用 bootstrap 4 填充功能。默认情况下,bootstrap4 中的 col 或 col-12 类在左右应用 15px 填充。我想为移动设备设置左右padding 0,所以我使用下面的
我正在尝试通过自己编写引导加载程序来引导 linux 内核,但不知道如何加载内核。 所有人都在说使用 int 13h 将扇区从硬盘加载到内存。 其中部门应该加载??加载扇区后怎么办? 如果可以的话,请
如何合并两者以创建垂直菜单?我有一个基本的路由设置(它可以工作并呈现为标准的水平菜单): Home Gallery Contact 从 react-bootst
我的应用程序中有一些状态来自服务器并且不会更改(在用户 session 的生命周期内)。此状态在 HTML 中引导。 我应该将它合并到 reducer 中作为商店的一部分吗?const bootstr
有没有办法使用 styled-components与 react-bootstrap 一起? React-bootstrap 为其组件公开了 bsClass 属性而不是 className ,这似乎与
除了 YouTube 播放器的大小之外,以下代码运行良好。我无法将其调整为我想要的大小。 我试着把 width="150"和 height="100"在 iframe 但什么也没发生。
我正在尝试使这个东西与 this one 相同。我已经打印了。但崩溃消耗不起作用。 @foreach($faqs as $faq)
我想在启动 Play 应用程序时运行一些代码。这似乎不起作用。有什么线索吗? public class Global extends GlobalSettings { @Override
我了解监督学习和无监督学习之间的区别: 监督学习是一种使用标记数据“教导”分类器的方法。 无监督学习让分类器“自行学习”,例如使用聚类。 但是什么是“弱监督学习”?它如何对示例进行分类? 最佳答案 更
我对 python 还是很陌生,所以请原谅我,如果这是非常简单的或非常错误的思考方式。 我安装了 python 2.7。根据我在运行以下代码时的理解,它列出了它查找模块的目录。 Python 2.7.
我想使用 bootstrap carousel 制作一个 slider ,但我的 slider 不滑动即使我点击按钮也不会滑动 我测试了很多其他的 bootstrap slider ,我也遇到了同样的
我正在尝试通过替换 base 形状为 (4,2) 的 2D numpy 数组按行进行采样,比如 10 次。最终输出应该是一个 3D numpy 数组。 尝试了下面的代码,它有效。但是有没有不用 for
我是 Bootstrap 的新手,现在我正在检查它的 slider 功能。简单的 slider 和动画效果 - 一切正常。 但是我看不懂,我可以做这样的东西吗? - http://www.owlcar
我是一名优秀的程序员,十分优秀!