使用樹莓派構建嵌入式C++調試環境

本文以使用樹莓派4b爲例說明構建嵌入式C++執行環境。樹莓派本身可以到各大購物網站直接購買,價格大概300-500元不等。之所有選擇樹莓派是因爲它的系統比較完善,容易上手。但是需要實現說明的是本文說明的大部分內容並不僅限於樹莓派。

 

準備樹莓派

 

下載鏡像文件

打開樹莓派官方網站的系統鏡像下載網頁:

 

https://www.raspberrypi.org/downloads/raspbian/

 

我們直接選擇紅框中的最大版本。下載完成之後我們得到以下文件(時間戳可能會不同):

 

2020-02-05-raspbian-buster-full.zip

將文件解壓縮可以得到下面的鏡像文件:

 

2020-02-05-raspbian-buster-full.img

 

燒寫鏡像文件

首先選擇8G以上的TF卡,最好是Class4以上。然後使用SDCardFormator進行格式化。

 

啓動DiskImager,選擇之前下載/解壓得到的image文件。

 

接下來選擇設備。由於DiskImager不會自動選擇正確的SD卡,因此盤符一定不要弄錯。按下[寫入]按鈕開始寫入過程。

 

寫入成功。

軟件下載地址

購買樹莓派時賣家都已提供的開發資料就應該包含這兩款軟件,讀者也可以使用下面的鏈接自己下載。

SDCardFormator:

 

https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip

DiskImageer:

 

https://mirrors.tuna.tsinghua.edu.cn/osdn/sfnet/w/wi/win32diskimager/Archive/win32diskimager-1.0.0-install.exe

 

設定基本信息

將燒寫完成的TF卡插入樹莓派的TF卡槽,接好鍵盤、鼠標和顯示器,啓動樹莓派。樹莓派啓動之後,選擇國家,地區並修改密碼。接下來設定網絡鏈接。如果是有無線路由器也可以使用Wifi連接。更新軟件操作可以自由選擇,不是必須實施。

點擊畫面左上角的[樹莓]圖標,進入[Preferences]-[Raspberry PI Configurations]菜單。進入[Interface]畫面選擇SSH有效後關閉畫面。

進入樹莓終端畫面,輸入ifconfig命令,記錄ip地址(例如:192.168.3.233)。如果IP地址獲取失敗,可以輸入以下命令重新設定。

 

sudo raspi-config
遠程鏈接樹莓派

進入Ubuntu主機的終端畫面,輸入以下命令(地址初始化樹莓派時記錄的Ip地址):

 

ssh [email protected]

第一次登陸會出現密鑰,安全相關的提示,直接接受就好。接下來輸入密碼之後,看到以下畫面就表示登錄成功。從此以後的開發,樹莓派一側的所有操作都通過這個終端窗口進行,就不再需要單獨的外設了。


 

除了Ubuntu中使用SSH命令之外,Window下也可以使用Putty等連接樹莓派,方法大同小異。

準備C++執行和調試環境

安裝NFS服務(Ubuntu開發主機)

在Ubuntu主機上打開終端窗口,輸入以下命令以安裝NFS服務。這個服務安裝完成之後,可以從樹莓派上訪問通過NFS共享的目錄。

 

sudo apt get install nfs-kernel-server
輸入以下命令,編輯NFS配置文件。

 

sudo vi /etc/exports

在文件最後增加以下內容。其目的是公開/home/xwg/Raspberry中的內容並賦予最大權限。具體可以根據開發環境的位置自行決定。

 

/home/xwg/RaspberryPi    *(rw,sync,no_root_squash)

配置文件修改、保存完成之後,在終端窗口中輸入以下命令啓動NFS服務。

 

sudo /etc/init.d/nfs-kernel-server start

 

掛接開發目錄(樹莓派)

啓動樹莓派SSH客戶端,輸入以下命令掛接Ubuntu主機分享的NFS目錄。

mount -t nfs 192.168.3.202:/home/xwg/EasyARM /mnt -o nolock

命令中IP地址需要替換爲Utuntu主機的地址,目錄需要和前面分享的目錄相同。安裝成功之後,可以進入/mnt目錄,如果看到的Ubuntu主機分享的內容,就意味在NFS目錄掛接成功了。使用這個目錄,可以直接訪問Ubuntu主機交叉編譯的結果,而不必每次都拷貝文件。

找到前一篇文章的創建的arm_cpp項目,進入Debug目錄,輸入以下命令:

 

./arm_cpp

終端中應該出現如下的內容:

 

Hello GCC/G++ Compiler!

 

遠程調試

 

安裝GdbServer

在樹莓派終端窗口中輸入以下命令安裝gdbserver.

 

sudo apt-get install gdbserver

輸入以下命令確認安裝結果,如果能過或者正常的版本信息,則表示安裝成功。

 

gdbserver --version

安裝gdb-multiarch


 

在Ubuntu主機的終端窗口中輸入以下命令安裝多平臺版本的gdb.

 

sudo apt-get install gdb-multiarch

安裝完成後通過以下命令確認安裝結果:

 

gdb-multiarch -v

參考信息:

 

https://packages.ubuntu.com/bionic-updates/amd64/gdb-multiarch/download


Gdb調試和遠程調試

通過樹莓派終端輸入arm_cpp/Debug目錄,並輸入如下命令:

 

gdbserver :10000 arm_cpp

 

莓派終端表示如下:

 

在Ubuntu主機的終端窗口中輸入如下命令,啓動gdb-multiarch。

 

gdb-multiarch

畫面表示如下:

輸入以下命令鏈接樹莓派側的GdbServer:

 

target remote 192.168.3.233:10000

鏈接成功時,Ubuntu主機的終端畫面表示如下:

樹莓派側的終端表示如下:

在gdb畫面中輸入c命令執行程序。可以在樹莓派終端中看到如下輸出:

至此樹莓派遠程調試環境安裝完成!

 


 

覺得本文有幫助?歡迎點贊並分享給更多的人。

閱讀更多更新文章,請關注微信公衆號【面向對象思考】

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