gpt4 book ai didi

arm - ARM U-Boot 构建问题的交叉工具链

转载 作者:行者123 更新时间:2023-12-02 00:14:37 25 4
gpt4 key购买 nike

我正在尝试为 Raspberry-Pi 构建自己的工具链。我知道有很多预建的工具链。这项工作是出于教育原因。我正在从零开始学习嵌入式 arm linux。并成功构建了一个gcc和uClib至此。我正在为目标 arm-unknown-linux-eabi 构建。

既然要准备可启动的文件系统,我正在质疑自己关于引导加载程序构建的问题。

关于此系统的引导加载程序的部分似乎不完整。现在我问自己如何使用我的 arm-unknown-linux-eabi 工具链为这个系统构建一个 uboot。

我需要构建一个不依赖于 linux 内核调用的工具链吗?我的第一个研究让我发现有不同种类的工具链依赖于操作系统(linux 内核系统调用等...)和不需要底层内核的操作系统。有时称为“裸机”工具链或“独立”工具链。

一些消息来源提到可以使用 linux 工具链构建 U-Boot。如果这是真的,为什么以及如何工作?

如果我必须为“裸机”工具链构建第二个工具链,我在哪里可以找到有关这两者之间差异的信息。我需要另一个 libstdc 吗?

最佳答案

您可以使用用于构建内核的相同交叉工具链构建 U-Boot - 很可能是系统的其余用户空间。

根据定义,引导加载程序是自包含的,并且不关心您选择的 C 运行时库,因为它不使用它。因此系统调用的问题不在其中。

工具链总是需要由功能齐全的开发系统托管——总是不是您的目标系统。无论您看到对“裸机工具链”的任何引用,都不是指编译器对系统调用的使用(它在很大程度上依赖于操作系统的 I/O)。在构建引导加载程序和内核时,重要的是编译器和链接器被配置为生成可以在特定内存地址运行的静态链接代码。

关于arm - ARM U-Boot 构建问题的交叉工具链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13856536/

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