linux - 使用 Yocto 为裸机(Bare Metal)板构建自定义 BSP 层

标签 linux embedded yocto bsp

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




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

MACHINE=nitrogen6x

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

假设我们假设最终的定制板也使用与我目前用于开发的 Nitrogen6x 板相同的处理器芯片。我需要添加任何其他CUSTOM BSP layer到我现有的 Yocto Repos 以支持我收到的新定制板,或者我为 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 build设置环境指定一个机器名称来为 Nitrogen6x 板构建一个 Linux 发行版,Yocto 框架为其创建发行版。我运行以下说明:
$ MACHINE=nitrogen6x source ./setup-environment build
$ bitbake core-image-sato

我上面步骤中提到的机器是nitrogen6x这只是一个看起来像 this 的配置文件.这个文件,主要提到了这些东西:
  • 我们正在为其构建镜像的机器类型
  • 开发板所需的内核设备树
  • 首选 Uboot 提供程序 (u-boot-boundary)
  • 首选内核提供程序(linux 边界)
  • 首选 BSP (linux-fslc)
  • 引导脚本 (6x_bootscript)
  • 基本外设支持,例如(串行、蓝牙、wifi 或网络
    芯片)

  • 到目前为止,我的理解是,在上面的列表中,除了自定义板的突出显示之外,其他所有内容都保持不变。我对以下几点正确吗?
    Kernel Device Trees:我可能必须根据原理图和其他硬件信息为我的自定义板创建自定义设备树文件。是否有任何引用或文档可供我引用以创建我自己的 .dts 文件。
    BSP:我期待我目前用于 Nitrogen 板的 BSP 层可能兼容并且也适用于定制板,因为它将基于 iMx6 平台制作。这是我必须努力获得提示的部分?硬件供应商是否会为我们提供一套最少的软件来检查板子的启动并让我们得到提示,或者我是否需要让它在裸机(Bare Metal)板上工作。

    感谢您的任何帮助,您可以提供。

    最佳答案

    我强烈建议您创建一个新层以处理您的新自定义设备。它将允许您正确地将设备和机器配置与远程存储库分离。我不知道如何计划管理交付/版本,但我建议您使用 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 ?



    我们不知道您对定制设备的真正期望是什么。因此,该机器配置可以满足您的要求,但也可能需要调整。因为新机覆盖new machine override去年就介绍过了,其实我还不熟悉。但它允许您通过在 local.conf 中添加一个简单的行来配置您的 BSP 层。 .取决于您的 local.conf , 你将从 linux-boundary 编译内核或 linux-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.



    您可以附加尽可能多的 dts你想在KERNEL_DEVICETREE = 你必须拥有自己的。它存在很多关于 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 ?



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

    关于linux - 使用 Yocto 为裸机(Bare Metal)板构建自定义 BSP 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172362/

    相关文章:

    c - 单元测试 C 代码

    yocto - 如何在 Yocto 环境中进入 u-boot 的 menuconfig

    linux - 如何将一些文件(可能像/home/eric/libtest0.1.so)添加到 Yocto rootfs lib 文件夹(/lib)?

    linux - 使用 sed 执行替换时丢失制表符和换行符

    linux - ubuntu 中自动启动应用程序

    embedded - 使用USB引导加载程序时如何设置ARM用户应用程序起始地址?

    qt - QBackingStore::endPaint() 在 backingstore 绘制设备上使用事件绘制器调用

    linux - 嵌入式 C 解析服务器迁移 serverURL

    python - 在追加文件时,数据没有写入文件,而在读取文件时,它在 python 中显示空字节

    linux - 如果插件已经在网站上,请更新它