Hi3531D 靜態交叉編譯 Qt5 13 2

2022-02-20 13:02:41 字數 2896 閱讀 5215

環境:ubuntu-18.04 64位

交叉編譯器:arm-hisiv600-linux

有關 qt 的嵌入式相關開發,最好的參考資料就是qt文件:qt for embedded linux

該英文文件的翻譯版本:qt5.7 qt for embedded linux

首先,有必要區分幾個名詞:qt,qt/e,qtopia core, qtopia。(引用自qt中文論壇)

qt泛指qt的所有桌面版本,比如qt/x11,qt windows,qt mac等。由於qt最早是在linux中隨著kde流行開來的,因此通常很多人說的qt都指用於linux/unix的qt/x11。

qt/e(qt/embedded)是用於嵌入式linux系統的qt版本。qt/e去掉了x lib的依賴而直接工作於frame buffer上,因而效率更高,但它並不是qt的子集,而應該是超集,部分機制(如qcop等)不能用於qt/x11中。

qtopia是乙個構建於qt/e之上的類似桌面系統的應用環境。相比之下,qt/e是基礎類庫。

qtopia core:就是原來的qt/e,大概從qt 4開始改名,把qtopia core並到qtopia的產品線中去了。但實際上qtopia core就相當於原來的qt/e,仍然作為基礎類庫。

另外,似乎奇趣最近又把qtopia core改名叫做qt for embedded linux了,不知道是不是因為qtopia core搞得大家都很糊塗,沒人來買的緣故。

1、解壓海思sdk

$ tar -xvf hi3531d v100r001c02spc040.zip
2、進入到交叉編譯工具目錄

$ cd hi3531d v100r001c02spc040
3、 解壓交叉編譯工具

$ ./sdk.unpack
在 ubuntu 中執行該命令,會報錯:./sdk.unpack source: not find,解決方法為:sudo dpkg-reconfigure dash,彈出提示框後選擇 no。

4、安裝交叉編譯工具

$ cd osdrv/opensource/toolchain/arm-hisiv600-linux

$ sudo mkdir -p /opt/hisi-linux/x86-arm/arm-hisiv600-linux

$ sudo ./cross.v600.install

5、更新 shell 的環境變數

$ . /etc/profile
【注意】中間有乙個空格,與 source /etc/profile 的作用一樣,都是讓剛剛安裝軟體的環境變數一直有效。

1、解壓海思sdk

$ tar -zxvf qt-everywhere-src-5.13.2.tar.xz
不要加上 sudo,否則解壓目錄的許可權要求變為 root,會導致查詢不到編譯器,後續編譯報錯,後續命令也一樣不加 sudo。

2、配置交叉編譯器

$ cd qt-everywhere-src-5.13.2/qtbase/mkspecs/devices

$ cp -rf linux-imx7-g++ linux-arm-hisilicon-hi3531d-g++

$ vi linux-arm-hisilicon-hi3531d-g++/qmake.conf

:%s/imx7_cflags/hi3531d_cflags/g

:g/distro_opts/d

:wq$ cd ../../../

使用現成的 linux-imx7-g++,將其拷貝成 linux-arm-hisilicon-hi3531d-g++,再修改其 qmake.conf,則 g++ 編譯器配置成功。

3、建立安裝目錄

$ mkdir -p /usr/local/qt-5.13.2-hisiv600-static

4、配置 qt 的編譯引數

$ ./configure  -prefix /usr/local/qt-5.13.2-hisiv600-static  -static  -opensource -confirm-license -sql-sqlite  -qt-freetype  -nomake examples  -no-opengl  -no-gif  -device linux-arm-hisilicon-hi3531d-g++  -device-option cross_compile=arm-hisiv600-linux-  -qt-zlib   -qt-libjpeg  -qt-libpng  -no-compile-examples -nomake tools -skip qtserialbus -no-iconv -qt-freetype
引數說明:

更多引數說明請參考:linux下編譯qt5.6.0靜態庫

【注意】qt5.8以上的版本不能直接支援 tslib,要換成qt5.8以下的版本。在後面加上:

-tslib -i/home/temp/tslib/include  -l/home/temp/tslib/lib

5、執行編譯

make -j8

6、安裝

make install -j8
在 /usr/local/qt-5.13.2-hisiv600-static/ 就是編譯好的 qt。

參考:

[2]_解決在海思sdk包中的執行 ./sdk.unpack出現的問題

hi3531 uboot phy除錯總結

首先除錯檢查硬體,再除錯軟體 首先仔細閱讀phy和主晶元datesheet 尤其著重閱讀mii暫存器,它是mac和phy交換資訊的媒介。硬體注意 關於phy的晶元需要注意的有幾點 1 mdio介面和rgmii或者mii介面是否正確。2 電源是否穩定,晶振是否起振並且頻率匹配。3 phy位址的配置是否...

hi3531的pcie atu資源重對映

1.設定atu 區域號暫存器為需要配置的位址轉換區編號。2.設定atu region lower base address register 和atu region upper base address register。在此區域內的目標位址將由區域號暫存器所在的atu 轉換 3.設定atu reg...

hi3531晶元的標識暫存器

晶元的標識暫存器 0xee0 0xee4 0xee8 0xeec 基址是0x2005 0000 系統控制器提供了晶元標識 id 暫存器sc sysid。這個標識暫存器是乙個概念上 的32bit 的標識唯讀暫存器,實際上由4 個8bit 標識暫存器組成 sc sysid3 sc sysid2 sc s...