iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
Arm Platforms

砍入式開發學習路線大雜燴系列 第 2

第1砍 - 磨刀霍霍

公寓善騎士 必先利其器

騎士要住在好的公寓, 就必須要先準備好工具

: ????

不過在真正要開始開發之路之前, 我們必須要先準備好開發環境. 不管你是否擁有嵌入式開發板, 接下來的Lab都有機會可以嘗試

工具鏈

因為我們即將面向aarch64的架構進行編程, 所以我們直接安裝整套的gnu toolchain

sudo apt-get install -y g++-aarch64-linux-gnu

在正確的安裝之後, 試著看看有沒有以下的指令可以使用

接著繼續安裝qemu, 我們會使用它來進行系統模擬

sudo apt-get install -y qemu-system-aarch64

安裝完之後可以使用以下指令測試qemu是否正確安裝

qemu-system-aarch64

完成上述步驟 接著我們就可以先實作簡單的lab

但... 工程師的使命就是製造一堆bug

我們如何知道因為開發過程中恍神而造成記憶體操作上的失誤?

我們需要強大的神器 : GDB

之後會使用GDB來遠程調試, 所以如果直接在host上安裝; 會沒辦法debug arm platform的系統

自行編譯GDB就可以設定target platform

取得GDB source後解壓縮

執行configure來設定host跟target的對應關係

../configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-linux-gnu

可以看到target設定為aarch64

接下來就可以compile 利用剛剛安裝的GNU toolchain

export CC=aarch64-linux-gnu-gcc

make

make install

安裝完畢之後執行gdb

你就可以看到美麗的畫面 如下圖

那今天就大致設定好後續會大量使用到的工具

[下集預告]
大致講解如何使用每一個組件來開發bare metal的系統所代表的含意以及用途


上一篇
第0砍 - 虛張聲勢
下一篇
第2砍 - 臨陣磨槍
系列文
砍入式開發學習路線大雜燴8

尚未有邦友留言

立即登入留言