韋東山ARM第一期總結
阿新 • • 發佈:2019-01-13
文章目錄
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模式和暫存器操作 |