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