本文以使用樹莓派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命令執行程序。可以在樹莓派終端中看到如下輸出:
至此樹莓派遠程調試環境安裝完成!
覺得本文有幫助?歡迎點贊並分享給更多的人。
閱讀更多更新文章,請關注微信公衆號【面向對象思考】