研發課堂丨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原理圖,引腳定義等。
了解詳情