首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

用NXP(恩智浦)提供的IMX6ULL的公板(MCIMX6ULL-EVK)的BSP(FSL Yocto Project Community BSP)来编译生成烧写在SD卡中的完整镜像,并分析运行结果

  • 25-03-05 03:01
  • 2660
  • 5716
blog.csdn.net

NXP官网下载公板的原理图和PCB资料

在这一步我们到NXP(恩智浦)官网下载IMX6ULL的公板(EVK)的硬件资料,硬件资料主要是指公板的原理图和PCB资料。

在本篇博文中实际上我们并没有用到公板的原理图资料,但在下一篇博文我们对u-boot进行修改时就要用到了,下一篇博文的链接 http://iyenn.com/rec/1709290.html

既然本篇博文没有用到公板的原理图资料,那为什么要写在这篇博文中呢?那是因为我的终极目标是要用公板提供的BSP移植生成能够在自己购买的开发板上正常运行的Bootloader和内核呀,在移植过程中迟早要用到,所以先把资料下载下来,在下载的过程中,也能对官方的公板资料页面有个了解。

01-进入官网,找到IMX6ULL的公板

进入NXP官网,官网地址如下:
https://www.nxp.com/
在这里插入图片描述
点击上图中的DESIGN CENTER:
在这里插入图片描述
点击下图中的Dev/Evaluation Boards:
在这里插入图片描述
搜索关键词6ULL:
在这里插入图片描述
搜索结果中的第1个就是我们要找的公板:
在这里插入图片描述

02-公板的名字和价格

上图中我们点击BUY OPTIONS还可以购买哦:
在这里插入图片描述
可见公板的全名为:MCIMX6ULL-EVK,从后面的构建配置中我们还可以知道这个发开板在FSL Yocto Project Community BSP构建环境中的名字为imx6ull14x14evk。
这个公板的价格为 171.35USD,即人民币 1251.8488 元。
我们可以淘宝上搜索一下MCIMX6ULL-EVK:
在这里插入图片描述
发现大致价格为:1600元左右。

03-公板的资料详情页

当然我们这里是要获取公板的资料,所以点击下图中的链接:
在这里插入图片描述
这样就进入了其详情页,链接如下:
https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-6ull-and-6ulz-applications-processor:MCIMX6ULL-EVK
在这里插入图片描述

04-下载公板硬件资源的相关资料(原理图和PCB设计文件)

点击下图中的Design Resources,即可自动跳转到硬件资源下载栏:
在这里插入图片描述
在这里插入图片描述
上图显示,这个资料的大小22.3MB,最后更新时间为2023年11月09日,但是百问网制作这个教程时这个资源的大小为10.0MB,最后更新时间为2019年08月06日。
在这里插入图片描述
为了保持与教程的一致性,我这里就使用教程提供的2019年08月06日更新的,大小为10.0MB的这个资源包吧!百度网盘下载链接为:
https://pan.baidu.com/s/1gy1OlDDNPDmKI8L_fHDxOQ?pwd=shtd
在这里插入图片描述
解压缩后的文件列表如下图所示,文件夹 MCIMX6ULL_BB_DESIGNFILES 里面包含的是 IMX6ULL 底板相关的硬件资源,MCIMX6ULL_CM_DESIGNFILES 里面包含的是 IMX6ULL 核心板相关的硬件资源。底板(Baseboard)和核心板(Core Module)的详细描述见下。

05-底板(Baseboard)和核心板(Core Module)的详细描述

在许多嵌入式开发板中,通常会有 底板(Baseboard) 和 核心板(Core Module) 两个部分,这种结构设计有助于模块化开发,使得开发更为灵活。下面是对这两个文件夹内容的进一步说明:

  1. MCIMX6ULL_BB_DESIGNFILES:

    • 这个文件夹包含的是 底板(Baseboard) 的设计文件。底板通常包括了与外部世界接口相关的硬件,如 I/O 接口、调试接口、电源管理、显示接口、外部存储(如 SD 卡、eMMC)等。
    • 具体来说,底板的设计文件可能包括:
      • 电源电路、调节电路
      • 外部接口,如 USB、以太网、HDMI、显示器接口等
      • 串口、调试端口(如 JTAG)
      • 一些基本的硬件设计,比如连接器、跳线、开关等
  2. MCIMX6ULL_CM_DESIGNFILES:

    • 这个文件夹包含的是 核心板(Core Module) 的设计文件。核心板是开发板的心脏部分,通常包括了主要的处理器(IMX6ULL),以及一些关键组件(如存储、内存等),这部分硬件设计文件关注的内容通常是处理器和相关资源的配置。
    • 核心板设计文件通常包括:
      • 处理器(IMX6ULL)以及与其连接的内存、闪存等
      • 系统总线、片上外设、时钟等
      • 可能还包括一些基本的调试接口和基础支持电路

主要区别:

  • 底板(BB)设计文件:主要涉及与外部设备连接和电源管理相关的硬件设计。
  • 核心板(CM)设计文件:主要涉及处理器及其直接相关的硬件资源(如内存、闪存等)的设计。

这种结构非常适用于模块化设计,你可以将 核心板(CM) 和 底板(BB) 独立开发,核心板可以被多个底板复用,减少了设计和生产的复杂性。

下载NXP提供的公板的BSP的说明文档

NXP提供的公板的BSP的名字和情况说明

NXP提供的公板的BSP是以Yocto Projec为框架的,其全名叫做FSL Yocto Project Community BSP。FSL Yocto Project Community BSP 是一个由 Yocto 社区提供的支持包,它为 i.MX 板提供了定制支持。虽然它是基于 Yocto Project 框架的,但它是一个特定于硬件的平台支持包(BSP),而不是 Yocto Project 本身。

进入公板的资料详情页

参考上一个目录“NXP官网下载公板的原理图和PCB资料”的“01至03”步,找到公板的资料详情页,公板的资料详情页的链接如下:
https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-6ull-and-6ulz-applications-processor:MCIMX6ULL-EVK
在这里插入图片描述

找到下载位置(Documentation项下)

点击下图中的Documentation,会跳转到页面的Documentation项下:
在这里插入图片描述
在这里插入图片描述
勾选上图中的Supporting Information
在这里插入图片描述

找到需要下载的资料文件和资料文件名称说明

在上一步的基础上,在页面中搜索关键词L5.4.47_2.2.0:
在这里插入图片描述
这里要说明下资料名中的数字编号是什么意思。比如L5.4.47_2.2.0_LINUX_DOCS中的L5.4.47代表对应的Linux系统版本号为5.4.47,当然我拿到的百问网的开发板的内核版本号为:4.9.88,详情见 http://iyenn.com/rec/1709287.html,那我们去看下有没有Linux内核版本号为:4.9.88的BSP资料说明文档,往下拉一点页面,就找到了,如下图所示:
在这里插入图片描述

下载FSL Yocto Project Community BSP的说明文档压缩文件:L5.4.47_2.2.0_LINUX_DOCS

这里,由于这里百问网教程中用的是L5.4.47_2.2.0_LINUX_DOCS,所以我们这里也下载L5.4.47_2.2.0_LINUX_DOCS,点击下图中红框的位置:
在这里插入图片描述
就会跳转到下载页面,并自动弹出下载对话框:
在这里插入图片描述
当然,这里为了与百问网提供的教程相吻合,所以我直接用百问网提供的已经下载好的imx-yocto-L5.4.47_2.2.0.zip,百度网盘下载链接如下:
https://pan.baidu.com/s/1m9TLpVW_5IBdeAanBtP3nA?pwd=e1y7

下载完成后解压得到的文件见下面。

资料包中的核心文档i.MX_Yocto_Project_User's_Guide.pdf的说明

资料包L5.4.47_2.2.0_LINUX_DOCS下载完成后解压得到的文件如下:
在这里插入图片描述
在上面截图中最后一个文档i.MX_Yocto_Project_User's_Guide.pdf中有如何下载Yocto Project源码和利用Yocto进行构建的方法,这个文档的Overview的截图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文字如下:

1 Overview
This document describes how to build an image for an i.MX board by using
a Yocto Project build environment. It describes the i.MX release layer and
i.MX-specific usage.
The Yocto Project is an open-source collaboration focused on embedded
Linux®
OS development. For more information on Yocto Project, see the Yocto
Project page: www.yoctoproject.org/. There are several documents on the
Yocto Project home page that describe in detail how to use the system. To use
the basic Yocto Project without the i.MX release layer, follow the instructions
in the Yocto Project Quick Start found at www.yoctoproject.org/docs/current/
yocto-project-qs/yocto-project-qs.html.
The FSL Yocto Project Community BSP (found at freescale.github.io) is a
development community outside NXP providing support for i.MX boards in the
Yocto Project environment. i.MX joined the Yocto Project community providing
a release based on the Yocto Project framework. Information specific to FSL
community BSP use is available on the community web page. This document
is an extension of the community BSP documentation.
Files used to build an image are stored in layers. Layers contain different types
of customizations and come from different sources. Some of the files in a layer
are called recipes. Yocto Project recipes contain the mechanism to retrieve
source code, build and package a component. The following lists show the
layers used in this release.
i.MX release layer
• meta-imx
— meta-bsp: updates for meta-freescale, poky, and metaopenembedded layers
— meta-sdk: updates for meta-freescale-distros
— meta-ml: Machine learning recipes
Yocto Project community layers
• meta-freescale: provides support for the base and for i.MX Arm®
reference boards.
• meta-freescale-3rdparty: provides support for 3rd party and partner boards.
• meta-freescale-distro: additional items to aid in development and exercise board capabilities.
• fsl-community-bsp-base: often renamed to base. Provides base configuration for FSL Community BSP.
• meta-openembedded: Collection of layers for the OE-core universe. See layers.openembedded.org/.
• poky: basic Yocto Project items in Poky. See the Poky README for details.
• meta-browser: provides several browsers

这段文字是关于如何使用 FSL Yocto Project Community BSP 构建 i.MX 板子的镜像文件的指南,特别是针对 NXP 提供的 i.MX6ULL-EVK 开发板。让我们逐步分析这段文字,帮助你理解其具体内容。

  1. Yocto Project 概述

    • Yocto Project 是一个开源项目,专注于嵌入式 Linux 系统的开发。它提供了一个灵活的平台,帮助开发人员定制和构建适合不同硬件平台的 Linux 镜像。
    • 通过 Yocto Project,开发人员可以从源代码构建嵌入式 Linux 操作系统,包括内核、Bootloader、文件系统、驱动等。
  2. Yocto 项目和 FSL Yocto Project Community BSP(板支持包)

    • 该文档介绍了如何使用 Yocto 构建适用于 i.MX 板(例如 i.MX6ULL)的镜像文件。
    • BSP(Board Support Package)是为特定硬件平台(如 i.MX 开发板)提供的支持包,包含了支持该平台所需的工具、配置文件、驱动程序和其他必要的软件资源。NXP 提供了一个针对 i.MX 系列的 BSP,它以Yocto Project为框架,其名字为 FSL Yocto Project Community BSP,包含了该系列处理器的驱动、内核配置和其他硬件相关的支持文件。Yocto Project 提供了一个构建框架,支持为不同的硬件平台构建 Linux 系统。而 BSP 是针对某个具体硬件平台的定制支持包,它依赖于 Yocto 项目来进行构建和定制。
    • i.MX Release Layer 是 NXP 提供的一个 Yocto 项目层,专门为 i.MX 系列处理器定制了 Yocto 环境。它包含了 NXP 针对 i.MX 处理器的特定修改和优化。
  3. Yocto 项目层和层结构

    • Layer:在 Yocto 中,层(Layer)是用于组织和分离不同功能、组件、配置的结构。每个层都包含了一个或多个 recipe(配方),这些配方定义了如何获取、编译和安装软件包。
    • 该文档列出了为 i.MX 系列处理器构建镜像所需的不同层(Layer)。
  4. i.MX Release Layer

    • 这是 NXP 提供的针对 i.MX 处理器的 Yocto 配置层,包含了一些特定的修改和优化:
      • meta-imx:这是 i.MX 处理器的核心层,包括了几个子层:
        • meta-bsp:更新了 meta-freescale、poky 和 meta-openembedded 等层,确保这些层与 i.MX 处理器兼容。
        • meta-sdk:提供了与 meta-freescale-distros 相关的更新,通常与开发工具包、SDK(软件开发工具包)相关。
        • meta-ml:这个子层包含了与 机器学习(Machine Learning) 相关的配方,可能包括深度学习框架、优化等工具。
  5. Yocto 项目社区层

    • meta-freescale:这个层提供了对 i.MX 处理器及其参考板的支持,包含了基础的 Yocto 配置和支持。
    • meta-freescale-3rdparty:这个层为第三方合作伙伴和板卡提供支持,允许将其他厂商的硬件支持集成到 Yocto 中。
    • meta-freescale-distro:这个层包含了额外的开发工具和项目,帮助开发者充分利用板卡的功能。
    • fsl-community-bsp-base:这是 FSL(Freescale,i.MX 的前身)社区提供的基本配置层,包含了用于构建的基础配置和设置。
    • meta-openembedded:这是一个包含多个层的集合,提供了各种与嵌入式 Linux 系统相关的工具和软件包。
    • poky:这是 Yocto 项目中最基本的层,包含了 Yocto 项目的核心功能,提供了构建嵌入式 Linux 系统所需的基础内容。
    • meta-browser:提供了与浏览器相关的配方,例如 Webkit、Chromium 等,可以用于嵌入式设备中的浏览器功能。
    • meta-qt5:这个层提供了 Qt 5,也就是流行的跨平台图形界面框架 Qt 5 的支持。
    • meta-timesys:这个层提供了 Vigiles 工具,用于监控和通知 BSP 漏洞(包括 CVE,即公共漏洞和暴露漏洞)的信息。
  6. 关于配方(Recipe)

    • 配方是 Yocto 项目中最基本的构建单元,每个配方定义了如何从源代码编译、构建和安装某个软件包。配方通常会指定软件的源代码位置、构建方式和安装路径等。
    • 这些配方可以帮助 Yocto 在构建时下载源代码、编译并打包成适合嵌入式设备的格式。
  7. 总结

    • 这段文字的核心是让开发人员了解如何使用 FSL Yocto Project Community BSP 构建适用于 i.MX 系列处理器的嵌入式 Linux 镜像。通过集成多个不同的层,Yocto 提供了丰富的工具和支持,能够为 i.MX 开发板定制镜像,并支持如机器学习等高层应用。
    • 通过 Yocto 提供的 meta-imx 等层,开发者可以很容易地为 i.MX 开发板创建一个包含 Bootloader、内核、根文件系统等的完整嵌入式 Linux 系统。

可见,NXP提供的BSP是利用Yocto这个构建系统进行Bootloader、Linux 内核、根文件系统、设备树文件的构建,但是在嵌入式应用开发手册中有下面的话:
在这里插入图片描述
所以有可能在本篇博文中我并不会去真正执行构建,即使万不得已要进行构建,也得在另外一台电脑或服务上进行构建,否则自己的电脑被占用两三天可不是一件好事。至于对服务器的要求是什么,请入下看。

Yocto构建操作时对服务器Ubuntu的要求

在文件i.MX_Yocto_Project_User's_Guide.pdf中有下面这段话:

To get the Yocto Project expected behavior in a Linux Host Machine, the packages and utilities described below must be installed.
An important consideration is the hard disk space required in the host machine. For example, when building on a machine running
Ubuntu, the minimum hard disk space required is about 50 GB. It is recommended that at least 120 GB is provided, which is
enough to compile all backends together. For building machine learning components, at least 250 GB is recommended.
The recommended minimum Ubuntu version is 18.04 or later. The Chromium version 74 requires Ubuntu 18.04. The latest release
supports Chromium V74, which requires an increase to the ulimit (number of open files) to 4098. If Chromium is not used, 16.04
should work. Earlier versions before 16.04 may cause the Yocto Project build setup to fail, because it requires python versions
only available starting with Ubuntu 12.04. See the Yocto Project Reference Manual for more information.

这段话是关于 FSL Yocto Project Community BSP 在 Linux 主机 上的 环境配置,特别是主机上需要安装的包和工具,以及硬盘空间的要求。以下是这段话的解释:

解释:

昊虹嵌入式技术交流群
QQ群名片
注:本文转载自blog.csdn.net的的文章"https://blog.csdn.net/wenhao_ir/article/details/145547974"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top