【发布时间】:2021-08-26 07:45:11
【问题描述】:
我是嵌入式 linux 的新手,刚刚开始为 raspberry 4 板构建自定义内核。有几个关于如何为特定板编译 linux 内核的教程。据我了解,我可以指定 cpu 类型和工具链作为参数来使用 ARCH 和 CROSS_COMPILE 创建命令,但我想知道编译器如何识别我想要获取内核映像的特定 ARM 架构(ARMv7、ARMv8 等)。
【问题讨论】:
-
编译器默认使用一组基本的 ARM 指令,这可以使生成的图像具有可移植性。 gcc 的 Linux man 页面提到
-march=、-mtune=和-mcpu=作为可以指定/调整生成指令的选项。请参阅stackoverflow.com/questions/40442218/… 您还可以为特定的子架构和/或处理器类型自定义构建工具链,以确保项目的所有代码都以所需的优化一致地编译。 -
编译器不知道你的产品需要什么架构,你必须告诉它。如果问题是编译器如何知道为特定架构生成什么代码,那么该信息就在编译器代码本身中。
标签: types arm cpu embedded-linux