QT移植到RK3568開(kāi)發(fā)板的方法步驟
前言
在這里使用的是韋東山老師的RK3568開(kāi)發(fā)板,接下來(lái)我將演示如何移植QT程序到該開(kāi)發(fā)板。
我們需要先搭建開(kāi)發(fā)環(huán)境,編譯 rk3568 Linux SDK資源包。SDK包含了開(kāi)發(fā)rk3568平臺(tái)所需的各種軟件組件、源代碼、工具、庫(kù)、文檔以及示例代碼等。這些資源旨在幫助開(kāi)發(fā)人員基于rk3568芯片進(jìn)行高效的軟件開(kāi)發(fā)、系統(tǒng)定制以及應(yīng)用程序開(kāi)發(fā)。下面將進(jìn)行的操作皆在 Ubuntu20.04 上執(zhí)行。
一、獲取SDK
1. 安裝依賴(lài)
編譯 rk3568 Linux SDK包需要一些依賴(lài),下面將進(jìn)行安裝依賴(lài)操作。
安裝依賴(lài)之前,最好執(zhí)行以下指令更新軟件包:
sudo apt update
安裝依賴(lài):
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
確保所有依賴(lài)安裝完成。
編譯sdk需要用到python3版本,執(zhí)行以下指令切換python版本:
#將python鏈接到python3 sudo ln -sf /usr/bin/python3 /usr/bin/python #查看默認(rèn)Python版本 python -V
2. 獲取SDK資源包
執(zhí)行以下指令獲取百問(wèn)網(wǎng)公司放在遠(yuǎn)程倉(cāng)庫(kù)上的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)大,需要等待一會(huì)時(shí)間。
3. SDK工程目錄介紹
拉取后,可以在當(dāng)前路徑下查看,目錄結(jié)構(gòu)如下:
. ├── app #存放上層應(yīng)用 app,包括 Qt 應(yīng)用程序,以及其它的 C/C++應(yīng)用程序。 ├── buildroot #基于 Buildroot(2021)開(kāi)發(fā)的根?件系統(tǒng) ├── build.sh -> device/rockchip/common/scripts/build.sh ├── device ├── envsetup.sh -> buildroot/build/envsetup.sh ├── external #存放所需的第三方庫(kù),包括音頻、視頻、網(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后才會(huì)出現(xiàn) ├── tools #存放常用的工具,包括鏡像燒錄工具、SD 卡升級(jí)啟動(dòng)制作工具、批量燒錄工具等 └── u-boot #基于 v2017.09 版本進(jìn)行開(kāi)發(fā)的 uboot 源碼。
4. 獲取補(bǔ)丁包
基于 100ask-rk3568 開(kāi)發(fā)板,百問(wèn)網(wǎng)提供了一個(gè)擴(kuò)展補(bǔ)丁包,執(zhí)行以下指令,獲取擴(kuò)展支持倉(cāng)庫(kù),然后加以應(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ù)制的時(shí)候,這里需要注意 rockchip-sdk 路徑的位置。
二、編譯固件
1. 選擇板級(jí)配置文件
進(jìn)入 SDK 包根目錄,執(zhí)行以下指令:
./build.sh lunch
選擇 100ask_rk3568_defconfig
2. 編譯
在當(dāng)前目錄下,執(zhí)行編譯所有:
./build.sh
這個(gè)過(guò)程耗時(shí)較長(zhǎng),具體多久,根據(jù)電腦性能決定。
在編譯過(guò)程,可能你會(huì)遇到一下界面:
這里需要選擇相應(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>; };
如果電壓值選擇不正確,會(huì)提示編譯錯(cuò)誤。
3. 打包固件
編譯時(shí)長(zhǎng)較久,等待編譯完成后,SDK 會(huì)自動(dòng)把用于燒錄的鏡像 update.img
打包到 output/update/Image/
下,如下:
4. 配置 Qt5 支持
在 Buildroot 環(huán)境下通過(guò) make menuconfig 配置 Qt5 支持。
首先我們進(jìn)到rockchip-sdk/buildroot/output/rockchip_rk3568_100ask
目錄,輸入make menuconfig:
配置 QT 支持:
配置完后保存并退出:
執(zhí)行:
make savedefconfig
然后重新回到剛剛的~/rockchip-sdk
目錄編譯固件,等待編譯完成即可。
編譯時(shí)長(zhǎng)較久,等待編譯完成后,SDK 會(huì)自動(dòng)把用于燒錄的鏡像 update.img
打包到 output/update/Image/
下,跟剛剛一樣。
5. 燒寫(xiě)鏡像
我們可以把鏡像移動(dòng)到 PC 端,燒寫(xiě)鏡像:
開(kāi)發(fā)板上電運(yùn)行:
三、Linux中下載QT
1. 安裝 Qtcreator
QtCreator 下載網(wǎng)址:https://download.qt.io/official_releases/qtcreator/
這里我使用的 qtcreator 版本為 5.12.9:
此安裝過(guò)程類(lèi)似 Windows 下應(yīng)用的安裝方法,一路點(diǎn)擊下一步即可。
chmod +x qt-opensource-linux-x64-5.12.9.run sudo ./qt-opensource-linux-x64-5.12.9.run
安裝成功后打開(kāi)QT,可以直接打開(kāi),也可以通過(guò)命令打開(kāi),命令如下:
./qtcreator.sh &
這里的“&”符號(hào)代表后臺(tái)運(yùn)行, 不占用控制命令終端
2. 創(chuàng)建第一個(gè)程序
測(cè)試成功:
3. 配置 QtCreator 開(kāi)發(fā)環(huán)境
在這里我們配置 QtCreator 開(kāi)發(fā)環(huán)境主要是為了方便將測(cè)試程序移植到Linux開(kāi)發(fā)板上。
(1)打開(kāi)選項(xiàng)界面
在 QtCreator 界面中,依次點(diǎn)擊 tools -> options:
(2)選擇編譯器
在出現(xiàn)的選項(xiàng)對(duì)話框中,在左邊點(diǎn)擊 Kits,右邊選擇 Compilers 標(biāo)簽,并點(diǎn)擊 Add 選擇 Custom->C++ 和 C
(3)設(shè)置編譯器
在彈出的對(duì)話框中填寫(xiě)以下內(nèi)容: Compiler path , Make path 和 ABI; 填寫(xiě)完成后,點(diǎn)擊 Apply 進(jìn)行保存。
同理,也設(shè)置Custom->C然后保存,如下圖:
(4)添加 QT 版本
假設(shè)你已經(jīng)按照上面編譯出了 QT 的 SDK。 以 RK3568 為例,可以在 /home/ubuntu/rockchip-sdk/buildroot
下執(zhí)行這個(gè)命令找到 qmake,記住它的目錄:
find -name qmake
添加qmake路徑:在 QT 設(shè)置界面中,選擇 Qt Version 標(biāo)簽,在右側(cè)點(diǎn)擊“Add…”,會(huì)彈出對(duì)話框,切換目錄到選擇 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,填寫(xiě)相應(yīng)內(nèi)容:
① Name:輸入rk3568
② Sysroot:輸入交叉編譯工具鏈的目錄
③ compiler:c和c++這兩個(gè)選擇框里,都選擇Custom
④ Qtversio:選擇上圖中配置的“Qt5.15.8 (host) ”
配置完成后點(diǎn)擊apply,點(diǎn)擊OK。
四、移植第一個(gè)QT程序到RK3568開(kāi)發(fā)板
1. 創(chuàng)建第一個(gè)移植程序
第1步 新建項(xiàng)目:
運(yùn)行QtCreator后,在菜單欄選擇 File -> New File or Project
選擇項(xiàng)目類(lèi)型:
在打開(kāi)的對(duì)話框中,依次選擇 Application -> Qt Widgets Application ,點(diǎn)擊 Choose… , 如下圖所示:
第2步 輸入項(xiàng)目名字、設(shè)置保存位置:
在彈出的Qt Widgets Application對(duì)話框中,設(shè)置項(xiàng)目名稱(chēng)為01_test,Create in一欄填寫(xiě)項(xiàng)目的存儲(chǔ)路徑,點(diǎn)擊Next。如下:
第3步 設(shè)置構(gòu)建系統(tǒng),然后點(diǎn)擊 Next 進(jìn)入下一步,如下:
第4步 選擇基類(lèi):
當(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)建:
以上信息填寫(xiě)完后,點(diǎn)擊Finish,完成01_test項(xiàng)目的創(chuàng)建。
2. 編譯QT程序
第1步 修改界面:
雙擊左側(cè)的 Forms 里的 mainwindow.ui 文件,打開(kāi) Design 視圖。
然后如下圖所示,從左側(cè)Display Widgets 欄目下,拖動(dòng) Label 和 PushPutton到中間的區(qū)域。
最后雙擊中間區(qū)域的Label還有Push Button 修改內(nèi)容如下圖:
第2步 添加測(cè)試代碼:
第3步 構(gòu)建:
點(diǎn)擊左下角綠色按鈕:
第4步 查看構(gòu)建結(jié)果:
01_test 項(xiàng)目構(gòu)建成功后,可以使用 file 命令查看該 APP 是否被編譯為 ARM 架構(gòu):
五、在開(kāi)發(fā)板上運(yùn)行QT程序
1. 在ubuntu下使用ADB
ADB,全稱(chēng)為 Android Debug Bridge,是一個(gè)用于與安卓設(shè)備進(jìn)行通信和調(diào)試的命令行工具,但現(xiàn)在不僅僅是安卓設(shè)備,在嵌入式開(kāi)發(fā)中,很多 Linux 設(shè)備也同樣支持 adb 調(diào)試,例如 Rockchip 平臺(tái)。可以使用這個(gè)工具在Ubuntu上登錄終端,也可以在Windows上登錄終端。
在ubuntu使用ADB步驟如下:
1.打開(kāi)VMware,進(jìn)入ubuntu系統(tǒng),點(diǎn)擊虛擬機(jī)。
找到開(kāi)發(fā)板的ADB端口,斷開(kāi)與主機(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í)行以下指令,查看是否能列出開(kāi)發(fā)板設(shè)備并且是否可用。
ubuntu@ubuntu2004:~$ adb devices List of devices attached cca7b8659f061daf device ubuntu@ubuntu2004:~$
2. 開(kāi)發(fā)板測(cè)試
上電開(kāi)發(fā)板,通過(guò)adb傳輸QT程序:
然后執(zhí)行該文件:點(diǎn)擊按鈕然后顯示文本 test OK
開(kāi)發(fā)板顯示如下:
到此這篇關(guān)于QT移植到RK3568開(kāi)發(fā)板的方法步驟的文章就介紹到這了,更多相關(guān)QT移植到RK3568開(kāi)發(fā)板內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows安裝Qt6.4.2及簡(jiǎn)單驗(yàn)證
本文主要介紹了Windows安裝Qt6.4.2及簡(jiǎn)單驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02如何運(yùn)用Capstone實(shí)現(xiàn)64位進(jìn)程鉤子掃描
本章將通過(guò)Capstone引擎實(shí)現(xiàn)64位進(jìn)程鉤子的掃描,讀者可使用此段代碼檢測(cè)目標(biāo)進(jìn)程內(nèi)是否被掛了鉤子,感興趣的朋友跟隨小編一起看看吧2024-08-08opencv3/C++圖像濾波實(shí)現(xiàn)方式
今天小編就為大家分享一篇opencv3/C++圖像濾波實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Ubuntu20.04安裝使用jsoncpp、json-c庫(kù)的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Ubuntu20.04安裝使用jsoncpp、json-c庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作就有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-04-04