關於 Arduino Ameba 的 100 篇 - 程式編譯 (4/100)


Arduino 是怎麼編譯程式的呢?


偏好設定-選項

有個 顯示詳細輸出 : 編譯 上傳, 打勾後可在訊息視窗看到編譯過程

可以發現, 每次他會在 temp 下亂數設定一個 build 的目錄.

如果我們要固定編譯的目錄的話, 可以修正偏好設定檔

偏好設定檔

修改偏好設定檔 preference.txt

葉難有一篇介紹 設定檔的參數修改選項


在修改前, 請記得先把 arduino 關閉, 因為 arduino 開啟時會讀取一遍 preference.txt, 設定, 並記憶在記憶體中, 等關閉時, 會把設定再寫回 preference.txt. 

所以如果修改前沒有關閉 arduino, 修改的 preference.txt , arduino 程式會再覆蓋回去. 

我們這次要介紹的是

   build.path=
路徑,編譯時的暫存目錄,若不設定就會使用系統的暫存目錄。

譬如在 D: 建立一個 arduino-build 目錄, 可以寫



 build.path=D:\arduino-build
  之後就可以在這目錄下看到相關的編譯程式

程式分析

1. asm 檔

    以 arm 為例, 通常在這邊會看到 elf 或 axf 檔, 我們可以用 toolchain 的 objdump 來產生 asm 檔. 

   例如在 cygwin 下, 我們可以做


arm-elf-eabi-objdump -d target.axf > target.asm
   asm 檔會顯示出程式記憶體位置以及相關的組合語言代表的機械碼

2. map 

     如果不想看內部細節部分, Ameba 會產生一個 target.map,  


sort target.map > target-sorted.map
這些有助於了解修正程式


留言

熱門文章