本页将帮助您逐步了解如何在面向i.MX6 QuadPlus (可配置为i.MX6 DualPlus)的SABRE板上启动Linux®操作系统,并简要介绍了恩智浦Linux®操作系统BSP (板级支持包)。
该套件带有含预建恩智浦Linux® BSP镜像的SD卡。无需修改系统,从镜像中启动将提供具有某些功能的默认系统,在Linux®上构建其他应用。
如需了解有关恩智Linux® BSP镜像的更多信息,请继续阅读以下章节:BSP简介。
在Linux®主机上,运行以下命令以确定端口号:
$ ls /dev/ttyUSB*
使用以下命令安装串行通信程序(以Minicom为例):
$ sudo apt-get install minicom
在Windows操作系统上,
如需确定i.MX板虚拟COM端口的端口号,请打开设备管理器并在“端口”分组下查找。
如有必要,您可以在以下位置查找串行至USB驱动程序:ftdichip.com/FTDrivers.htm。
不确定如何使用终端应用?试试这些教程:
将HDMI线缆的一端与HDMI接头J8连接。将HDMI线缆的另一端与支持HDMI的显示器连接。
连接键盘和鼠标,与显示器上显示的操作系统GUI进行交互。如果使用多个设备,将USB集线器与USB插孔J505连接,并将键盘和鼠标与集线器连接。可能需要微型B公头转A母头适配线。
将以太网线缆连接到以太网插孔J7。
将5V电源线与5V DC电源插头P1连接。
接通电源后,处理器开始执行片上ROM的代码。在默认启动开关的设置下,此代码将读取保险丝,以找出哪个媒体中可以搜索到启动的镜像。然后,它将找到SD卡,并自动开始执行U-Boot。
将在串行控制台中打印信息。如果没有停止U-boot流程,就会启动Linux®内核。
一旦启动Linux®,可以采用用户名根进行登录,无密码。
要转至U-Boot,在U-Boot环境变量“bootdelay”值降低和超时(默认3秒)之前,请按任意键。如果停止U-boot流程,可运行以下命令再次启用Linux®:
U-Boot >boot
Tera Term是一款广受欢迎的开源终端仿真应用。此程序可用来显示从恩智浦开发平台的虚拟串行端口中发送的信息。
PuTTY是一款广受欢迎的终端仿真应用。此程序可用来显示从恩智浦开发平台的虚拟串行端口中发送的信息。
i.MX Linux®板级支持包(BSP)是一系列二进制文件、源代码和支持文件,可用来为i.MX开发系统创建U-Boot引导加载程序、Linux®内核镜像以及根文件系统。当前版本的BSP和源代码可在www.nxp.com/imx6tools中找到
Linux®操作系统内核在i.MX板上启动前,Linux®镜像需要复制到引导设备,而启动开关需要设置为启动此设备。
要启动板并运行Linux®,需要四个元件:
此版本包含专为i.MX 6Quad Sabre-SD板构建的预建SD卡镜像。SD卡镜像是通常名为
预建的恩智浦Linux®二进制演示镜像提供典型系统和基本的功能集,用于使用并评估处理器。无需修改系统,用户就可以评估硬件接口、测试SoC功能并运行用户空间应用。
借助源代码和文档,用户还可以为自己的设备定制Linux®镜像,如添加或删除系统组件。
Yocto Project是恩智浦专业支持选择的框架,可构建用来启动Linux®内核的镜像,也可以采用其他方法。
如需了解更多详细,请参见恩智浦《Yocto Project用户指南》
为不同的板、启动设备和所需结果下载Linux® BSP镜像有多种方法。
对于快速入门人员,我们仅列出了将BSP镜像传送到SD卡上的几个方法。经验丰富的Linux®开发人员可以探究其他选项。
.Sdcard镜像(来自预建或自建BSP镜像)是可以直接闪存的SD卡镜像。这是最简单的方法,只需一个命令就可将所需一切加载到此卡。
当需要更多灵活性时,SD卡可逐一与单个组件(引导加载程序、内核、dtb文件和roofs文件)一起加载,或者可加载.Sdcard镜像,并且特定组件可以覆盖单个部件。
SD/MMC读卡器需要传输引导加载程序和内核镜像,来初始化分区表并复制根文件系统。
Linux®主机:
Linux®主机上运行的 Linux®内核为SD/MMC读卡器分配设备节点。
要确定分配给SD/MMC卡的设备节点,执行主机的以下命令:
警告:以下指令将永久删除SD卡上的现有内容,如果运行不正确,将对PC有危险。如有问题或要了解更多详情,请查询i.MX Linux®用户指南。
$ cat /proc/partitions
执行以下命令,将SD卡镜像复制到SD/MMC卡。更改以下sdx来匹配SD卡所用的。
$ sudo dd if= of=/dev/sd bs=1M && sync
其中,
警告:确保设备节点与SD/MMC卡相配。否则,可能会损坏计算机硬盘上的操作系统或数据。
如需手动设置分区,请查阅i.MX Linux®用户指南中的4.3.3节。
未使用全SD卡镜像时,如需单独加载单个组件,请参阅i.MX Linux®用户指南第4.3.4-3.4.6节。
U-Boot引导加载程序能够通过以太网将镜像下载到RAM,然后写入SD卡。对于此操作,需要配置网络通信。
有关如何将U-Boot下载到MMC/SD卡(未从此卡启动)的说明,请参考第4.4.1节。
可使用U-Boot下载到其他启动介质(存储器、存储设备)的镜像。要使用其他存储设备,请参考第4.4.1节
制造工具(简称MfgTool)是在Windows操作系统上运行的工具,可用来将镜像下载到i.MX板上的不同设备。找到的tar.gz文件带有预建Linux®BSP镜像。
i.MX板的启动模式由板上启动配置DIP开关来控制。
下表显示了DIP开关设置,可从i.MX6 SABRE-SD板上标为SD2和J500的SD卡槽上来启动。SD2卡槽位于板背面的LVDS1连接旁边。
从i.MX 6 SABRE-SD上的SD2 (J500)启动
开关 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 |
---|---|---|---|---|---|---|---|---|
SW6 | 开 | 关 | 关 | 关 | 关 | 关 | 开 | 关 |
如需了解从其他设备(SD3和SATA)启动的启动开关设置,请参阅《i.MX Linux®用户指南》的第4.5节
本节介绍了带Android™系统镜像的i.MX 6QuadPlus SABRE板的启动过程,并简介了如何构建软件组件,创建您自己的系统镜像。如需了解构建Android™平台的更多信息,请参见source.android.com/source/building.html
当前版本的二进制镜像和源代码可在www.nxp.com/imx6tools中找到
开发系统(MMC/SD或NAND)上的存储设备必须采用U-Boot引导加载程序来编程。i.MX 6系列引导过程确定了将访问哪些存储设备,具体取决于开关设置。当引导加载程序已加载并开始执行时,可读取U-Boot的环境空间,以确定如何继续启动过程。
预建版本包中或源代码中已创建的镜像包括:
创建Android™系统所需的镜像可从版本包中获取,或从源代码中来构建。
预建恩智浦Android™演示镜像将为默认系统提供某些功能,以便进行评估。无需修改系统,用户可以执行一些基本操作,并与系统交互来测试硬件接口,并在用户空间开发软件应用。
最新的预建演示文件可在www.nxp.com/imx6tools的Android™部分找到
要构建Android™源代码文件,请采用运行Linux® 操作系统的电脑。Ubuntu 14.04 (64位)版本是为Android™ Marshmallow 6.0打造的最经得起考验的操作系统。
安装运行Linux®操作系统的电脑后,检查是否已经安装了Android™版本所需的所有数据包。参见Android™网站source.android.com/source/initializing.html中"设置您的设备"。
除了Android™网站要求的数据包,请参考《Android™用户指南》来安装其他数据包。
从Google库获取Android™源代码。
从恩智浦开源GIT库中获取内核源代码和U-Boot。
应用所有i.MX Android™补丁。如需了解详情,请参见《Android™用户指南》。
可下发构建配置命令lunch,带有
下面是为i.MX 6Quadplus SABRE板构建带用户类型的Android™镜像示例:
$ cd ~/myandroid
$ source build/envsetup.sh
$ lunch sabresd_6dq-user
$ make 2>&1 | tee build-log.txt
Make命令完成后,build-log.txt文件包含执行输出。检查是否有错误
要创建Android™平台OTA和数据包,请指定以下Make目标:
$ make otapackage
注意:U-Boot mage、kernel uImage和boot.img可单独构建。
运行Linux®操作系统电脑上的Linux®实用工具"dd"可用来将镜像下载到SD卡。
下载前,确保按照存储分区所述创建分区。
制造工具(简称MfgTool)是在Windows操作系统上运行的工具,可用来将镜像下载到i.MX板上的目标设备。tar.gz文件可在www.nxp.com/imx6tools的“制造工具”部分进行下载
i.MX板的启动模式由板上启动配置开关来控制。
下表列出了不同启动方法的启动开关设置:
eMMC 4位(MMC2)启动 | (SW6) 11100110 (从1至8位) |
eMMC 8位(MMC2)启动 | (SW6) 11010110 (从1至8位) |
SD启动 | (SW6) 01000010 (从1至8位) |
如需了解从NAND/TFTP/NFS启动的启动开关设置,请参考《i.MX Android™用户指南》第6.2-6.3节。
如需通过HDMI显示器来启动,请参考第3.4节,了解更多说明。
如需了解详情,请参考《i.MX Android™快速入门指南》“3.3 下载板镜像”
您可以采用USB线缆连接调试UART端口和电脑,并打开串行通信程序进行控制台输出。
如需了解详情,请参阅《i.MX Linux®用户指南》“4.2制造工具”。
您可以采用USB线缆连接调试UART端口和电脑,并打开串行通信程序进行控制台输出。
借助i.MX平台上运行的Linux®,您可以评估i.MX SoC提供的特殊功能:
i.MX板上有三个主要的能源管理技术:
Linux®安装后,如需了解开发用户空间应用的更多详情,请参见《i.MX6 Linux®参考手册》。
Linux®安装后,如需了解开发用户空间应用的更多详情,请参见《i.MX6 Linux®参考手册》。
Linux®安装后,如需了解开发用户空间应用的更多详情,请参见《i.MX6 Linux®参考手册》。
恩智浦《Yocto Project用户指南》涵盖了如何设置Linux®主机、如何运行并配置Yocto Project、生成镜像以及生成rootfs
如需了解更多详细,请参见恩智浦《Yocto Project用户指南》
i.MX 7Dual传感器演示是一个简单的演示程序,可使用恩智浦提供的FreeRTOS和一套驱动程序。它可以获取板当前的重力加速度、温度、高度和磁场强度。这个演示是为了展示,如何采用作为主设备的I2C驱动程序与其他I2C从设备进行通信。
在M4内核的第二个终端仿真器中,您应该看到一些文字显示“传感器示例正在运行”(如下所示)。选择一个传感器演示,并通过移动板或移动板附近有磁性的物品来影响给定的传感器。
-------------- 板上的iMX7D SDB传感器示例 --------------
请选择您要运行的传感器演示:
[1].FXAS21002 3轴陀螺仪传感器
[2].FXOS8700 6轴加速度传感器及磁力传感器
[3].MPL3115压力传感器
版本说明中所述的特性获得恩智浦实施的媒体框架OMXPlayer的支持。应用android_L5.1.1_2.0.0-ga_omxplayer_source.tar.gz软件包后,才提供这些特性。
OMXPlayer数据包仅包含无许可限制的编解码器。
i.MX 6Dual/Quad包括以下增强型特性:
i.MX 6SoloX包括以下增强型特性:
查看i.MX Android™扩展编解码器版本说明中的视频/音频/解码器/编码器
要安装OMXPlayer数据包,请执行以下步骤:
这一步生成了device/fsl-codec、external/fsl_imx_omx、lean_obj_before_building.sh和switch_build_to.sh。
$ source build/envsetup.sh
$ lunch # e.g., sabresd_6dq-user
$./switch_build_to.sh full
$./clean_obj_before_building.sh
$make
没问题!您的板是旧封装,闪存存储器中预装了不同的开箱即用演示。
您会看到RGB LED灯在红、蓝和绿三种颜色之间依次切换。您准备就绪时,可以进行下一步。
试着按步骤继续操作,获得板上运行的其他示例应用。如果仍有问题,请通过恩智浦网络社区与我们联系。
以下步骤将指导您运行hello_world应用。对于其他示例应用,这些步骤可能会略有不同,因为某些应用的路径可能会有额外的文件夹层级。
如果还未完成,在以下路径中打开所需应用的示例应用工作区:大多数示例应用工作区文件位于以下路径:
以hello_world演示为例,路径为:
从下拉列表中选择所需的构建目标。在这个例子中,选择"hello_world - Debug"目标。
为了构建演示应用,点击"Make"按钮(下文中用红色突出显示)。
构建将完成,并且不会报错。
FRDM-KE15Z板出厂时预装了mbed/CMSIS-DAP调试接口。如果您已经更改了板上的调试OpenSDA应用,请访问http://www.nxp.com/opensda了解如何更新板或将板恢复到出厂状态。
通过板上"SDAUSB" USB端口和PC USB接头之间的USB线缆,将开发平台连接到PC。
打开PC上的终端应用(如PuTTY或Tera Term),并连接到您之前确定的调试COM端口。采用以下设置配置终端:
点击"Download and Debug"按钮,将应用下载到目标。
然后,可将此应用下载到目标应用,并自动运行到main()函数。
点击"Go"按钮运行代码,以启动应用。
hello_world应用开始运行,标语显示在终端上。如未显示,请检查您的终端设置和连接。
安装MDK工具后,必须安装Cortex®微控制器软件接口标准(CMSIS)设备包,才能从调试角度来说完全支持该设备。这些设备包包括存储器映射信息、寄存器定义和闪存编程算法。按照这些步骤安装相应的CMSIS包。
打开名为µVision的MDK IDE。在IDE中,选择"Pack Installer"图标。
在Pack Installer (包安装程序)窗口,浏览至有Kinetis数据包的部分(这些数据包按字母顺序排列)。Kinetis包名以"Keil::Kinetis"开头,然后是MCU系列名称,例如"Keil::Kinetis_K60_DFP". 该示例采用FRDM-KE15Z平台,因此选择K60系列的设备包。点击设备包旁的"Install"按钮。此流程需要连接互联网才能完成。
安装完成后,关闭Pack Installer窗口并返回到µVision IDE。
遵循以下步骤运行hello_world应用。对于其他示例应用,这些步骤可能会略有不同,因为某些应用的路径可能会有额外的文件夹层级。
如果还未完成,在以下路径中打开所需的演示应用工作区:
此演示工作区文件名为
要构建演示项目,请选择"Rebuild"按钮,用红色突出显示。
构建将完成,并且不会报错。
FRDM-KE15Z板出厂时预装了mbed/CMSIS-DAP调试接口。如果您已经更改了板上的调试OpenSDA应用,请访问http://www.nxp.com/opensda了解如何更新板或将板恢复到出厂状态。
通过板上"SDAUSB" USB端口和PC USB接头之间的USB线缆,将开发平台连接到PC。
打开PC上的终端应用(如PuTTY或Tera Term),并连接到您之前确定的调试COM端口。采用以下设置配置终端:
应用构建完成后,点击"Download"按钮,将应用下载到目标。
点击"Download"按钮后,此应用下载到目标并开始运行。如需调试应用,请点击"Start/Stop Debug Session"按钮,用红色突出显示。
点击"Run"按钮运行代码,以启用应用。
hello_world应用开始运行,标语显示在终端上。如未显示,请检查您的终端设置和连接。
开始使用带KSDK的KDS IDE之前,建议您确保工具为最新版本。以下展示的步骤针对Windows版本的KDS,但对于Mac和Linux用户同样适用。
选择"Help" -> "Check for Updates"。
安装来自恩智浦的所有更新 – 这些由“com.NXP.xxx”或“com.nxp.xxx”来表示。工具链或调试接口可能也有更新。大多数情况下,安装这些额外的更新不会有问题,但这些更新不是KDS工具链发布的一部分,所以可能会引发问题。
以下步骤将指导您运行hello_world应用。对于其他示例应用,这些步骤可能会略有不同,因为某些应用的路径可能会有额外的文件夹层级。
注:
Linux和Mac操作系统所需的步骤与Windows相同。
从KDS IDE菜单选择"File->Import"。在显示的窗口中,展开"Project of Projects"文件夹并选择"Existing Project Sets"。然后,点击"Next"按钮。
点击"Import from file:"选项旁边的"Browse"按钮浏览。
指向以下路径的示例应用项目:
对于本指南,请选择以下位置:
指向正确目录后,您的"Import Working Sets and Projects"窗口显示如下图 。点击"Finish"按钮完成。
每个KSDK项目支持两种项目配置(构建目标):
选择适当的构建目标,"Debug"或"Release",方法是点击锤子图标旁的向下箭头,如下所示。在这个示例中,选择"Debug"目标。
选择构建目标后,平台库开始构建。未来重建该库时,只需点击锤子图标(假定选择同一构建目标)。
FRDM-KE15Z板出厂时预装了mbed/CMSIS-DAP调试接口。如果您已经更改了开发板上的调试OpenSDA应用,请访问http://www.nxp.com/opensda了解如何更新开发板或将开发板恢复到出厂状态。
注:
Mac用户必须安装J-Link OpenSDA应用,才能使用KDS IDE下载并调试板。
通过板上"SDAUSB" USB端口和PC USB接头之间的USB线缆,将开发平台连接到PC。
打开PC上的终端应用(如PuTTY或Tera Term),并连接到您之前确定的调试COM端口。采用以下设置配置终端:
以下命令仅适用于Linux操作系统用户,在终端运行。根据KDS IDE所需,将libudev安装到您的系统,以便启动调试器。
user@ubuntu:~$ sudo apt-get install libudev-dev libudev1
user@ubuntu:~$ sudo ln –s /usr/lib/x86_64-linux-gnu/libudev.so /usr/lib/x86_64-linux-gnu/libudev.so.0
确保调试器的配置与您想要连接的目标相符。这里指的是板的OpenSDA接口。如果您不确定板的型号,请参阅本对话框右上角所链接PDF的附录B。
要查看可用的调试器配置,点击绿色"Debug"按钮旁向下的小箭头,并选择"Debug Configurations"。
在Debug Configurations对话框中,选择与您正在使用的硬件平台对应的调试配置。对于Windows或Linux用户,选择OpenOCD For Mac用户下的mbed/CMSIS-DAP选项,并选择J-Link。
选择调试器接口,并点击"Debug"按钮启动调试器。
此应用下载到目标并自动运行到main()函数:
点击"Resume"按钮启动应用:
hello_world应用开始运行,标语显示在终端上。如未显示,请检查您的终端设置和连接。
本节包含采用Kinetis SDK支持的Arm GCC工具链构建并运行KSDK演示应用所需的必要组件的安装步骤。Arm GCC工具有许多使用方式,但此例主要演示其在Windows环境中的使用。虽然这里未讨论,但GCC工具还可与Linux操作系统和Mac OSX配套使用。
从launchpad.net/gcc-arm-embedded下载并运行安装程序。这是我们实际使用工具链(例如,编译器、链接器等)。GCC工具链应当对应最新的支持版本,参见Kinetis SDK版本说明。
Minimalist GNU for Windows (MinGW)开发工具提供了一套不依赖第三方C-Runtime DLL (如Cygwin)的工具。KSDK所用的构建环境无需使用MinGW Build工具,但充分利用了MinGW和MSYS的基础安装。MSYS为与Unix类似的接口和工具提供基本的Shell。
从sourceforge.net/projects/mingw/files/Installer/下载最新的MinGW mingw-get-setup安装程序。
运行安装程序。推荐的安装路径为C:\MinGW,但是,您可以将其安装到任何位置。
注:
此安装路径不包含任何空格。
确保在Basic Setup菜单下选择了"mingw32-base"和"msys-base"。
点击"Installation"菜单中的"Apply Changes",并按照其余指令完成安装。
添加相应项目到Windows操作系统的Path环境变量。在"Environment Variables..."部分的Control Panel -> System and Security -> System -> Advanced System Settings下可找到它。路径为:
假设默认安装路径为C:\MinGW,此例如下所示。如果路径设置不正确,工具链将不起作用。
注:
如果您的Path变量中包含"C:\MinGW\msys\x.x\bin" (根据KSDK 1.0.0要求),删除该路径以确保新的GCC构建系统正常工作。
创建新的系统环境变量并命名为ARMGCC_DIR。此变量的值应当指向Arm GCC嵌入式工具链安装路径,此例中的安装路径为:
C:\Program Files (x86)\GNU Tools Arm Embedded\4.9 2015q3
参考GNU Arm GCC嵌入式工具的安装文件夹,获得确切的安装路径名。
从www.cmake.org/cmake/resources/software.html下载CMake 3.0.x。
安装CMake,确保安装时选择"Add CMake to system PATH"选项。由用户选择是为所有用户还是只为当前用户将其安装到PATH。在这个示例中,假设为所有用户安装了此应用。
按照安装程序的其余指令操作。
可能需要重启系统,才能使PATH更改生效。
要构建示例应用,请按照这些步骤操作。
1.如果没有运行,则打开GCC Arm嵌入式工具链命令窗口。要启动窗口,需从Windows操作系统Start菜单进入"Programs -> GNU Tools ARM Embedded ",然后选择"GCC Command Prompt"。
将目录更改为示例应用项目目录,它有如下路径:
对于本指南,确切的路径为:
在命令行键入"build_debug.bat"或双击Windows操作系统Explorer中的"build_debug.bat"文件,执行构建。输出显示如图:
GCC工具需要J-Link调试接口。要将板上的OpenSDA固件更新为最新的J-Link应用,请访问www.nxp.com/opensda。安装J-Link OpenSDA应用后,从www.segger.com/downloads.html下载J-Link驱动程序和软件包。
通过板上"SDAUSB" USB端口和PC USB接头之间的USB线缆,将开发平台连接到PC。
打开PC上的终端应用(如PuTTY或Tera Term),并连接到您之前确定的调试COM端口。采用以下设置配置终端:
打开J-Link GDB服务器应用。假设已安装了J-Link软件,进入Windows操作系统Start菜单并选择"Programs -> SEGGER -> J-Link
修改设置,如下所示。这个示例中所选的目标设备为"MK64FN1M0xxx12",并使用SWD接口。
设备连接后,屏幕显示如图:
如果没有运行,则打开GCC Arm嵌入式工具链命令窗口。要启动窗口,需从Windows操作系统Start菜单进入"Programs -> GNU Tools ARM Embedded
更改为包含演示应用输出的目录。根据所选的构建目标,使用以下2个路径中的一个可以找到此输出:
对于本指南,路径为:
运行命令"arm-none-eabi-gdb.exe
运行以下命令:
此应用已下载成功并停留在复位矢量。执行"monitor go"命令来启动示例应用。
hello_world应用开始运行,标语显示在终端窗口上。
PuTTY是一款广受欢迎的终端仿真应用。此程序可用来显示从恩智浦开发平台的虚拟串行端口中发送的信息。
Tera Term是一款广受欢迎的开源终端仿真应用。此程序可用来显示从恩智浦开发平台的虚拟串行端口中发送的信息。