01
前言
學Linux不難,難的是沒有找對教程,沒有人快速的帶你。開發板買了之后就放在那里吃灰,看視頻也看不下去,看文檔又看不懂,太難了!
本文以通俗易懂的方式講一下在正點原子Linux開發板上跑一個qt程序的基本步驟,爭取讓初學者能夠在半天的時間跑通第一個程序。
硬件:正點原子 Linux mini開發板 軟件:win10,vmware,ubuntu,qtcreator 運行效果如下圖所示,就是在正點原子默認的UI界面基礎上,運行了一個serialport例程。
先說一下初學Linux嵌入式開發的感受,學習STM32時 ,熟悉了Keil或IAR這個集成開發環境,也可以用簡單的寄存器來控制某一個引腳。
手做Linux開發之后,首先被幾十個G的安裝鏡像嚇住了,感覺Linux編譯起來特別復雜很難。還有就是密密麻麻的動輒上百個字符的命令,對于習慣圖形化開發的我們來說,實在是感到太難了。
還有賣家那動不動就幾十個小時的視頻,視頻還分好幾期:驅動開發、應用開發、Qt開發等。
每個視頻都又長又硬,我本開買個板子是想玩一下,結果要看這么多視頻,瞬間就不想學了,結果從入門到放棄,板子放那里吃灰。
本文的目的就是讓大家拋開視頻,把這個十幾小時的視頻濃縮成一篇文章,讓你快速體驗嵌入式Linux的開發樂趣!當然我建議官方也出一個快速把玩教程,讓開發者快速體驗樂趣,這樣我想效果會更好!
02
下載資料
首先去正點原子論壇下載資料,注意不要下載視頻,視頻你可以在B站隨時隨地看,沒人會這么無聊把視頻下載下來吧!
資料大多是百度網盤,如果不開會員的話會很慢,建議下載資料時買個臨時的會員下載,資料下載完了進行下一步。
二、安裝虛擬機
安裝虛擬機基本在正點原子的大多數PDF教程里面都有,這里就不需要在多說了。如果看文章不清楚,也可以去B站看視頻。
建議初學者仔細的看一遍,如果裝錯了,沒事大不了刪了在再裝一次。 在安裝ubuntu這個步驟中,強烈建議直接下載正點原子已經打包好qtcreator的鏡像,將這個鏡像安裝完畢后,就不用再一步步配置了。
對于需要快速跑通第一個linux程序的同學來說,可以避免學的越細越糊涂的陷阱。跳過這些繁瑣的步驟,可以讓我們快速站在全局高度理解整個開發過程。
這是啥意思呢?就是你新安裝的ubuntu不是啥環境啥軟件都沒有嘛,你需要自己安裝一遍,比較麻煩。
但是你可以用別人的正點原子的他們電腦里面的那個ubuntu系統,他把這個系統打包好了給你,你只需要把他的打包好的系統安裝你的虛擬機就可以了,怎么樣? 是不是很神奇,你還可以在你的電腦安裝別人的電腦系統。這個系統在哪里呢?
下載下來是這樣
然后按照這里的說明就可以安裝正點原子給你打包好的系統了。
文件名:【正點原子】I.MX6U 虛擬機使用參考手冊V1.3.pdf
03
配置網絡環境
你安裝完ubuntu后很可能不能上網,這個問題每個人遇到的都不一樣,建議按照正點原子的教程把你的windows、ubuntu、開發板讓他們網絡連接都正常。
可以參考:【正點原子】I.MX6U網絡環境TFTP&NFS搭建手冊V1.3.1.pdf
如果文檔看不明白也有視頻,對照著視頻一步一步也可以。
所以網絡這一塊你也不需要擔心了。
04
安裝qtcreator
同樣安裝qtcreator軟件可以參考:【正點原子】I.MX6U嵌入式Qt開發指南V1.1.pdf
在ubuntu安裝完qtcreator軟件后,你就可以像windows下編寫程序,然后在ubuntu下面運行了。但是我們的目的是讓qt軟件運行在我們的arm開發板下面對吧!
這時我們自然想到在ubuntu下面安裝一個編譯工具把程序編譯成可以在arm開發板運行的代碼吧!這個就叫做“交叉編譯鏈”。
交叉編譯器中“交叉”的意思就是在一個架構上編譯另外一個架構的代碼,相當于兩種架構“交叉”起來了,我們的電腦是x86架構,開發板是ARM架構。
05
安裝qt交叉編譯器
可以參考:【正點原子】I.MX6U 出廠系統Qt交叉編譯環境搭建V1.6.pdf
第一章的內容,安裝交叉編譯器。
你只有安裝了這個,你才能在ubuntu中編譯出可以在ARM開發板上運行的代碼,這一步必須做,而且還要按照她的教程一步一步來。
5.1 編譯器拷貝
把開發板光盤 A-基礎資料->5、開發工具->1、交叉編譯器->fsl-imx-x11-glibc-x86_64-meta- toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷貝到 Ubuntu 虛擬機。
拷貝軟件可以用MobaXterm軟件,這個軟件的使用可以參考這篇文章:2022第一篇文,全能終端神器MobaXterm
如下圖本文已經把交叉編譯工具拷貝到了Ubuntu虛擬機。
執行下面的指令修改腳本的權限,修改權限后可以看到此腳本顏色顯示改變,說明修改成功。
chmodu+xfsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 直接執行腳本安裝交叉編譯工具,連續敲下兩次回車鍵確認,再輸入用戶密碼即可。本次安裝的目錄為腳本所指定的默認安裝的目錄,后面的內核編譯環境的交叉編譯都是按這個安裝目錄去操作。
5.2 配置環境變量
我們知道,在linux下,如果運行一個可執行文件,需要在對應目錄下右鍵打開終端,然后./指令運行它,那么我們在其他文件夾下運行一個指定的程序呢? 當然可以,就是用到“環境變量”。沒錯,在Linux下也需要環境變量!其作用跟windows下一模一樣。就是相當于省略了一個非常長的目錄。沒有環境變量之前,我們需要輸入的指令是:
/aaa/bbb/ccc/ddd/eee/fff/hhh/xxx.sh 有了環境變量之后,我們輸入的指令是,這就是區別。環境變量讓系統知道,無論你在任何位置調用xxx.sh指令,都是調用的特定的文件夾下的某個程序。
xxx.sh 環境變量的設置方法是source /opt......我們在工程目錄下右鍵打開終端,然后運行環境變量。
source/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
接下來使用env指令查看環境變量,出現這些字樣的配置選項之后,就可以了。它表示我們已經將剛安裝的“交叉編譯工具鏈”設置到環境變量了。
使用arm-poky-linux-gnueabi-gcc -v指令可以查看 gcc 版本,表明環境變量已經生效。
OK,至此你的qt交叉編譯器就安裝好了。
5.3 安裝交叉編譯環境
上面你只是在ubuntu下你裝了交叉編譯器器,想編譯 Qt 應用程序在開發板上運行起來,那么還需要搭建交叉編譯環境,使用 ARM平臺的交叉編譯器編譯的程序才能在I.MX6U 開發板上運行起來。
主要就是在 配置 Qt Creator中配置Kits,Kit 譯作套件,也就是開發編譯環境套件,可以搭建不同平臺的套件,以不同的套件編譯出不同平臺的應用程序,也驗證了 Qt 跨平臺的特性!如果你安裝了Android的套件,你還可以在你的手機上運行qt程序。
這里我們需要在腳本里寫入設置使能環境變量的指令,首先打開此腳本。
sudovi/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh 在qtcreator.sh里的第一行插入如下指令,如下圖所示。
source/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
保存腳本文件(ESC : wq)。使用如下指令打開Qt Creator。“&”的作用是后臺運行
/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh&
5.4 安裝kits
在你安裝qtcreater軟件后默認只有這一個kits,然后按照教程搭建另外兩個kits,其中ATK-I.MX6U是用來大imx6ull ARM平臺運行的套件。IMX6U-rsync是用來網絡調試下載程序到開發板的套件,就是你在qtcreater上面編譯好后,點擊運行,就會直接在開發板上面顯示你的程序效果。
在 Qt Creator 中默認情況下,會使用 sftp 或 rsync 發送程序到板卡。由于正點原子 I.MX6U 出廠 Qt 文件系統(文件系統 V1.9 及之后的)里有 rsync 指令,因此可以很方便地使用此方式進行 Qt 遠程調試。首先我們要確認下當前出廠文件系統版本號,在出廠系統執行以下指令。
cat/etc/version
如果文件系統不是 V1.9 的,或者不支持 rsync 指令,請去網盤下載最新的出廠系統,使用最新的系統來進行。
設置開發板靜態 ip 由于LAN8720PHY 網絡芯片沒有MAC地址,系統啟動時會生成隨機MAC地址給網絡使用。每次都生成一個MAC地址,導致每次開機網絡獲取的ip不是固定的。(v2.3 版本文件系統已固定一個隨機MAC地址,不會因每次開機改變,請更新到最新文件系統)所以我們要設置給它一個靜態的ip,不因MAC地址的改變而改變,設置固定ip方法調試。
開發板啟動時會自動獲取ip,最簡單的方法是直接設置一個ip給它。這樣我們就在出廠文件系統里/etc/rc.local 文件里如圖位置添加以下文件。
vi/etc/rc.local 添加以下內容,請根據個人使用的路由器,設置相應網段的ip地址。下圖為設置 eth0 的靜態ip地址。請注意這個 ip 與其他設備的ip沖突!
PATH=/sbin:/bin:/usr/sbin:/usr/bin ifconfigeth0192.168.1.115netmask255.255.255.0 routeadddefaultgw192.168.1.1 echo"nameserver114.114.114.114">/etc/resolv.conf
這樣之后沒每次開發板連接網線上電后,開發板的IP地址就為192.168.1.115。 加下來參考 【正點原子】I.MX6U 出廠系統Qt交叉編譯環境搭建V1.6.pdf 2.5.1小節,完成rsync方式Qt遠程調試kits安裝。
06
實戰開搞
我們打開正點原子自帶的例程,這里以Qt/03/03_serialport為例。雙擊03_serialport.pro。
打開后選擇IMX6U-rsync套件
打開后軟件會自動編譯,一般是沒有錯誤的,直接點擊左下角的綠色三角號編譯運行。
然后你就可以在開發板上面看到神奇的一幕,你的上位機跑到開發板上面了,之后你連接開發板上面的串口就可以愉快的玩耍了。
注:因為開發板有正點原子的開機qt桌面,你可以禁止它不讓他顯示,參考如下:
最終效果:
審核編輯:劉清
-
嵌入式開發
+關注
關注
18文章
1033瀏覽量
47631 -
Linux開發板
+關注
關注
0文章
27瀏覽量
11452 -
qt程序
+關注
關注
0文章
3瀏覽量
1769
原文標題:我在Linux開發板上跑的第一個Qt程序
文章出處:【微信號:All_best_xiaolong,微信公眾號:大魚機器人】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論