QT移植到RK3568開發(fā)板的方法步驟
前言
在這里使用的是韋東山老師的RK3568開發(fā)板,接下來我將演示如何移植QT程序到該開發(fā)板。
我們需要先搭建開發(fā)環(huán)境,編譯 rk3568 Linux SDK資源包。SDK包含了開發(fā)rk3568平臺所需的各種軟件組件、源代碼、工具、庫、文檔以及示例代碼等。這些資源旨在幫助開發(fā)人員基于rk3568芯片進(jìn)行高效的軟件開發(fā)、系統(tǒng)定制以及應(yīng)用程序開發(fā)。下面將進(jìn)行的操作皆在 Ubuntu20.04 上執(zhí)行。
一、獲取SDK
1. 安裝依賴
編譯 rk3568 Linux SDK包需要一些依賴,下面將進(jìn)行安裝依賴操作。
安裝依賴之前,最好執(zhí)行以下指令更新軟件包:
sudo apt update
安裝依賴:
sudo apt-get install curl python2 git ssh make gcc libssl-dev liblz4-tool expect \ g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison \ flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python3-pip \ libncurses-dev python3-pyelftools vim mtd-utils
確保所有依賴安裝完成。
編譯sdk需要用到python3版本,執(zhí)行以下指令切換python版本:
#將python鏈接到python3 sudo ln -sf /usr/bin/python3 /usr/bin/python #查看默認(rèn)Python版本 python -V

2. 獲取SDK資源包
執(zhí)行以下指令獲取百問網(wǎng)公司放在遠(yuǎn)程倉庫上的SDK:
git clone https://e.coding.net/weidongshan/dshanpi-r1/rockchip-sdk.git cd rockchip-sdk/ git clone https://e.coding.net/weidongshan/dshanpi-r1/external.git git clone https://e.coding.net/weidongshan/dshanpi-r1/kernel.git git clone https://e.coding.net/weidongshan/dshanpi-r1/u-boot.git git clone https://e.coding.net/weidongshan/dshanpi-r1/buildroot.git

SDK稍微有點(diǎn)大,需要等待一會時間。
3. SDK工程目錄介紹
拉取后,可以在當(dāng)前路徑下查看,目錄結(jié)構(gòu)如下:
. ├── app #存放上層應(yīng)用 app,包括 Qt 應(yīng)用程序,以及其它的 C/C++應(yīng)用程序。 ├── buildroot #基于 Buildroot(2021)開發(fā)的根?件系統(tǒng) ├── build.sh -> device/rockchip/common/scripts/build.sh ├── device ├── envsetup.sh -> buildroot/build/envsetup.sh ├── external #存放所需的第三方庫,包括音頻、視頻、網(wǎng)絡(luò)、recovery 等。 ├── kernel #Linux 5.10 版本內(nèi)核源碼。 ├── Makefile -> device/rockchip/common/Makefile ├── output #存放編譯輸出固件 ├── prebuilts #存放交叉編譯工具鏈。 ├── rkbin #存放 Rockchip 相關(guān)的 Binary 和工具。 ├── rkflash.sh -> device/rockchip/common/scripts/rkflash.sh ├── rockdev -> output/firmware #編譯SDK后才會出現(xiàn) ├── tools #存放常用的工具,包括鏡像燒錄工具、SD 卡升級啟動制作工具、批量燒錄工具等 └── u-boot #基于 v2017.09 版本進(jìn)行開發(fā)的 uboot 源碼。
4. 獲取補(bǔ)丁包
基于 100ask-rk3568 開發(fā)板,百問網(wǎng)提供了一個擴(kuò)展補(bǔ)丁包,執(zhí)行以下指令,獲取擴(kuò)展支持倉庫,然后加以應(yīng)用。
cd ~/ git clone https://e.coding.net/weidongshan/dshanpi-r1/RK3568-DshanPI-R1_SDK.git cd RK3568-DshanPI-R1_SDK cp ./* -rfvd ~/rockchip-sdk/
復(fù)制的時候,這里需要注意 rockchip-sdk 路徑的位置。

二、編譯固件
1. 選擇板級配置文件
進(jìn)入 SDK 包根目錄,執(zhí)行以下指令:
./build.sh lunch
選擇 100ask_rk3568_defconfig

2. 編譯
在當(dāng)前目錄下,執(zhí)行編譯所有:
./build.sh
這個過程耗時較長,具體多久,根據(jù)電腦性能決定。


在編譯過程,可能你會遇到一下界面:

這里需要選擇相應(yīng)的電壓,根據(jù)以下電壓設(shè)置進(jìn)行選擇:
&pmu_io_domains {
status = "okay";
pmuio2-supply = <&vcc3v3_pmu>;
vccio1-supply = <&vccio_acodec>; /*3v3*/
vccio3-supply = <&vccio_sd>; /*3v3*/
vccio4-supply = <&vcc_1v8>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc_1v8>;
vccio7-supply = <&vcc_3v3>;
};
如果電壓值選擇不正確,會提示編譯錯誤。
3. 打包固件
編譯時長較久,等待編譯完成后,SDK 會自動把用于燒錄的鏡像 update.img 打包到 output/update/Image/ 下,如下:

4. 配置 Qt5 支持
在 Buildroot 環(huán)境下通過 make menuconfig 配置 Qt5 支持。
首先我們進(jìn)到rockchip-sdk/buildroot/output/rockchip_rk3568_100ask目錄,輸入make menuconfig:

配置 QT 支持:









配置完后保存并退出:

執(zhí)行:
make savedefconfig
然后重新回到剛剛的~/rockchip-sdk目錄編譯固件,等待編譯完成即可。
編譯時長較久,等待編譯完成后,SDK 會自動把用于燒錄的鏡像 update.img 打包到 output/update/Image/ 下,跟剛剛一樣。
5. 燒寫鏡像
我們可以把鏡像移動到 PC 端,燒寫鏡像:

開發(fā)板上電運(yùn)行:


三、Linux中下載QT
1. 安裝 Qtcreator
QtCreator 下載網(wǎng)址:https://download.qt.io/official_releases/qtcreator/
這里我使用的 qtcreator 版本為 5.12.9:
此安裝過程類似 Windows 下應(yīng)用的安裝方法,一路點(diǎn)擊下一步即可。
chmod +x qt-opensource-linux-x64-5.12.9.run sudo ./qt-opensource-linux-x64-5.12.9.run



安裝成功后打開QT,可以直接打開,也可以通過命令打開,命令如下:
./qtcreator.sh &
這里的“&”符號代表后臺運(yùn)行, 不占用控制命令終端


2. 創(chuàng)建第一個程序

測試成功:

3. 配置 QtCreator 開發(fā)環(huán)境
在這里我們配置 QtCreator 開發(fā)環(huán)境主要是為了方便將測試程序移植到Linux開發(fā)板上。
(1)打開選項(xiàng)界面
在 QtCreator 界面中,依次點(diǎn)擊 tools -> options:

(2)選擇編譯器
在出現(xiàn)的選項(xiàng)對話框中,在左邊點(diǎn)擊 Kits,右邊選擇 Compilers 標(biāo)簽,并點(diǎn)擊 Add 選擇 Custom->C++ 和 C

(3)設(shè)置編譯器
在彈出的對話框中填寫以下內(nèi)容: Compiler path , Make path 和 ABI; 填寫完成后,點(diǎn)擊 Apply 進(jìn)行保存。
同理,也設(shè)置Custom->C然后保存,如下圖:


(4)添加 QT 版本
假設(shè)你已經(jīng)按照上面編譯出了 QT 的 SDK。 以 RK3568 為例,可以在 /home/ubuntu/rockchip-sdk/buildroot 下執(zhí)行這個命令找到 qmake,記住它的目錄:
find -name qmake

添加qmake路徑:在 QT 設(shè)置界面中,選擇 Qt Version 標(biāo)簽,在右側(cè)點(diǎn)擊“Add…”,會彈出對話框,切換目錄到選擇 qmake 文件后,點(diǎn)擊 open 按鈕,設(shè)置完成之后,點(diǎn)擊 Apply 按鈕保存。
注意:qmake 文件是 buildroot 編譯根文件系統(tǒng)后生成的,文件在 buildroot 目錄下。

(5)配置 kit 標(biāo)簽
繼續(xù)選擇上邊的Kits標(biāo)簽,點(diǎn)擊右側(cè) Add,填寫相應(yīng)內(nèi)容:
① Name:輸入rk3568
② Sysroot:輸入交叉編譯工具鏈的目錄
③ compiler:c和c++這兩個選擇框里,都選擇Custom
④ Qtversio:選擇上圖中配置的“Qt5.15.8 (host) ”
配置完成后點(diǎn)擊apply,點(diǎn)擊OK。

四、移植第一個QT程序到RK3568開發(fā)板
1. 創(chuàng)建第一個移植程序
第1步 新建項(xiàng)目:
運(yùn)行QtCreator后,在菜單欄選擇 File -> New File or Project
選擇項(xiàng)目類型:
在打開的對話框中,依次選擇 Application -> Qt Widgets Application ,點(diǎn)擊 Choose… , 如下圖所示:

第2步 輸入項(xiàng)目名字、設(shè)置保存位置:
在彈出的Qt Widgets Application對話框中,設(shè)置項(xiàng)目名稱為01_test,Create in一欄填寫項(xiàng)目的存儲路徑,點(diǎn)擊Next。如下:

第3步 設(shè)置構(gòu)建系統(tǒng),然后點(diǎn)擊 Next 進(jìn)入下一步,如下:

第4步 選擇基類:
當(dāng)前的的應(yīng)用繼承自哪種Widget,默認(rèn)選擇QMainWindow,然后點(diǎn)擊 Next 進(jìn)入下一步。

第5步 默認(rèn)none,繼續(xù)點(diǎn)擊next:

第6步 選擇之前添加好的 Kits,繼續(xù)點(diǎn)擊next:

第7步 完成項(xiàng)目創(chuàng)建:
以上信息填寫完后,點(diǎn)擊Finish,完成01_test項(xiàng)目的創(chuàng)建。

2. 編譯QT程序
第1步 修改界面:
雙擊左側(cè)的 Forms 里的 mainwindow.ui 文件,打開 Design 視圖。
然后如下圖所示,從左側(cè)Display Widgets 欄目下,拖動 Label 和 PushPutton到中間的區(qū)域。
最后雙擊中間區(qū)域的Label還有Push Button 修改內(nèi)容如下圖:

第2步 添加測試代碼:

第3步 構(gòu)建:
點(diǎn)擊左下角綠色按鈕:

第4步 查看構(gòu)建結(jié)果:
01_test 項(xiàng)目構(gòu)建成功后,可以使用 file 命令查看該 APP 是否被編譯為 ARM 架構(gòu):

五、在開發(fā)板上運(yùn)行QT程序
1. 在ubuntu下使用ADB
ADB,全稱為 Android Debug Bridge,是一個用于與安卓設(shè)備進(jìn)行通信和調(diào)試的命令行工具,但現(xiàn)在不僅僅是安卓設(shè)備,在嵌入式開發(fā)中,很多 Linux 設(shè)備也同樣支持 adb 調(diào)試,例如 Rockchip 平臺??梢允褂眠@個工具在Ubuntu上登錄終端,也可以在Windows上登錄終端。
在ubuntu使用ADB步驟如下:
1.打開VMware,進(jìn)入ubuntu系統(tǒng),點(diǎn)擊虛擬機(jī)。

找到開發(fā)板的ADB端口,斷開與主機(jī)(windows)的連接連接至ubuntu。

下載adb工具:
sudo apt update sudo apt install adb
下載完成后,執(zhí)行以下指令,查看是否下載成功:
ubuntu@ubuntu2004:~$ adb version Android Debug Bridge version 1.0.39 Version 1:8.1.0+r23-5ubuntu2 Installed as /usr/lib/android-sdk/platform-tools/adb ubuntu@ubuntu2004:~$
使用adb登錄之前,執(zhí)行以下指令,查看是否能列出開發(fā)板設(shè)備并且是否可用。
ubuntu@ubuntu2004:~$ adb devices List of devices attached cca7b8659f061daf device ubuntu@ubuntu2004:~$
2. 開發(fā)板測試
上電開發(fā)板,通過adb傳輸QT程序:

然后執(zhí)行該文件:點(diǎn)擊按鈕然后顯示文本 test OK

開發(fā)板顯示如下:

到此這篇關(guān)于QT移植到RK3568開發(fā)板的方法步驟的文章就介紹到這了,更多相關(guān)QT移植到RK3568開發(fā)板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何運(yùn)用Capstone實(shí)現(xiàn)64位進(jìn)程鉤子掃描
本章將通過Capstone引擎實(shí)現(xiàn)64位進(jìn)程鉤子的掃描,讀者可使用此段代碼檢測目標(biāo)進(jìn)程內(nèi)是否被掛了鉤子,感興趣的朋友跟隨小編一起看看吧2024-08-08
opencv3/C++圖像濾波實(shí)現(xiàn)方式
今天小編就為大家分享一篇opencv3/C++圖像濾波實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Ubuntu20.04安裝使用jsoncpp、json-c庫的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Ubuntu20.04安裝使用jsoncpp、json-c庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作就有一定的參考借鑒價值,需要的朋友可以參考下2024-04-04

