研發(fā)課堂丨OKMX8MQ-C開發(fā)板SDK安裝指南

原創(chuàng) 2020-12-07 11:01:00 iMX8MQ imx8 i.mx8

開發(fā)環(huán)境是開發(fā)人員在開發(fā)過程當(dāng)中,所需的軟硬件平臺。開發(fā)環(huán)境并不是一個(gè)固定的樣式,在本文中,我們將詳細(xì)講解一個(gè)嵌入式Linux開發(fā)環(huán)境搭建的方法。溫馨提示:本文正文字?jǐn)?shù)3820,可提前收藏再做閱讀

您已經(jīng)對嵌入式開發(fā)非常了解的話,可以按照自己的需求來搭建環(huán)境。如果和本手冊環(huán)境不一樣而產(chǎn)生報(bào)錯(cuò),您可以從國內(nèi)一些知名Linux論壇和網(wǎng)站搜索相關(guān)的信息來解決。本冊介紹的環(huán)境經(jīng)過飛凌的測試,如果對嵌入式開發(fā)不是非常熟悉的朋友,希望您按照飛凌提供的方法來搭建環(huán)境。

注意:飛凌默認(rèn)提供的開發(fā)環(huán)境中已經(jīng)默認(rèn)安裝交叉編譯工具鏈及Qtcreator桌面應(yīng)用程序,可以直接跳轉(zhuǎn)到第二部分,無需重新安裝。

 

版本說明 

操作系統(tǒng):Ubuntu18.0464位版 交叉工具鏈:aarch64-poky-linux-gcc

飛凌OKMX8MQ-linux-sdk包括兩部分,第一部分為編譯環(huán)境包,里面包含了交叉編譯器和sysroot第二部分為源碼包,包括Linux內(nèi)核、文件系統(tǒ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)境是我們開發(fā)過程中的基礎(chǔ),首先我們來安裝編譯環(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ī)或者打開新的shell窗口都需要重新執(zhí)行設(shè)置環(huán)境變量。


NO.2、安裝源碼包

源碼包中包含了飛凌提供的iMX8MQ平臺的需要用到的源代碼,包括Linux內(nèi)核源碼、測試程序源碼、文件系統(tǒng)等,您可以在此基礎(chǔ)上進(jìn)行二次開發(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

 

 

編譯測試

 

NO.3、進(jìn)入iMX8MQ開發(fā)板源碼目錄

$ cd /home/forlinx/imx8mq/OK8MQ-linux-sdk

? 全編譯測試

通過設(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)會自動拷貝配置文件arch/arm64/configs/imx_v8_defconfig 覆蓋內(nèi)核根目錄的 .config 文件。

清除:$ make linux_clean

清除編譯linux內(nèi)核生成的文件

 

? 單獨(dú)編譯命令行測試程序

編譯:$ make cmd-examples

 

安裝:$ make cmd-examples_install

 

執(zhí)行完會將命令行測試程序安裝到文件系統(tǒng) /usr/bin/cmd 目錄

清除:$ make cmd-examples_clean

 

? 單獨(dú)編譯Qt測試程序

編譯:$makeqt-examples

 

安裝:$ make qt-examples_install

 

執(zhí)行完會將qt 測試程序安裝到文件系統(tǒng) /home/forlinx/qt  B目錄

清除:$ make qt-examples_clean

 

NO.4、iMX8MQ開發(fā)板Qt 開發(fā)環(huán)境搭建及使用

飛凌提供的SDK中提供了Qt5.13.2的完整開發(fā)環(huán)境(包含Qt Quick)。

? 手動編譯

設(shè)置編譯環(huán)境變量:

$. /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux

以飛凌提供的Qt官方串口測試程序?yàn)槔?,演示命令?/span>Qt程序編譯方法:

$ cd /home/forlinx/imx8mq/appsrc/qt/

$ qmake

$ make

?  Qt creator 環(huán)境搭建

注意:飛凌默認(rèn)提供的開發(fā)環(huán)境中已經(jīng)默認(rèn)安裝交叉編譯工具鏈及Qt creator桌面應(yīng)用程序,可以直接跳轉(zhuǎn)到下一環(huán)節(jié),無需重新安裝。

 

路徑: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

將會彈出如下界面,點(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

啟動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)BrowserSDK包中找到/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 開發(fā)示例

執(zhí)行

$ cd /home/forlinx/qtcreator-4.7.0/bin/

$ ./qtcreator

啟動Qt creator 程序,進(jìn)入到qtcreator界面,點(diǎn)擊“New Project”新建一個(gè)工程:

 

選擇“Application”->Qt Widgets Application”,然后點(diǎn)擊右下角的“Choose”:

 

在如下界面中為新建的工程修改名字為HelloWorld”,選擇安裝路徑選擇/home/forlinx,然后點(diǎn)擊Next”:

 

在如下界面中,選擇之前已添加過的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拷貝到開發(fā)板,即可進(jìn)行應(yīng)用的測試。


NO.5、使用UUU工具燒寫鏡像

UUU是一個(gè)命令行工具,可以用于在Linux或者Windows下燒寫鏡像到OKMX8MQ開發(fā)板,下面分別介紹LinuxWindowsUUU工具的使用。

?  LinuxUUU工具的使用

 

路徑:OKMX8MQ-C(Linux)用戶資料\Linux\工具\(yùn)uuu

 

將下載好的用戶資料中的可執(zhí)行文件uuu拷貝到 /usr/bin/ 目錄下并添加可執(zhí)行權(quán)限。將OTG線插入Linux主機(jī)的USB接口中。將撥碼開關(guān)設(shè)置為OTG啟動,啟動開發(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-booteMMC:

$ sudo uuu -b emmc flash_sd_emmc.bin

注意:燒寫uboot的命令不能清除環(huán)境變量,要恢復(fù)默認(rèn)環(huán)境變量在uboot命令行輸入。

注意:2GB4GB內(nèi)存燒寫的方法相同,將按照核心板的內(nèi)存大小編譯對應(yīng)的的鏡像

?  WindowsUUU工具的使用

 

路徑:OKMX8MQ-C(Linux)用戶資料\Linux\工具\(yùn) uuu.exe

 

iMX8MQ 開發(fā)板用戶資料中的uuu.exe拷貝到C:\Windows\System32目錄。將OTG線插入Windows主機(jī)的USB接口中。

將對應(yīng)的鏡像(2GB內(nèi)存或4GB內(nèi)存)rootfs.sdcard拷貝到Duuu目錄,在Windows下運(yùn)行cmd程序,進(jìn)入鏡像文件所在的目錄,輸入如下命令即可燒錄完整鏡像:

D:\uuu> uuu.exe -b emmc_all flash_sd_emmc.bin rootfs.sdcard

 

uuu其他指令使用示例:

單獨(dú)燒寫u-booteMMC:

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平臺燒寫時(shí)由于windows沒有安裝相應(yīng)的驅(qū)動程序可能會出現(xiàn)下圖的失敗情況:

 

一般情況下windows可以自動搜索驅(qū)動并安裝,等待驅(qū)動安裝完成重新執(zhí)行燒寫命令即可,如果出現(xiàn)驅(qū)動安裝失敗的情況,請按照下列步驟手動安裝驅(qū)動。

將用戶資料工具目錄的latest_usb_driver_windows.zip 拷貝到桌面并解壓。打開windows設(shè)備管理器。

 

“USB download gadget”上點(diǎn)擊鼠標(biāo)右鍵選擇“更新驅(qū)動程序軟件”。

 

選擇“瀏覽計(jì)算機(jī)以查找驅(qū)動程序軟件”,找到剛才在桌面解壓的驅(qū)動程序文件夾。

 

點(diǎn)擊“下一步”

 

選擇“始終安裝此驅(qū)動程序軟件”,等待安裝完成。

 


NO.6、燒寫TF卡的制作與使用


? 制作TF燒寫卡

OKMX8MQ 平臺支持TF卡燒寫,首先需要制作用于燒寫的TF卡,請使用8G及以上容量的正品TF卡來測試。

TF卡插入PC機(jī)并在虛擬機(jī)中打開,將TF卡燒錄工具sdfuse.tar.bz2復(fù)制到虛擬機(jī)中:

$ cp. /sdfuse.tar.bz2 /home/forlinx/imx8mq/

將編譯過程中產(chǎn)生的u-boot鏡像拷貝到當(dāng)前目錄,并進(jìn)入到目錄中:

$ tar -jxvf sdfuse.tar.bz2

$ cd sdfuse

開始制作燒寫TF

$ sudo ./mksdcard8mq.sh

 

選擇TF卡設(shè)備,這里以“1”為例。

 

輸入y”進(jìn)行確認(rèn)。

 

制作完成。

? 拷貝燒寫鏡像到TF燒寫卡

將燒寫鏡像rootfs.sdcard文件拷貝到TF卡的根目錄中。

下邊列舉出燒錄的文件含義:

 

文件

說明

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編寫方法見附錄2

? TF卡燒寫測試

關(guān)閉開發(fā)板電源,將TF卡插入TF卡座中,并將啟動撥碼設(shè)置到TF卡啟動狀態(tài)。打開電源開關(guān),iMX8MQ開發(fā)板將自動啟動進(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

--------------------------

可以選擇24,分別顯示在7mipi或者hdmi顯示器上,選擇完成后,以后再進(jìn)行燒寫都會將燒寫結(jié)果顯示在所選擇的顯示上。

開始燒寫后,觀察寫進(jìn)度請留意LCD上的打印信息,界面會提示燒寫完成。

 

也可以通過觀察底板上的LED燈來確認(rèn)燒寫進(jìn)度,開始燒寫時(shí)LED1-4循環(huán)閃爍,燒寫完成后LED1-4同步閃爍。

點(diǎn)擊此處進(jìn)入飛凌嵌入式官網(wǎng)>>,了解關(guān)于FETMX8MQ-C核心板的更多信息。

相關(guān)產(chǎn)品 >

  • OKMX8MQ-C開發(fā)板

    飛凌嵌入式提供基于 NXP/Freescale iMX8、i.MX 8MQ處理器設(shè)計(jì)ARM核心板FETMX8MQ-C。i.MX8M處理器具有音頻、語音和視頻處理功能,飛凌iMX8核心板充分發(fā)揮NXP iMX8 系列 ARM 處理器性能,對功能做了優(yōu)化。提供10~15年產(chǎn)品長期供貨計(jì)劃。工作環(huán)境溫度為-40℃~85℃,滿足工業(yè)及泛工業(yè)場景應(yīng)用。 了解詳情
    OKMX8MQ-C開發(fā)板
  • 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è)場景應(yīng)用。i.MX8M處理器具有音頻、語音和視頻處理功能,提供高水平的音頻保真度,適用于無風(fēng)扇運(yùn)行,散熱系統(tǒng)成本低、電池壽命長。具有高速接口可提供靈活連接等優(yōu)勢,并且提供10~15年產(chǎn)品長期供貨計(jì)劃。
    了解詳情
    FETMX8MQ-C核心板
  • OKMX8MP-C開發(fā)板

    內(nèi)置NPU、ISP,AI計(jì)算能力高達(dá)2.3TOPS|飛凌嵌入式i.MX8MP 系列-NXP iMX8M Plus 開發(fā)板 基于高性能低功耗工業(yè)級iMX8MP核心板設(shè)計(jì),支持多種多種高速通信接口。iMX8MP開發(fā)板內(nèi)置NPU,AI計(jì)算能力2.3TOPS,支持4K,支持雙圖像信號處理器(ISP),是一款支持LinuxQT/android操作系統(tǒng)的iMX8MP開發(fā)板。

    了解詳情
    OKMX8MP-C開發(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í)和視覺、高級多媒體以及具有高可靠性的工業(yè)自動化。它旨在滿足智慧家庭、樓宇、城市和工業(yè)4.0應(yīng)用的需求。飛凌iMX8MP核心板提供用戶手冊,iMX8MP原理圖,引腳定義等。
    了解詳情
    FETMX8MP-C核心板

推薦閱讀 換一批 換一批