第五章 嵌入式Linux應用開發基礎(1)

5.1快速入門總體介紹

參考視頻P38,截取了2張圖。

圖5.1快速入門學習內容​​​​​

 

圖5.2快速入門路線

    到這裏初學者路線在線wiki結束了,後面的視頻每一節都對應一個講課文檔,先看下講課文檔,然後在參考在線wiki,完全開發手冊,https://book.100ask.org/index.html

5.2HelloWorld 背後沒那麼簡單

    P39時長18:31,但是講了好多內容,需要前期準備,按照視頻操作,每1s都包含信息量,之前看一下視頻一般都要1.25的倍速,現在看韋老師視頻得慢速看,要不然跟不上節奏。

    先把準備工作做了,Ubuntu和開發板互ping、配置NFS服務、配置交叉編譯工具。

5.3Win10、Ubuntu和開發板互ping

    使用串口連接開發板和PC,打開MobaXterm,啓動開發板,具體可以參見3.2章節。

    先看下Ubuntu的ip,ifconfig

圖5.1 Ubuntu IP

使用網線一端連接路由器,一端連接開發板網口,板子上有2個網口,應該都可以的,查看下開發板的ip,如圖5.2。

圖5.2 板子IP

驗證下開發板和Ubuntu是否連通,ping 192.168.1.5,看到圖5.3中板子和Ubuntu在傳輸數據,說明已經互通,Ctrl+C退出。 

圖5.3 板子和Ubuntu互通

理順了一下三者之間的網絡連接情況,圖5.4,實現三者互ping,注意ip和上面截圖不一樣。 

圖5.4 三者互ping

 

5.4配置及掛載NFS服務

     NFS 是Network File System的縮寫,即網絡文件系統假如有三臺機器A、B、C,它們需要訪問同一個目錄,目錄中都是圖片,傳統的做法是把這些圖片分別放到A、B、C。但是使用NFS只需要放到A上,然後A共享給B和C即可。訪問的時候,B和C是通過網絡的方式去訪問A上的那個目錄的(來自網絡)。 參考高級手冊4.2.2安裝NFS服務,如圖5.5。

圖5.5安裝NFS服務

     將/home/book/nfs_rootfs文件夾和開發板上的/mnt文件夾關聯起來,執行如下命令,IP根據自己的設置。

mount -t nfs -o nolock,vers=3 192.168.1.5:/home/book/nfs_rootfs /mnt

    到這裏NFS服務配置結束,看着挺簡單的中間出現了幾個小問題,很折騰人的小問題,因爲是新手,所以先自己折騰半天,在羣裏一問,立馬大佬給出解決方案,很快就解決了,所以還是要多問。

5.4.1問題及解決

1.命令行不換行問題,在輸入mount命令時出現了覆蓋行首字符的問題,google一下有解決方案,不過還是羣裏問了一下,vi /etc/profile彈出圖5.6內容,把倒數第2行改爲:

PS1='\[\e[0;32m\][\u@\h:\w]\$ \[\e[m\]'
圖5.6 profile文件

2.串口不識別問題,如果先插串口USB再開虛擬機,就可以識別;如果先開虛擬機,再查串口USB,即使選了連接主機也還是識別不了串口。先打開虛擬機再插USB後,會彈出圖5.7選擇界面,我都是默認選擇“確定”,但是這樣USB會默認連接到虛擬機上,而win10上就沒法感知串口,需要把串口和虛擬機斷開。

圖5.6 USB連接選擇

    虛擬機菜單欄-Player-可移動設備-Cygnal……-點擊“斷開連接(連接主機)”,就可以了。第一次連接好串口之後儘量不要去斷開,省得麻煩。

圖5.8斷開USB和虛擬機

5.5GCC編譯hello.c

    把hello.c放到Ubuntu中,gcc -o hello hello.c生成hello可執行文件,在Ubuntu中是可以執行的,打印出Hello,World!

    將hello程序下載到開發板上執行,./hello提示不存在,如圖5.9,是因爲Ubuntu 自帶的 GCC 編譯器是針對 X86 架構的,因此只能編譯在X86架構CPU上運行的程序。如果想要編譯在 ARM上運行的程序就需要針對 ARM 的 GCC 編譯器,也就是交叉編譯器!

圖5.9 程序無法執行

下一步就是安裝交叉編譯器……

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章