研發(fā)課堂丨OKMX8MQ-C開(kāi)發(fā)板SDK安裝指南
開(kāi)發(fā)環(huán)境是開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程當(dāng)中,所需的軟硬件平臺(tái)。開(kāi)發(fā)環(huán)境并不是一個(gè)固定的樣式,在本文中,我們將詳細(xì)講解一個(gè)嵌入式Linux開(kāi)發(fā)環(huán)境搭建的方法。溫馨提示:本文正文字?jǐn)?shù)3820,可提前收藏再做閱讀
您已經(jīng)對(duì)嵌入式開(kāi)發(fā)非常了解的話,可以按照自己的需求來(lái)搭建環(huán)境。如果和本手冊(cè)環(huán)境不一樣而產(chǎn)生報(bào)錯(cuò),您可以從國(guó)內(nèi)一些知名Linux論壇和網(wǎng)站搜索相關(guān)的信息來(lái)解決。本冊(cè)介紹的環(huán)境經(jīng)過(guò)飛凌的測(cè)試,如果對(duì)嵌入式開(kāi)發(fā)不是非常熟悉的朋友,希望您按照飛凌提供的方法來(lái)搭建環(huán)境。
注意:飛凌默認(rèn)提供的開(kāi)發(fā)環(huán)境中已經(jīng)默認(rèn)安裝交叉編譯工具鏈及Qtcreator桌面應(yīng)用程序,可以直接跳轉(zhuǎn)到第二部分,無(wú)需重新安裝。
版本說(shuō)明
操作系統(tǒng):Ubuntu18.0464位版 交叉工具鏈:aarch64-poky-linux-gcc
飛凌OKMX8MQ-linux-sdk包括兩部分,第一部分為編譯環(huán)境包,里面包含了交叉編譯器和sysroot,第二部分為源碼包,包括Linux內(nèi)核、文件系統(tǒng)、測(cè)試程序源碼以及一些工具等。
編譯之前,請(qǐng)執(zhí)行一下命令安裝必要的工具包。
$ 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 、安裝編譯環(huán)境
編譯環(huán)境是我們開(kāi)發(fā)過(guò)程中的基礎(chǔ),首先我們來(lái)安裝編譯環(huán)境。
創(chuàng)建工作目錄$ mkdir -p /home/forlinx/imx8mq
并將iMX8MQ用戶資料:
路徑:OKMX8MQ-C(Linux)用戶資料\工具\(yùn)交叉編譯工具\(yùn)fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh
拷貝到虛擬機(jī) /home/forlinx/imx8mq 目錄
$ cd /home/forlinx/imx8mq
$./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-5.4-zeus.sh
將安裝路徑設(shè)置保持默認(rèn),敲回車。
輸入“Y”進(jìn)行確認(rèn),等待安裝完成。
安裝完成后執(zhí)行
$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
設(shè)置環(huán)境變量。
并輸入
$ aarch64-poky-linux-gcc -v
檢查安裝是否成功。出現(xiàn)如下信息代表安裝成功。
注意:每當(dāng)重啟虛擬機(jī)或者打開(kāi)新的shell窗口都需要重新執(zhí)行設(shè)置環(huán)境變量。
NO.2、安裝源碼包
源碼包中包含了飛凌提供的iMX8MQ平臺(tái)的需要用到的源代碼,包括Linux內(nèi)核源碼、測(cè)試程序源碼、文件系統(tǒng)等,您可以在此基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)。
將iMX8MQ用戶資料:
路徑:OKMX8MQ-C(Linux)用戶資料\Linux\源碼\OK8MQ-linux-sdk.tar.bz2
拷貝到虛擬機(jī) /home/forlinx/imx8mq 目錄
$ cd /home/forlinx/imx8mq
$ tar xvf OK8MQ-linux-sdk.tar.bz2
編譯測(cè)試
NO.3、進(jìn)入iMX8MQ開(kāi)發(fā)板源碼目錄
$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk
? 全編譯測(cè)試
通過(guò)設(shè)置環(huán)境變量選擇編譯2GB內(nèi)存鏡像或4GB內(nèi)存鏡像
2GB內(nèi)存:
$ . environment-setup-sourcetree
4GB內(nèi)存:
$ . environment-4gddr-setup-sourcetree
然后,編譯:
$ make
編譯完成后,將在images生成鏡像文件。
? 單獨(dú)編譯內(nèi)核
編譯:$ make linux
注意:編譯時(shí),系統(tǒng)會(huì)自動(dòng)拷貝配置文件arch/arm64/configs/imx_v8_defconfig 覆蓋內(nèi)核根目錄的 .config 文件。
清除:$ make linux_clean
清除編譯linux內(nèi)核生成的文件
? 單獨(dú)編譯命令行測(cè)試程序
編譯:$ make cmd-examples
安裝:$ make cmd-examples_install
執(zhí)行完會(huì)將命令行測(cè)試程序安裝到文件系統(tǒng) /usr/bin/cmd 目錄
清除:$ make cmd-examples_clean
? 單獨(dú)編譯Qt測(cè)試程序
編譯:$makeqt-examples
安裝:$ make qt-examples_install
執(zhí)行完會(huì)將qt 測(cè)試程序安裝到文件系統(tǒng) /home/forlinx/qt B目錄
清除:$ make qt-examples_clean
NO.4、iMX8MQ開(kāi)發(fā)板Qt 開(kāi)發(fā)環(huán)境搭建及使用
飛凌提供的SDK中提供了Qt5.13.2的完整開(kāi)發(fā)環(huán)境(包含Qt Quick)。
? 手動(dòng)編譯
設(shè)置編譯環(huán)境變量:
$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
以飛凌提供的Qt官方串口測(cè)試程序?yàn)槔菔久钚?/span>Qt程序編譯方法:
$ cd /home/forlinx/imx8mq/appsrc/qt/
$ qmake
$ make
? Qt creator 環(huán)境搭建
注意:飛凌默認(rèn)提供的開(kāi)發(fā)環(huán)境中已經(jīng)默認(rèn)安裝交叉編譯工具鏈及Qt creator桌面應(yīng)用程序,可以直接跳轉(zhuǎn)到下一環(huán)節(jié),無(wú)需重新安裝。
路徑:OKMX8MQ-C(Linux)用戶資料\工具\(yùn)qt-creator-opensource-linux-x86_64-4.7.0.run
將qt-creator-opensource-linux-x86_64-4.1.0.run拷貝至當(dāng)前用戶家目錄下的任意目錄下,執(zhí)行:
$ ./qt-creator-opensource-linux-x86_64-4.7.0.run
將會(huì)彈出如下界面,點(diǎn)擊“Next”進(jìn)入下一步:
在如下界面中,點(diǎn)擊“Skip”進(jìn)入下一步(若虛擬機(jī)壓縮):
在如下界面中,點(diǎn)擊“Next”進(jìn)入下一步:
在如下界面中,點(diǎn)擊“Browse…”選擇Qtcreator的安裝路徑,選擇完成后,點(diǎn)擊“Next”進(jìn)入下一步:
在如下界面中,選中第一項(xiàng),點(diǎn)擊“Next”進(jìn)入下一步:
保持默認(rèn)設(shè)置,點(diǎn)擊“Next”:
點(diǎn)擊Install安裝:
安裝完成后,顯示如下界面,取消選項(xiàng)“Launch Qt Creator”的勾選,點(diǎn)擊“Finish”完成Qtcreator的安裝步驟:
執(zhí)行 :
$ cd /home/forlinx/qtcreator-4.7.0/bin/
$ ./qtcreator
啟動(dòng)Qt creator 程序,點(diǎn)擊Tools->options選項(xiàng)
進(jìn)入到Options界面,點(diǎn)擊左側(cè)“Kits”,然后點(diǎn)擊中部上方的“Compilers”選項(xiàng)卡,點(diǎn)擊右側(cè)“Add->GCC->C++”,如圖所示:
彈出如下窗口,Compiler path選項(xiàng)點(diǎn)Browser在SDK包中找到/opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/下找到“aarch64-poky-linux-g++”,選中后點(diǎn)擊Open,并將Name修改為“G++”。
按照同樣的方法添加GCC編譯器,點(diǎn)擊右側(cè)“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”,選中后點(diǎn)擊Open,并將Name修改為“GCC”。
點(diǎn)擊Debuggers選項(xiàng)卡,點(diǎn)擊Add彈出如下界面:
彈出如下窗口,在SDK包中找到/opt/fsl-imx-xwayland/5.4-zeus/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux下找到“aarch64-poky-linux-gdb”,選中后點(diǎn)擊Open,并將Name修改為“debuggers”。
點(diǎn)擊Qt Versions選項(xiàng)卡,點(diǎn)擊Add:
在/opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin的目錄下找到qmake,選中后點(diǎn)擊Open,添加后顯示如下,點(diǎn)擊Apply。
點(diǎn)擊Kits選項(xiàng)卡,點(diǎn)擊右側(cè)Add,添加一個(gè)新的Kits,按照下圖的內(nèi)容進(jìn)行修改點(diǎn)擊Apply。
? Qt creator 開(kāi)發(fā)示例
執(zhí)行
$ cd /home/forlinx/qtcreator-4.7.0/bin/
$ ./qtcreator
啟動(dòng)Qt creator 程序,進(jìn)入到qtcreator界面,點(diǎn)擊“New Project”新建一個(gè)工程:
選擇“Application”->“Qt Widgets Application”,然后點(diǎn)擊右下角的“Choose”:
在如下界面中為新建的工程修改名字為“HelloWorld”,選擇安裝路徑選擇/home/forlinx,然后點(diǎn)擊“Next”:
在如下界面中,選擇之前已添加過(guò)的“8mq”作為當(dāng)前工程的kit,然后點(diǎn)擊“Next”:
在如下界面中,修改類名“Class name”為“helloworld”,將基類“Base class”選擇為QMainWindow,然后點(diǎn)擊“Next”:
在如下界面中,點(diǎn)擊“Finish”,完成工程的新建:
新建工程創(chuàng)建完成,即可顯示如下窗口:
當(dāng)程序編寫完成后,點(diǎn)擊左下角的錘子圖標(biāo),即可進(jìn)行交叉編譯,將編譯好的可執(zhí)行程序HelloWorld拷貝到開(kāi)發(fā)板,即可進(jìn)行應(yīng)用的測(cè)試。
NO.5、使用UUU工具燒寫鏡像
UUU是一個(gè)命令行工具,可以用于在Linux或者Windows下燒寫鏡像到OKMX8MQ開(kāi)發(fā)板,下面分別介紹Linux和Windows下UUU工具的使用。
? Linux下UUU工具的使用
路徑:OKMX8MQ-C(Linux)用戶資料\Linux\工具\(yùn)uuu
將下載好的用戶資料中的可執(zhí)行文件uuu拷貝到 /usr/bin/ 目錄下并添加可執(zhí)行權(quán)限。將OTG線插入Linux主機(jī)的USB接口中。將撥碼開(kāi)關(guān)設(shè)置為OTG啟動(dòng),啟動(dòng)開(kāi)發(fā)板。
切換到 images 目錄
$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk/images
燒寫完整鏡像(u-boot、內(nèi)核和文件系統(tǒng))到eMMC:
$ sudo uuu -b emmc_all flash_sd_emmc.bin rootfs.sdcard
uuu其他指令使用示例:
單獨(dú)燒寫u-boot到eMMC:
$ sudo uuu -b emmc flash_sd_emmc.bin
注意:燒寫uboot的命令不能清除環(huán)境變量,要恢復(fù)默認(rèn)環(huán)境變量在uboot命令行輸入。
注意:2GB和4GB內(nèi)存燒寫的方法相同,將按照核心板的內(nèi)存大小編譯對(duì)應(yīng)的的鏡像
? Windows下UUU工具的使用
路徑:OKMX8MQ-C(Linux)用戶資料\Linux\工具\(yùn) uuu.exe
將iMX8MQ 開(kāi)發(fā)板用戶資料中的uuu.exe拷貝到C:\Windows\System32目錄。將OTG線插入Windows主機(jī)的USB接口中。
將對(duì)應(yīng)的鏡像(2GB內(nèi)存或4GB內(nèi)存)rootfs.sdcard拷貝到D盤uuu目錄,在Windows下運(yùn)行cmd程序,進(jìn)入鏡像文件所在的目錄,輸入如下命令即可燒錄完整鏡像:
D:\uuu> uuu.exe -b emmc_all flash_sd_emmc.bin rootfs.sdcard
uuu其他指令使用示例:
單獨(dú)燒寫u-boot到eMMC:
D:\uuu> uuu.exe -b emmc flash_sd_emmc.bin
注意1:
燒寫uboot的命令不能清除環(huán)境變量,要恢復(fù)默認(rèn)環(huán)境變量在uboot命令行輸入:
$ env default –a
$ savenv
注意2:第一次在windows平臺(tái)燒寫時(shí)由于windows沒(méi)有安裝相應(yīng)的驅(qū)動(dòng)程序可能會(huì)出現(xiàn)下圖的失敗情況:
一般情況下windows可以自動(dòng)搜索驅(qū)動(dòng)并安裝,等待驅(qū)動(dòng)安裝完成重新執(zhí)行燒寫命令即可,如果出現(xiàn)驅(qū)動(dòng)安裝失敗的情況,請(qǐng)按照下列步驟手動(dòng)安裝驅(qū)動(dòng)。
將用戶資料工具目錄的latest_usb_driver_windows.zip 拷貝到桌面并解壓。打開(kāi)windows設(shè)備管理器。
在“USB download gadget”上點(diǎn)擊鼠標(biāo)右鍵選擇“更新驅(qū)動(dòng)程序軟件”。
選擇“瀏覽計(jì)算機(jī)以查找驅(qū)動(dòng)程序軟件”,找到剛才在桌面解壓的驅(qū)動(dòng)程序文件夾。
點(diǎn)擊“下一步”
選擇“始終安裝此驅(qū)動(dòng)程序軟件”,等待安裝完成。
NO.6、燒寫TF卡的制作與使用
? 制作TF燒寫卡
OKMX8MQ 平臺(tái)支持TF卡燒寫,首先需要制作用于燒寫的TF卡,請(qǐng)使用8G及以上容量的正品TF卡來(lái)測(cè)試。
將 TF卡插入PC機(jī)并在虛擬機(jī)中打開(kāi),將TF卡燒錄工具sdfuse.tar.bz2復(fù)制到虛擬機(jī)中:
$ cp. /sdfuse.tar.bz2 /home/forlinx/imx8mq/
將編譯過(guò)程中產(chǎn)生的u-boot鏡像拷貝到當(dāng)前目錄,并進(jìn)入到目錄中:
$ tar -jxvf sdfuse.tar.bz2
$ cd sdfuse
開(kāi)始制作燒寫TF卡
$ sudo ./mksdcard8mq.sh
選擇TF卡設(shè)備,這里以“1”為例。
輸入“y”進(jìn)行確認(rèn)。
制作完成。
? 拷貝燒寫鏡像到TF燒寫卡
將燒寫鏡像rootfs.sdcard文件拷貝到TF卡的根目錄中。
下邊列舉出燒錄的文件含義:
文件 |
說(shuō)明 |
config.ini |
燒寫配置文件(默認(rèn)燒寫工具已經(jīng)添加) |
update.itb |
燒寫工具(默認(rèn)燒寫工具已經(jīng)添加) |
env.ini |
將額外的環(huán)境變量寫入uboot(可選) |
rootfs.sdcard |
鏡像包(必選,需客戶自行拷貝,拷貝時(shí)注意內(nèi)存配置是2GB還是4GB) |
注意:env.ini編寫方法見(jiàn)附錄2
? TF卡燒寫測(cè)試
關(guān)閉開(kāi)發(fā)板電源,將TF卡插入TF卡座中,并將啟動(dòng)撥碼設(shè)置到TF卡啟動(dòng)狀態(tài)。打開(kāi)電源開(kāi)關(guān),iMX8MQ開(kāi)發(fā)板將自動(dòng)啟動(dòng)進(jìn)入燒寫程序,可以在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顯示器上,選擇完成后,以后再進(jìn)行燒寫都會(huì)將燒寫結(jié)果顯示在所選擇的顯示上。
開(kāi)始燒寫后,觀察寫進(jìn)度請(qǐng)留意LCD上的打印信息,界面會(huì)提示燒寫完成。
也可以通過(guò)觀察底板上的LED燈來(lái)確認(rèn)燒寫進(jìn)度,開(kāi)始燒寫時(shí)LED1-4循環(huán)閃爍,燒寫完成后LED1-4同步閃爍。
點(diǎn)擊此處進(jìn)入飛凌嵌入式官網(wǎng)>>,了解關(guān)于FETMX8MQ-C核心板的更多信息。
相關(guān)產(chǎn)品 >
-
OKMX8MQ-C開(kāi)發(fā)板
飛凌嵌入式提供基于 NXP/Freescale iMX8、i.MX 8MQ處理器設(shè)計(jì)ARM核心板FETMX8MQ-C。i.MX8M處理器具有音頻、語(yǔ)音和視頻處理功能,飛凌iMX8核心板充分發(fā)揮NXP iMX8 系列 ARM 處理器性能,對(duì)功能做了優(yōu)化。提供10~15年產(chǎn)品長(zhǎng)期供貨計(jì)劃。工作環(huán)境溫度為-40℃~85℃,滿足工業(yè)及泛工業(yè)場(chǎng)景應(yīng)用。 了解詳情 -
FETMX8MQ-C核心板
基于 NXP/Freescale iMX8、 iMX8X、i.MX 8MQ處理器的ARM核心板。 四核ARM Cortex-A53 ,主頻最高1.3GHz,板載2GB RAM,8GB ROM;工作環(huán)境溫度為-40℃~85℃,滿足工業(yè)及泛工業(yè)場(chǎng)景應(yīng)用。i.MX8M處理器具有音頻、語(yǔ)音和視頻處理功能,提供高水平的音頻保真度,適用于無(wú)風(fēng)扇運(yùn)行,散熱系統(tǒng)成本低、電池壽命長(zhǎng)。具有高速接口可提供靈活連接等優(yōu)勢(shì),并且提供10~15年產(chǎn)品長(zhǎng)期供貨計(jì)劃。
了解詳情 -
OKMX8MP-C開(kāi)發(fā)板
內(nèi)置NPU、ISP,AI計(jì)算能力高達(dá)2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開(kāi)發(fā)板 基于高性能低功耗工業(yè)級(jí)iMX8MP核心板設(shè)計(jì),支持多種多種高速通信接口。iMX8MP開(kāi)發(fā)板內(nèi)置NPU,AI計(jì)算能力2.3TOPS,支持4K,支持雙圖像信號(hào)處理器(ISP),是一款支持LinuxQT/android操作系統(tǒng)的iMX8MP開(kāi)發(fā)板。
了解詳情 -
FETMX8MP-C核心板
iMX8MP核心板基于 NXP i.MX 8M Plus 處理器設(shè)計(jì), 采用4核Cortex-A53 和 Cortex-M7架構(gòu)。支持雙千兆網(wǎng)口,iMX8MP性能強(qiáng)勁最高運(yùn)行速率可達(dá)2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專注于機(jī)器學(xué)習(xí)和視覺(jué)、高級(jí)多媒體以及具有高可靠性的工業(yè)自動(dòng)化。它旨在滿足智慧家庭、樓宇、城市和工業(yè)4.0應(yīng)用的需求。飛凌iMX8MP核心板提供用戶手冊(cè),iMX8MP原理圖,引腳定義等。
了解詳情