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