研发课堂丨OKMX8MQ-C开发板SDK安装指南
开发环境是开发人员在开发过程当中,所需的软硬件平台。开发环境并不是一个固定的样式,在本文中,我们将详细讲解一个嵌入式Linux开发环境搭建的方法。温馨提示:本文正文字数3820,可提前收藏再做阅读
您已经对嵌入式开发非常了解的话,可以按照自己的需求来搭建环境。如果和本手册环境不一样而产生报错,您可以从国内一些知名Linux论坛和网站搜索相关的信息来解决。本册介绍的环境经过飞凌的测试,如果对嵌入式开发不是非常熟悉的朋友,希望您按照飞凌提供的方法来搭建环境。
注意:飞凌默认提供的开发环境中已经默认安装交叉编译工具链及Qtcreator桌面应用程序,可以直接跳转到第二部分,无需重新安装。
版本说明
操作系统:Ubuntu18.0464位版 交叉工具链:aarch64-poky-linux-gcc
飞凌OKMX8MQ-linux-sdk包括两部分,第一部分为编译环境包,里面包含了交叉编译器和sysroot,第二部分为源码包,包括Linux内核、文件系统、测试程序源码以及一些工具等。
编译之前,请执行一下命令安装必要的工具包。
$ sudo apt-get update
$ sudo apt-get install openssh-server vim git fakeroot make \
automake autoconf libtool libssl-dev bc \
dosfstools mtools parted iproute2 gcc kmod
NO.1 、安装编译环境
编译环境是我们开发过程中的基础,首先我们来安装编译环境。
创建工作目录$ mkdir -p /home/forlinx/imx8mq
并将iMX8MQ用户资料:
路径:OKMX8MQ-C(Linux)用户资料\工具\交叉编译工具\fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh
拷贝到虚拟机 /home/forlinx/imx8mq 目录
$ cd /home/forlinx/imx8mq
$./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh
将安装路径设置保持默认,敲回车。
输入“Y”进行确认,等待安装完成。
安装完成后执行
$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
设置环境变量。
并输入
$ aarch64-poky-linux-gcc -v
检查安装是否成功。出现如下信息代表安装成功。
注意:每当重启虚拟机或者打开新的shell窗口都需要重新执行设置环境变量。
NO.2、安装源码包
源码包中包含了飞凌提供的iMX8MQ平台的需要用到的源代码,包括Linux内核源码、测试程序源码、文件系统等,您可以在此基础上进行二次开发。
将iMX8MQ用户资料:
路径:OKMX8MQ-C(Linux)用户资料\Linux\源码\OK8MQ-linux-sdk.tar.bz2
拷贝到虚拟机 /home/forlinx/imx8mq 目录
$ cd /home/forlinx/imx8mq
$ tar xvf OK8MQ-linux-sdk.tar.bz2
编译测试
NO.3、进入iMX8MQ开发板源码目录
$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk
❶ 全编译测试
通过设置环境变量选择编译2GB内存镜像或4GB内存镜像
2GB内存:
$ . environment-setup-sourcetree
4GB内存:
$ . environment-4gddr-setup-sourcetree
然后,编译:
$ make
编译完成后,将在images生成镜像文件。
❷ 单独编译内核
编译:$ make linux
注意:编译时,系统会自动拷贝配置文件arch/arm64/configs/imx_v8_defconfig 覆盖内核根目录的 .config 文件。
清除:$ make linux_clean
清除编译linux内核生成的文件
❸ 单独编译命令行测试程序
编译:$ make cmd-examples
安装:$ make cmd-examples_install
执行完会将命令行测试程序安装到文件系统 /usr/bin/cmd 目录
清除:$ make cmd-examples_clean
❹ 单独编译Qt测试程序
编译:$makeqt-examples
安装:$ make qt-examples_install
执行完会将qt 测试程序安装到文件系统 /home/forlinx/qt B目录
清除:$ make qt-examples_clean
NO.4、iMX8MQ开发板Qt 开发环境搭建及使用
飞凌提供的SDK中提供了Qt5.13.2的完整开发环境(包含Qt Quick)。
❶ 手动编译
设置编译环境变量:
$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
以飞凌提供的Qt官方串口测试程序为例,演示命令行Qt程序编译方法:
$ cd /home/forlinx/imx8mq/appsrc/qt/
$ qmake
$ make
❷ Qt creator 环境搭建
注意:飞凌默认提供的开发环境中已经默认安装交叉编译工具链及Qt creator桌面应用程序,可以直接跳转到下一环节,无需重新安装。
路径:OKMX8MQ-C(Linux)用户资料\工具\qt-creator-opensource-linux-x86_64-4.7.0.run
将qt-creator-opensource-linux-x86_64-4.1.0.run拷贝至当前用户家目录下的任意目录下,执行:
$ ./qt-creator-opensource-linux-x86_64-4.7.0.run
将会弹出如下界面,点击“Next”进入下一步:
在如下界面中,点击“Skip”进入下一步(若虚拟机压缩):
在如下界面中,点击“Next”进入下一步:
在如下界面中,点击“Browse…”选择Qtcreator的安装路径,选择完成后,点击“Next”进入下一步:
在如下界面中,选中第一项,点击“Next”进入下一步:
保持默认设置,点击“Next”:
点击Install安装:
安装完成后,显示如下界面,取消选项“Launch Qt Creator”的勾选,点击“Finish”完成Qtcreator的安装步骤:
执行 :
$ cd /home/forlinx/qtcreator-4.7.0/bin/
$ ./qtcreator
启动Qt creator 程序,点击Tools->options选项
进入到Options界面,点击左侧“Kits”,然后点击中部上方的“Compilers”选项卡,点击右侧“Add->GCC->C++”,如图所示:
弹出如下窗口,Compiler path选项点Browser在SDK包中找到/opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/下找到“aarch64-poky-linux-g++”,选中后点击Open,并将Name修改为“G++”。
按照同样的方法添加GCC编译器,点击右侧“Add->GCC->C”,如图所示:
在SDK包中找到/opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc/下找到“aarch64-poky-linux-gcc”,选中后点击Open,并将Name修改为“GCC”。
点击Debuggers选项卡,点击Add弹出如下界面:
弹出如下窗口,在SDK包中找到/opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux下找到“aarch64-poky-linux-gdb”,选中后点击Open,并将Name修改为“debuggers”。
点击Qt Versions选项卡,点击Add:
在/opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin的目录下找到qmake,选中后点击Open,添加后显示如下,点击Apply。
点击Kits选项卡,点击右侧Add,添加一个新的Kits,按照下图的内容进行修改点击Apply。
❸ Qt creator 开发示例
执行
$ cd /home/forlinx/qtcreator-4.7.0/bin/
$ ./qtcreator
启动Qt creator 程序,进入到qtcreator界面,点击“New Project”新建一个工程:
选择“Application”->“Qt Widgets Application”,然后点击右下角的“Choose”:
在如下界面中为新建的工程修改名字为“HelloWorld”,选择安装路径选择/home/forlinx,然后点击“Next”:
在如下界面中,选择之前已添加过的“8mq”作为当前工程的kit,然后点击“Next”:
在如下界面中,修改类名“Class name”为“helloworld”,将基类“Base class”选择为QMainWindow,然后点击“Next”:
在如下界面中,点击“Finish”,完成工程的新建:
新建工程创建完成,即可显示如下窗口:
当程序编写完成后,点击左下角的锤子图标,即可进行交叉编译,将编译好的可执行程序HelloWorld拷贝到开发板,即可进行应用的测试。
NO.5、使用UUU工具烧写镜像
UUU是一个命令行工具,可以用于在Linux或者Windows下烧写镜像到OKMX8MQ开发板,下面分别介绍Linux和Windows下UUU工具的使用。
❶ Linux下UUU工具的使用
路径:OKMX8MQ-C(Linux)用户资料\Linux\工具\uuu
将下载好的用户资料中的可执行文件uuu拷贝到 /usr/bin/ 目录下并添加可执行权限。将OTG线插入Linux主机的USB接口中。将拨码开关设置为OTG启动,启动开发板。
切换到 images 目录
$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk/images
烧写完整镜像(u-boot、内核和文件系统)到eMMC:
$ sudo uuu -b emmc_all flash_sd_emmc.bin rootfs.sdcard
uuu其他指令使用示例:
单独烧写u-boot到eMMC:
$ sudo uuu -b emmc flash_sd_emmc.bin
注意:烧写uboot的命令不能清除环境变量,要恢复默认环境变量在uboot命令行输入。
注意:2GB和4GB内存烧写的方法相同,将按照核心板的内存大小编译对应的的镜像
❷ Windows下UUU工具的使用
路径:OKMX8MQ-C(Linux)用户资料\Linux\工具\ uuu.exe
将iMX8MQ 开发板用户资料中的uuu.exe拷贝到C:\Windows\System32目录。将OTG线插入Windows主机的USB接口中。
将对应的镜像(2GB内存或4GB内存)rootfs.sdcard拷贝到D盘uuu目录,在Windows下运行cmd程序,进入镜像文件所在的目录,输入如下命令即可烧录完整镜像:
D:\uuu> uuu.exe -b emmc_all flash_sd_emmc.bin rootfs.sdcard
uuu其他指令使用示例:
单独烧写u-boot到eMMC:
D:\uuu> uuu.exe -b emmc flash_sd_emmc.bin
注意1:
烧写uboot的命令不能清除环境变量,要恢复默认环境变量在uboot命令行输入:
$ env default –a
$ savenv
注意2:第一次在windows平台烧写时由于windows没有安装相应的驱动程序可能会出现下图的失败情况:
一般情况下windows可以自动搜索驱动并安装,等待驱动安装完成重新执行烧写命令即可,如果出现驱动安装失败的情况,请按照下列步骤手动安装驱动。
将用户资料工具目录的latest_usb_driver_windows.zip 拷贝到桌面并解压。打开windows设备管理器。
在“USB download gadget”上点击鼠标右键选择“更新驱动程序软件”。
选择“浏览计算机以查找驱动程序软件”,找到刚才在桌面解压的驱动程序文件夹。
点击“下一步”
选择“始终安装此驱动程序软件”,等待安装完成。
NO.6、烧写TF卡的制作与使用
❶ 制作TF烧写卡
OKMX8MQ 平台支持TF卡烧写,首先需要制作用于烧写的TF卡,请使用8G及以上容量的正品TF卡来测试。
将 TF卡插入PC机并在虚拟机中打开,将TF卡烧录工具sdfuse.tar.bz2复制到虚拟机中:
$ cp. /sdfuse.tar.bz2 /home/forlinx/imx8mq/
将编译过程中产生的u-boot镜像拷贝到当前目录,并进入到目录中:
$ tar -jxvf sdfuse.tar.bz2
$ cd sdfuse
开始制作烧写TF卡
$ sudo ./mksdcard8mq.sh
选择TF卡设备,这里以“1”为例。
输入“y”进行确认。
制作完成。
❷ 拷贝烧写镜像到TF烧写卡
将烧写镜像rootfs.sdcard文件拷贝到TF卡的根目录中。
下边列举出烧录的文件含义:
文件 |
说明 |
config.ini |
烧写配置文件(默认烧写工具已经添加) |
update.itb |
烧写工具(默认烧写工具已经添加) |
env.ini |
将额外的环境变量写入uboot(可选) |
rootfs.sdcard |
镜像包(必选,需客户自行拷贝,拷贝时注意内存配置是2GB还是4GB) |
注意:env.ini编写方法见附录2
❸ TF卡烧写测试
关闭开发板电源,将TF卡插入TF卡座中,并将启动拨码设置到TF卡启动状态。打开电源开关,iMX8MQ开发板将自动启动进入烧写程序,可以在uboot选择显示:
Press SPACE to abort autoboot in 1 seconds
## forlinx params set menu ...
--------------------------
0:reboot
1:exit to shell
2:MIPI7-lcdif
3:MIPI7-dcss
4:HDMI
--------------------------
可以选择2或4,分别显示在7寸mipi或者hdmi显示器上,选择完成后,以后再进行烧写都会将烧写结果显示在所选择的显示上。
开始烧写后,观察写进度请留意LCD上的打印信息,界面会提示烧写完成。
也可以通过观察底板上的LED灯来确认烧写进度,开始烧写时LED1-4循环闪烁,烧写完成后LED1-4同步闪烁。
点击此处进入飞凌嵌入式官网>>,了解关于FETMX8MQ-C核心板的更多信息。
相关产品 >
-
OKMX8MQ-C开发板
飞凌嵌入式提供基于 NXP/Freescale iMX8、i.MX 8MQ处理器设计ARM核心板FETMX8MQ-C。i.MX8M处理器具有音频、语音和视频处理功能,飞凌iMX8核心板充分发挥NXP iMX8 系列 ARM 处理器性能,对功能做了优化。提供10~15年产品长期供货计划。工作环境温度为-40℃~85℃,满足工业及泛工业场景应用。 了解详情 -
FETMX8MQ-C核心板
基于 NXP/Freescale iMX8、 iMX8X、i.MX 8MQ处理器的ARM核心板。 四核ARM Cortex-A53 ,主频最高1.3GHz,板载2GB RAM,8GB ROM;工作环境温度为-40℃~85℃,满足工业及泛工业场景应用。i.MX8M处理器具有音频、语音和视频处理功能,提供高水平的音频保真度,适用于无风扇运行,散热系统成本低、电池寿命长。具有高速接口可提供灵活连接等优势,并且提供10~15年产品长期供货计划。
了解详情 -
OKMX8MP-C开发板
内置NPU、ISP,AI计算能力高达2.3TOPS|飞凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 开发板 基于高性能低功耗工业级iMX8MP核心板设计,支持多种多种高速通信接口。iMX8MP开发板内置NPU,AI计算能力2.3TOPS,支持4K,支持双图像信号处理器(ISP),是一款支持LinuxQT/android操作系统的iMX8MP开发板。
了解详情 -
FETMX8MP-C核心板
iMX8MP核心板基于 NXP i.MX 8M Plus 处理器设计, 采用4核Cortex-A53 和 Cortex-M7架构。支持双千兆网口,iMX8MP性能强劲最高运行速率可达2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列专注于机器学习和视觉、高级多媒体以及具有高可靠性的工业自动化。它旨在满足智慧家庭、楼宇、城市和工业4.0应用的需求。飞凌iMX8MP核心板提供用户手册,iMX8MP原理图,引脚定义等。
了解详情