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

时间:2018-05-04 10:03:43

标签: linux embedded yocto bsp

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

MACHINE=nitrogen6x

现在,我们达到了一个阶段,我们将创建一个自定义板(基于相同的i.Mx.6)。真正的处理器芯片尚未确定,但它将基于iMx6。

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

我是否需要向主板供应商询问有关他为支持任何外设和GPIO线路而进行的自定义硬件更改的任何具体信息。

  

如果我收到裸机,我必须考虑的主要事项是什么   来自硬件供应商的定制板,不打算提供任何产品   除原理图和引脚映射等之外的最小BSP封装。

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

编辑1 例如,我通过为Yocto构建设置环境指定一个机器名来为Nitrogen6x板构建一个Linux发行版,Yocto Framework为其创建了Distro。我按照以下说明操作:

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

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

  • 我们为其构建图像的机器类型
  • 主板所需的内核设备树
  • 首选Uboot提供程序(u-boot-boundary)
  • 首选内核提供程序(linux-boundary)
  • 首选BSP(linux-fslc)
  • 启动脚本(6x_bootscript)
  • 基本外设支持,如(串口,蓝牙,wifi或网络) 芯片)

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

Kernel Device Trees:我可能需要根据原理图和其他硬件信息为我的自定义板创建自定义设备树文件。是否有任何参考或文档可以参考创建我自己的 .dts 文件。

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

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:-1)

我强烈建议您创建一个新的新图层,以便处理新的自定义设备。它将允许您从远程存储库正确地分离设备和计算机配置。我不知道如何计划经理交付/版本,但我建议您使用repo。您将找到有关恩智浦文档的许多信息。

  

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

我们不知道您对自定义设备的期望是什么。因此,这种机器配置可以满足您的要求,但也可能需要调整。因为去年引入了新的机器覆盖new machine override,我实际上还不熟悉它。但它允许您通过在local.conf中添加一个简单的行来配置BSP图层。根据您的local.conf,您将从linux-boundarylinux-fslc食谱编译内核。

  

内核设备树:我可能必须根据原理图和其他硬件信息为我的自定义板创建自定义设备树文件。是否有任何参考或文档可以参考创建我自己的.dts文件。

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

您将在Program type already present: android.support.design.widget.CoordinatorLayout$Behavior Message{kind=ERROR, text=Program type already present: android.support.design.widget.CoordinatorLayout$Behavior, sources=[Unknown source file], tool name=Optional.of(D8)} 目录下创建自己的设备树(例如,customboard-imx6.dts)。您还可以在开发过程中将其包含在源中。

  

BSP:我期待我目前用于氮板的BSP层可能兼容并且也适用于定制板,因为它将基于iMx6平台制造。这是我必须努力获得提示的部分?

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