QT是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架。它既可以開(kāi)發(fā)GUI圖形用戶界面程序,也可用于開(kāi)發(fā)非GUI程序,比如控制臺(tái)工具和服務(wù)器。由于QT良好的跨平臺(tái)特性,基本上不做修改就可以在Windows或Linux或嵌入式設(shè)備上實(shí)現(xiàn)同樣的界面。Linux操作系統(tǒng)是嵌入式的主力軍,廣泛應(yīng)用于消費(fèi)類電子、工業(yè)控制、電信?/?網(wǎng)絡(luò)?/?通訊、汽車電子、醫(yī)療設(shè)備、儀器儀表等相關(guān)行業(yè),這也正好符合AMD FPGA的應(yīng)用方向,本篇主要介紹如何在AMD的SOC器件上進(jìn)行QT的開(kāi)發(fā)調(diào)試。
基于AMD SOC的QT應(yīng)用程序開(kāi)發(fā)方法主要有兩種方式:一種方式是基于petalinux工程新建一個(gè)application將源碼導(dǎo)入在使用petalinux-build進(jìn)行編譯部署,另一種方式是PC端進(jìn)行開(kāi)發(fā)調(diào)試再使用AMD交叉編譯工具進(jìn)行編譯生成SOC的二進(jìn)制代碼再放到petalinux工程進(jìn)行打包或者直接下載到SOC端進(jìn)行運(yùn)行調(diào)試,本文主要介紹第二種方式,因?yàn)榛赑C端進(jìn)行界面開(kāi)發(fā)或邏輯調(diào)試時(shí)可以用PC的桌面編譯器先進(jìn)行調(diào)試,然后再切換AMD編譯器生成SOC的應(yīng)用程序用于部署,這種方式對(duì)于開(kāi)發(fā)調(diào)試更加友好。
一、安裝QT開(kāi)發(fā)環(huán)境
選擇相應(yīng)用的版本和操作系統(tǒng)進(jìn)行下載安裝文件進(jìn)行安裝:
二、Petalinux生成SDK包
由于獲取AMD交叉編譯工具鏈需要用Petalinux構(gòu)建SDK,SDK也就是軟件開(kāi)發(fā)工具集,與Petalinux構(gòu)建的根文件系統(tǒng)息息相關(guān),里面不僅包含有Petalinux構(gòu)建的根文件系統(tǒng),各種庫(kù)和頭文件,還包含linux交叉編譯工具鏈,比如QT Creator中需要的qmake和鏈接時(shí)所需要的QT基礎(chǔ)庫(kù),所以我們需要先使用petalinux來(lái)編譯一個(gè)SDK。
如果沒(méi)有現(xiàn)成的petalinux工程,可以在官網(wǎng)下載一些開(kāi)發(fā)板的bsp包來(lái)快速構(gòu)建petalinux工程,然后使用petalinux-config -c rootfs進(jìn)行配置,主要需要選擇qt和sdk_qt,配置路徑:
具體如下:
1、使用petalinux-build和petalinux-build –sdk編譯獲得SDK;
2、SDK位于工程目錄images/linux下的sdk.sh,然后運(yùn)行sdk.sh進(jìn)行安裝,安裝目錄位于/opt/petalinux/2023.1下,安裝成功后我們就獲得了交叉編譯工具和庫(kù)等。
三、QT Creator配置
打開(kāi)QT Creator軟件,在[工具]→[選項(xiàng)],在[Kits]中先配置[編譯器],選擇[添加],名稱可以自定義,這里我們就叫[amd-xilinux-aarch64],路徑:
1、C++選擇和aarch64-xilinx-linux-g++:
2、Debuggers配置:
[Name]同樣可以自定義,[Path]選擇如下:
3、配置qmake:
右側(cè)按鈕選擇[添加]然后選擇路徑,路徑位于SDK的安裝目錄
4、最后配置Kits:
Device type:選擇設(shè)備的類型,這里有四個(gè)選擇項(xiàng),分別為Desktop(PC機(jī))、Android Device(安卓設(shè)備)、Generic Linux Device(通用Linux設(shè)備)和 QNX Device(QNX設(shè)備);對(duì)于AMD SOC來(lái)說(shuō),選擇Generic Linux Device。
Sysroot:系統(tǒng)鏡像的根目錄,為SDK安裝路徑下的
Compiler C和C++:選擇剛剛我們新建 的amd-xilinx-aarch64
Debugger選擇剛剛新建 的amd-xilinx-gdb
Qt version選擇 xilinx-QT 5.14.4
配置完成之后點(diǎn)擊“Apply”應(yīng)用,再點(diǎn)擊OK,這樣我們就完成了QTCreator的配置了。
5、測(cè)試工程驗(yàn)證:
我們可以新一個(gè)工程或打開(kāi)一個(gè)[歡迎]頁(yè)面的示例工程來(lái)驗(yàn)證一下編譯器,比如我們打開(kāi)下圖中的[Analog Clock]的示例工程;
然后在[Build&Run]中添加[Desktop Qt 5.12.11 GCC64bit]的桌面編譯器和[AMD-Xilinx-aarch64]的交叉編譯器,這樣在開(kāi)發(fā)調(diào)試的時(shí)候就可以使用[Desktop Qt 5.12.11 GCC64bit]來(lái)調(diào)試界面布局和邏輯關(guān)系等,等調(diào)試完再使用[AMD-Xilinx-aarch64]編譯器來(lái)編譯可以在SOC上運(yùn)行的程序。
在點(diǎn)擊[AMD-Xilinx-aarch64]下面的[Build]后面[build-analogclock-AMD_Xilinx_aarch64-Debug]的目錄找到[analogclock]的程序,可以下載到SOC上接上DP/HDMI等接口進(jìn)行運(yùn)行,如果SOC沒(méi)有運(yùn)行X11服務(wù),需要手動(dòng)配置一下環(huán)境變量exportQT_QPA_PATFORM=linuxfb和export DISPLAY=:0.0,這樣顯示器上就會(huì)有一個(gè)時(shí)鐘輸出了。
6、集成Petalinux工程
在petalinux工程根目錄使用petalinux-create命令創(chuàng)建一個(gè)app
替換project-spec/meta-user/recipes-apps/analogclock/files/中的程序后再運(yùn)行petalinux-build就可以集成到petalinux工程中。
這樣就可以完成一個(gè)基于QT的程序應(yīng)用在SOC側(cè)的開(kāi)發(fā)和集成了,這里對(duì)于很多客戶遇到的問(wèn)題就是如何獲取AMD的交叉編譯器,那我們是通過(guò)在petalinux工程中去使用petalinux-build –sdk命令來(lái)生成所需要的編譯器和根文件系統(tǒng),這些方法同樣適用于在Vitis中來(lái)新建 一個(gè)軟件平臺(tái)來(lái)進(jìn)行軟件模擬開(kāi)發(fā)調(diào)試。
-
amd
+關(guān)注
關(guān)注
25文章
5589瀏覽量
136385 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3337瀏覽量
59043 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50232
原文標(biāo)題:基于AMD SOC的QT應(yīng)用程序開(kāi)發(fā)
文章出處:【微信號(hào):Comtech FPGA,微信公眾號(hào):Comtech FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
編寫(xiě)第一個(gè)QT程序
Linux系統(tǒng)中搭建Qt Creator開(kāi)發(fā)環(huán)境
如何構(gòu)建和編譯一個(gè)Qt界面應(yīng)用程序
A40i應(yīng)用筆記 | Qt應(yīng)用程序開(kāi)發(fā)工具 Qt Creator的安裝及使用
Qt 跨平臺(tái)C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架
基于QT/Embedded的可變情報(bào)板應(yīng)用程序開(kāi)發(fā)
基于QT/Embedded的可變情報(bào)板應(yīng)用程序開(kāi)發(fā)
嵌入式linux應(yīng)用開(kāi)發(fā)之QT
Qt Designer、Qt Quick Designer和Qt Creator應(yīng)用程序有什么區(qū)別?
嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(1)第一個(gè)嵌入式QT應(yīng)用程序

在MPSoC ZCU106單板的HDMI-Tx上基于eglfs_kms的運(yùn)行QT應(yīng)用程序
Qt應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢
A40i應(yīng)用筆記 | Qt應(yīng)用程序開(kāi)發(fā)工具 Qt Creator的安裝及使用

Qt上位機(jī)開(kāi)發(fā)實(shí)戰(zhàn)案例

評(píng)論