我有一个基于 rocko 分支的工作 Yocto 构建系统,该系统正在为基于 ARM 的目标板生成图像。该板上的芯片之一是一个基于 ARM 的小型微控制器,与主 CPU 分离。它需要加载我必须构建的固件映像。
制定构建此微控制器固件的方法很容易。它需要一个 ARM 交叉编译器,然后需要一些特殊的编译器选项来控制代码生成(对于 cortex-m4 +thumb 等)。问题是,如果我设置一个正常的配方,它会假设我正在为目标 ARM 架构构建一些东西,这是一种不同类型的 ARM,需要不同的代码生成选项。我当然可以让固件 Makefile 覆盖为目标系统提供的交叉编译环境,并让 Makefile 只生成二进制固件映像。
但这将产生一个名义上用于目标 ARM 架构的包,但其中包含一个旨在闪存到目标板上芯片上的二进制 blob。
所以我的问题是,我应该如何制作一个固件配方,该配方将在与 yocto 构建最终目标的机器完全不同的架构上执行?
看来我需要创建一个专门为微控制器构建的配方,因此在某些方面与正常的目标配方有所不同。
多重配置可能会帮助你。用例之一是您想要为由 FPGA 和 ARM 内核组成的板构建映像,这在某种程度上与您的用例类似。
引用莫蒂发行说明 (2.2) https://lists.yoctoproject.org/pipermail/yocto-announce/2016-November/000101.html,那里有介绍:
对多配置构建的基本支持。例如,这可以一次构建多于一台机器,如果您的主板上有两个独立的 SoC,每个 SoC 都有自己的操作系统,但您希望在同一构建中同时针对这两个机器,这可能会很有用。
我还没有尝试过,但是 rocko 的文档在这里:https://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#platdev-building-targets-with-multiple-configurations https://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#platdev-building-targets-with-multiple-configurations
您基本上定义了两个机器配置文件,将它们定义在BBMULTICONFIG
变量并运行 bitbakemulticonfig:<configuration>:
需要时目标的前缀。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)