1. 程式人生 > >韋東山ARM第一期總結

韋東山ARM第一期總結

文章目錄


一切都站在裸機開發者的角度而言

01 - 裸機開發特點

1.1 - 51 / Arduino / STM等微控制器

  回顧最簡單的51微控制器,到方便開發的Arduino,到能迅速成型的STM,在裸機的開發角度而言,表現為存在越來越豐富強大的API,以及編譯連結等細節對程式設計師越來越透明化,可以得出如下特點:
  1、方便的IDE,編譯套件一條龍服務,一鍵編譯下載執行除錯


  2、配置暫存器,功能模組化,任務順序執行
  3、程式從main()開始,C/C++語言程式設計
  4、程式只執行在後臺(大迴圈)和前臺(中斷
  5、程式的邏輯設計固定,邏輯比較簡單,功能比較單一
  6、程式設計師不需要關心堆疊記憶體等問題
  7、程式設計師直接使用修飾符就可以使用中斷函式

1.2 - ARM微控制器

  1、不固定的編輯工具,原始的gcc編譯鏈,額外的下載器,除錯方法單一
  2、配置暫存器,功能模組化,任務順序執行
  3、程式從彙編start.S開始,彙編 / shell / C語言程式設計
  4、程式能執行在若干種模式內,巨集觀上也分為後臺(大迴圈)和前臺(異常)
  5、程式的邏輯設計固定,邏輯比較簡單,功能比較單一
  6、程式設計師需要設定程式執行的堆疊,管理記憶體


  7、中斷需要程式設計師去配置暫存器、分辨觸發位、以及提供中斷函式

02 - 總結

  對ARM裸機而言,更像是從輪子造起,需要用大量的工作去配置一個能讓main()執行的環境,其實51-STM等強大豐富的IDE比如keil已經替我們完成了前面的工作,所以ARM裸機開發是完完全全反應了一個微控制器真實的執行流程

內容 51 / Arduino / STM ARM微控制器
編輯 IDE套件 任意文字編輯器
編譯 IDE套件 原始gcc編譯鏈
下載 IDE套件 特定的額外下載器
除錯 IDE套件 串列埠 / LCD 等視覺化裝置
程式語言 純C/C++ 彙編 + shell + C
程式的開始點 main() start.S
堆疊記憶體問題 不關心 需要自定義配置管理
中斷使用 修飾符 需要對CPU模式和暫存器操作