1. 概述
Qt 是一個(gè)跨平臺(tái)的圖形應(yīng)用開(kāi)發(fā)框架,被應(yīng)用在不同尺寸設(shè)備和平臺(tái)上,同時(shí)提供不同版權(quán)版本供用戶選擇。米爾 NXP i.MX 93 開(kāi)發(fā)板(MYD-LMX9X開(kāi)發(fā)板)使用 Qt6.5 版本進(jìn)行應(yīng)用開(kāi)發(fā)。在 Qt 應(yīng)用開(kāi)發(fā)中,推薦使用 QtCreator 集成開(kāi)發(fā)環(huán)境,可以在 Linux PC 下開(kāi)發(fā) Qt 應(yīng)用,自動(dòng)化地交叉編譯為開(kāi)發(fā)板的 ARM 架構(gòu)。
本章使用 Yocto 構(gòu)建的 SDK 工具作為交叉編譯系統(tǒng),配合 QtCreator 快速開(kāi)發(fā)圖形類(lèi)應(yīng)用程序。
2. 硬件資源
米爾 NXP i.MX 93 開(kāi)發(fā)板(MYD-LMX9X開(kāi)發(fā)板)
3. 軟件資源
ubuntu 20.04 64bit
Qt6.5
交叉編譯鏈
4. 環(huán)境準(zhǔn)備
需要 ubuntu 桌面系統(tǒng),后續(xù)均在 ubuntu 20.04 64bit 版本下操作,桌面系統(tǒng)請(qǐng)自行安裝。
5. 安裝Qt6.5
從Qt下載官網(wǎng)https://download.qt.io/archive/online_installers/4.5/下載 qt-unified-linux-x64-4.5.2-online.run 安裝包。
- 安裝 Qt 所需要的庫(kù)
在安裝 QtCreator 之前需要對(duì)主機(jī)的環(huán)境進(jìn)行配置,請(qǐng)安裝下列資源包
sudo apt-get update
sudo apt install --reinstall libxcb-xinerama0
sudo apt install cmake build-essential libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev cmake
- 將安裝包放到 Ubuntu 下運(yùn)行
sudo chmod 777 qt-unified-linux-x64-4.5.2-online.run
./qt-unified-linux-x64-4.5.2-online.run --mirror https://mirrors.tuna.tsinghua.edu.cn/qt
- 登錄
運(yùn)行命令后進(jìn)入安裝界面,填入賬號(hào),如若沒(méi)注冊(cè)需要先自行注冊(cè)。
圖5-1. 輸入賬號(hào)密碼
- 選擇
開(kāi)發(fā)者可選擇個(gè)人開(kāi)發(fā)者。
圖5-2. 選擇開(kāi)發(fā)者
- 禁止發(fā)送
選擇禁止發(fā)送反饋內(nèi)容。
圖5-3. 選擇禁止發(fā)送
- 選擇安裝路徑
選擇安裝路徑,建議安裝在目錄/opt 下。
圖5-4. 安裝路徑
- 選擇安裝內(nèi)容
因?yàn)槲覀冃枰惭b6.5版本,所以需要勾選以下內(nèi)容。
圖5-5. 選擇安裝內(nèi)容
- 安裝
選擇好安裝內(nèi)容好連續(xù)點(diǎn)擊下一步到安裝頁(yè)面。
圖5-6. 等待安裝完成
6. 配置交叉編譯環(huán)境
1)打開(kāi) QtCreator,請(qǐng)從終端執(zhí)行"qtcreator.sh"來(lái)啟動(dòng) QtCreator,參考如下:
2)如果運(yùn)行失敗則需要安裝插件,命令如下
3)再次運(yùn)行成功,出現(xiàn)選項(xiàng)對(duì)話框,點(diǎn)擊 Edit ,繼續(xù)點(diǎn)擊 Preferences ,在 Kits 欄選擇 Compilers 標(biāo)簽,如下圖所示。
圖6-1. 配置Compilers
4)點(diǎn)擊右側(cè) Add ,彈出下拉列表后,選擇 GCC->C++ ,在下面填寫(xiě)"Name"為"LMX9X- G++","Compiler path"點(diǎn)擊旁邊的"Browse.."按鈕選擇到 aarch64-poky-linux-g++ 的路徑,例子中的路徑是"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++"。(此為米爾提供的編譯鏈,詳情請(qǐng)查看《MYD-LMX9X_Linux軟件開(kāi)發(fā)指南》2.2章節(jié))填寫(xiě)完成后,點(diǎn)擊"Apply"
圖6-2. 配置GCC
5)選擇"Debuggers"標(biāo)簽,在右側(cè)點(diǎn)擊"Add",在name處輸入"93-gdb",在path選擇路徑為/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gdb,填寫(xiě)完成后點(diǎn)擊"Apply",如圖6-3。
圖6-3. 配置Debugger
6)選擇"Qt Version"標(biāo)簽,在右側(cè)點(diǎn)擊"Add",會(huì)彈出 qmake 路徑選擇對(duì)話框,這里以"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/qmake"為例子。選擇"qmake"文件后,點(diǎn)擊"Open"按鈕。"Version name"改為"Qt %{Qt:Version} (LM93-sytem)"。然后點(diǎn)擊"Apply"按鈕。
圖6-4. 選擇qmake
7) 選擇左側(cè)"Device",點(diǎn)擊右邊的"Add"按鈕,填寫(xiě)內(nèi)容"Name"為"MYIR-LM93-Board","Host name"為開(kāi)發(fā)板的 IP 地址(可以暫時(shí)填寫(xiě)任意一個(gè)址),"Username"為"root",然后擊"Apply"。(此項(xiàng)為可選項(xiàng))
圖6-5. 選擇開(kāi)發(fā)板
8) 點(diǎn)擊左側(cè)"Build & Run"回到"Kits"標(biāo)簽下,"Name"設(shè)置為"LM93-dev-kit","Device"選擇"MYD-LM93-Board"選項(xiàng)了。"Sysroot"選擇目標(biāo)設(shè)備的系統(tǒng)目錄,這里以"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux"例。"Compiler"選擇之前配置的名稱(chēng)"93-GCC","Qt version"選擇之前配置的名稱(chēng)"Qt6.5.0 (LM93-System)","Qtmkspec"填寫(xiě)為"linux-oe-g++"。其它默認(rèn)即可,最后點(diǎn)擊"Apply"和"OK"按鈕。
圖6-6. Kits配置
9)將 MXAPP-Qt6.tar.gz 拷貝到 Ubuntu 下的一個(gè)工作目錄中并解壓出源代碼。配置為相應(yīng)的編譯工具套件,就可以編譯此例程。在菜單欄選擇"File"->"Open File or Project",在打開(kāi)的對(duì)話框中,瀏覽到"mxcpp"例程的目錄下,選擇"mxcpp.pro"文件,點(diǎn)擊"Open"按鈕。項(xiàng)目打開(kāi)后,在左側(cè)菜單列中,選擇"Projects"圖標(biāo),右側(cè)界面切換為 manage kits 管理界面,在"Build & Run"標(biāo)簽下,選擇"LM93"選項(xiàng)的 kit,這樣項(xiàng)目就會(huì)使用"LM93 "的相關(guān)配置 kit 構(gòu)建應(yīng)用。然后右鍵選擇"mxapp2"點(diǎn)擊 Build 。
圖6-7. 開(kāi)始編譯
圖6-8. 編譯完成
QtCreator 構(gòu)建 mxapp 項(xiàng)目后,編譯好的二進(jìn)制文件存放在指定的目錄下。然后將 mxapp 文件拷貝到開(kāi)發(fā)板下運(yùn)行即可
圖6-9. 保存路徑
7. 參考資料
- 下載桌面版Ubuntu
https://ubuntu.com/download/desktop
- QT開(kāi)發(fā)指導(dǎo)
https://www.qt.io/
MYC-LMX9X核心板及開(kāi)發(fā)板
- NXP i.MX 93重新定義入門(mén)級(jí)嵌入式CPU模組
- 2*Cortex-A55@1.7GHz+Cortex-M33@250MHz,滿足高性能和實(shí)時(shí)性需求;
- 集成0.5 TOPS NPU,賦能低成本輕量級(jí)AI應(yīng)用;
- 支持2路千兆以太網(wǎng)接口(1路支持TSN)、 2路 CAN FD接口、 2個(gè) USB2.0接口、8個(gè)UART接口、8個(gè)I2C、8個(gè)SPI、2個(gè)I3C;
- 豐富的顯示接口LVDS/MIPI DSI/24Bit RGB,支持1080p60顯示;
- 攝像頭支持MIPI CSI、Parallel CSI接口;
- 工業(yè)級(jí)-40℃~+85℃,尺寸37mm*39mm,LGA 218PIN設(shè)計(jì)
- 應(yīng)用:充電樁、能源電力、醫(yī)療器械、工業(yè)HMI、運(yùn)動(dòng)控制器、工業(yè)顯控一體。