使用 Yocto 为裸机板构建自定义 BSP 层

To build custom BSP layer using Yocto for a bare metal board

我正在开发一个基于 Yocto Krogoth 版本的嵌入式应用程序 运行 在 Nitrogen6x 板上。我已按照 this link 中提到的步骤进行操作。我已成功创建 Linux 发行版和 Yocto SDK 来开发和 运行 我在氮板上的应用程序。我用来设置构建环境的目标机器是:

MACHINE=nitrogen6x

现在,我们进入了创建自定义面板的阶段(基于相同的 i.Mx.6)。真正的处理器芯片还没有定下来,但会基于iMx6。

假设我们假设最终的定制板也使用与目前用于我的开发的 Nitrogen6x 板相同的处理器芯片。我是否需要向我现有的 Yocto Repos 添加任何其他 CUSTOM BSP layer 以支持我收到的新定制板,或者我为 Nitrogen6x 评估板创建的现有 Yocto 层和构建环境也适用于我的定制板?

我是否需要向电路板供应商询问有关他为支持任何外围设备和 GPIO 线路等所做的自定义硬件更改的任何具体信息。

What are the main things I have to consider if I receive a bare metal custom board from a hardware vendor who is not planning to give any minimal BSP package other than the schematics and pin mappings etc.

我在 Yocto 文档中读到了有关创建自定义 BSP 层的内容。但是当我开始考虑自定义板时,我脑海中还有很多其他事情不清楚(它不像 Nitrogen6x、wandboard、Raspberry Pi 等,它在 Yocto、BSP 中得到了广泛的支持社区)。

编辑 1 例如,我通过为 Yocto 框架为其创建发行版的 Yocto 构建设置环境指定一个机器名称,为 Nitrogen6x 开发板构建了一个 Linux 发行版。我 运行 以下说明:

$ MACHINE=nitrogen6x source ./setup-environment build
$ bitbake core-image-sato

我在上面步骤中提到的机器是nitrogen6x,它只是一个看起来像this的配置文件。这个文件,主要提到了这些东西:

到目前为止,我的理解是,在上面的列表中,除了自定义板突出显示的内容外,其他所有内容都保持不变。我对以下几点是否正确?

Kernel Device Trees: 我可能必须根据原理图和其他硬件信息为我的自定义板创建一个自定义设备树文件。有没有我可以参考的参考资料或文档来创建我自己的 .dts 文件。

BSP: 我希望我目前用于 Nitrogen 板的 BSP 层可能兼容并且也适用于定制板,因为它将基于 iMx6 平台制作。这是我必须努力获得提示的部分?硬件供应商是否会为我们提供一套最小的软件来检查电路板启动并给我们提示,或者我是否需要让它在裸机板上工作。

感谢您提供的任何帮助。

我强烈建议您创建一个新层以处理您的新自定义设备。它将允许您正确地将设备和机器配置与远程存储库分离。我不知道如何规划经理deliveries/versions,但我建议你使用repo。您会在 NXP 文档中找到很多信息。

My understanding so far was that, In the above list everything else remains the same except the highlighted ones for the custom board. Am I right with the below points ?

我们不知道您对自定义设备的真正期望是什么。因此,此机器配置可以满足您的要求,但也可能需要调整。因为新的machine overridenew machine override是去年推出的,我其实还不熟悉。但它允许您通过在 local.conf 中添加一行来配置 BSP 层。根据您的 local.conf,您将从 linux-boundarylinux-fslc 配方编译内核。

Kernel Device Trees: I may have to create a custom device tree file for my custom board based on the schematics and other hardware info. Is there any reference or document that I can refer to create my own .dts file.

您可以在 KERNEL_DEVICETREE 中添加任意数量的 dts = 您必须拥有自己的。它存在很多关于 dts 的信息。按照此 link 进行首次介绍。

您必须在 /arch/arm/boot/dts/ 目录下创建自己的设备树(例如,customboard-imx6.dts)。您还可以在开发过程中将其包含在源代码中。

BSP: I am expecting that the BSP layer I am currently using for the Nitrogen board may probably be compatible and work for the custom board too since it is going to be made based on the iMx6 platform. And this is the section where I have to work to get a prompt ?

如果是,您打算如何管理资源?