本文以使用樹莓派4b為例說明構建嵌入式C++執行環境。之所以選擇樹莓派是因為它的系統比較完善,資料也多,容易上手。需要事先說明的是本文說明的大部分內容並不僅限於樹莓派。
準備樹莓派
下載鏡像文件
打開樹莓派官方網站的系統鏡像下載網頁:
我們直接選擇紅框中的最大版本。下載完成之後我們得到以下文件(時間戳可能會不同):
<code>2020-02-05-raspbian-buster-full.zip/<code>
將文件解壓縮可以得到下面的鏡像文件:
2020-02-05-raspbian-buster-full.img
燒寫鏡像文件
首先選擇8G以上的TF卡,最好是Class4以上。然後使用SDCardFormator進行格式化。
啟動DiskImager,選擇之前下載/解壓得到的image文件。
接下來選擇設備。由於DiskImager不會自動選擇正確的SD卡,因此盤符一定不要弄錯。按下[寫入]按鈕開始寫入過程。
寫入成功。
軟件下載地址
購買樹莓派時賣家都已提供的開發資料就應該包含這兩款軟件,讀者也可以使用下面的鏈接自己下載。
SDCardFormator:
DiskImageer:
設定基本信息
將燒寫完成的TF卡插入樹莓派的TF卡槽,接好鍵盤、鼠標和顯示器,啟動樹莓派。樹莓派啟動之後,選擇國家,地區並修改密碼。接下來設定網絡鏈接。如果是有無線路由器也可以使用Wifi連接。更新軟件操作可以自由選擇,不是必須實施。
點擊畫面左上角的[樹莓]圖標,進入[Preferences]-[Raspberry PI Configurations]菜單。進入[Interface]畫面選擇SSH有效後關閉畫面。
進入樹莓終端畫面,輸入ifconfig命令,記錄ip地址(例如:192.168.3.233)。如果IP地址獲取失敗,可以輸入以下命令重新設定。
<code>sudo raspi-config/<code>
遠程鏈接樹莓派
進入Ubuntu主機的終端畫面,輸入以下命令(地址初始化樹莓派時記錄的Ip地址):
<code>ssh [email protected]/<code>
第一次登陸會出現密鑰,安全相關的提示,直接接受就好。接下來輸入密碼之後,看到以下畫面就表示登錄成功。從此以後的開發,樹莓派一側的所有操作都通過這個終端窗口進行,就不再需要單獨的外設了。
除了Ubuntu中使用SSH命令之外,Window下也可以使用Putty等連接樹莓派,方法大同小異。
準備C++執行和調試環境
安裝NFS服務(Ubuntu開發主機)
在Ubuntu主機上打開終端窗口,輸入以下命令以安裝NFS服務。這個服務安裝完成之後,可以從樹莓派上訪問通過NFS共享的目錄。
<code>sudo apt get install nfs-kernel-server/<code>
<code>sudo vi /etc/exports/<code>
在文件最後增加以下內容。其目的是公開/home/xwg/Raspberry中的內容並賦予最大權限。具體可以根繼開發環境的位置自行決定。
<code> /home/xwg/RaspberryPi*(rw,sync,no_root_squash)/<code>
配置文件修改、保存完成之後,在終端窗口中輸入以下命令啟動NFS服務。
<code>sudo /etc/init.d/nfs-kernel-server start/<code>
掛接開發目錄(樹莓派)
啟動樹莓派SSH客戶端,輸入以下命令掛接Ubuntu主機分享的NFS目錄。
<code>mount -t nfs 192.168.3.202:/home/xwg/EasyARM /mnt -o nolock/<code>
命令中IP地址需要替換為Utuntu主機的地址,目錄需要和前面分享的目錄相同。安裝成功之後,可以進入/mnt目錄,如果看到的Ubuntu主機分享的內容,就意味在NFS目錄掛接成功了。使用這個目錄,可以直接訪問Ubuntu主機交叉編譯的結果,而不必每次都拷貝文件。
找到前一篇文章的創建的arm_cpp項目,進入Debug目錄,輸入以下命令:
./arm_cpp
終端中應該出現如下的內容:
<code> Hello GCC/G++ Compiler!/<code>
遠程調試
安裝GdbServer
在樹莓派終端窗口中輸入以下命令安裝gdbserver.
<code>sudo apt-get install gdbserver/<code>
輸入以下命令確認安裝結果,如果能過或者正常的版本信息,則表示安裝成功。
<code>gdbserver -v/<code>
安裝gdb-multiarch
在Ubuntu主機的終端窗口中輸入以下命令安裝多平臺版本的gdb.
<code>sudo apt-get install gdb-multiarch/<code>
安裝完成後通過以下命令確認安裝結果:
<code>gdb-multiarch --version/<code>
參考信息:
Gdb調試和遠程調試
通過樹莓派終端輸入arm_cpp/Debug目錄,並輸入如下命令:
<code>gdbserver :10000 arm_cpp/<code>
樹莓派終端表示如下:
在Ubuntu主機的終端窗口中輸入如下命令,啟動gdb-multiarch。
<code>gdb-multiarch/<code>
畫面表示如下:
輸入以下命令鏈接樹莓派側的GdbServer:
<code>target remote 192.168.3.233:10000/<code>
鏈接成功時,Ubuntu主機的終端畫面表示如下:
樹莓派側的終端表示如下:
在gdb畫面中輸入c命令執行程序。可以在樹莓派終端中看到如下輸出:
至此樹莓派遠程調試環境安裝完成!
覺得本文有幫助?請分享給更多人。
面向對象開發,面向對象思考!
閱讀更多 面向對象思考 的文章