Cortex-M3 vol.1 開發環境
每次拿到新板子, 其實都有一道天險: 架環境
因為一件事通常有多種方法能達成, 開發者必須做選擇
教學的文章很多, 但是寫出為什麼這麼做的文章比較少
教學的文章很多, 但是寫出為什麼這麼做的文章比較少
我想在這篇文章列出我做的選擇, 還有可能的選項, 以及我為什麼這麼選
----
IDE(Keil) vs command line(GCC)
Keil
開發環境的部分, 我使用Keil ARM, 這套toolchain從8051時代就很紅了, 簡單好用
後來他被ARM買下來, 等於是官方版的IDE
在網站上有試用版可以下載, code size最大可以用到32kb
我買的開發板附的光碟就有Keil ARM (當然是盜版), 真的是不怕被抓耶 (暈)
我想ARM真正的目標是推廣CPU, 建立eco-sys, 所以提供開發工具只是剛好而已
我在官網抓了試用版, 裡面包括大量的範例, device database, startup code, header files
這套開發工具真的幫開發者做掉很多事, 內建的simulator也非常好用
初學者建議用Keil, 在google打上關鍵字, 很快就能找到解法
我的目的是儘快搞定開發環境, 所以我選擇用Keil
Command Line
另外一條路是直接面對所有的細節, 撰寫Makefile直接呼叫armcc or gcc編譯程式
自己規劃memory map, 寫在linker script裡
產生出來的ELF檔, 再自己透過read_elf抽出code/data segment, 然後下載到IC裡
走這條路, 閱讀文件大量文件能培養英文閱讀能力, 還能知道為什麼要這麼做
做到這樣以後, 看懂IDE裡, 每一個option的意義其實還滿爽的
我一直覺得搞定toolchain也是重要的能力之一, 因為IDE隱藏太多細節
如果走這條路, 我推薦CodeSourcery出的gcc toolchain, 商業公司品質有保障卻可以免費用
IDE(Keil) vs command line(GCC)
Keil
開發環境的部分, 我使用Keil ARM, 這套toolchain從8051時代就很紅了, 簡單好用
後來他被ARM買下來, 等於是官方版的IDE
在網站上有試用版可以下載, code size最大可以用到32kb
我買的開發板附的光碟就有Keil ARM (當然是盜版), 真的是不怕被抓耶 (暈)
我想ARM真正的目標是推廣CPU, 建立eco-sys, 所以提供開發工具只是剛好而已
我在官網抓了試用版, 裡面包括大量的範例, device database, startup code, header files
這套開發工具真的幫開發者做掉很多事, 內建的simulator也非常好用
初學者建議用Keil, 在google打上關鍵字, 很快就能找到解法
我的目的是儘快搞定開發環境, 所以我選擇用Keil
Command Line
另外一條路是直接面對所有的細節, 撰寫Makefile直接呼叫armcc or gcc編譯程式
自己規劃memory map, 寫在linker script裡
產生出來的ELF檔, 再自己透過read_elf抽出code/data segment, 然後下載到IC裡
走這條路, 閱讀文件大量文件能培養英文閱讀能力, 還能知道為什麼要這麼做
做到這樣以後, 看懂IDE裡, 每一個option的意義其實還滿爽的
我一直覺得搞定toolchain也是重要的能力之一, 因為IDE隱藏太多細節
如果走這條路, 我推薦CodeSourcery出的gcc toolchain, 商業公司品質有保障卻可以免費用
----
JTAG
一般單晶片都可以透過COM port下載程式進去跑, 直接看會不會動, 一番兩瞪眼
只要能打通boot code, 以及UART, 接下來再寫個printf, 其實還是能幹活兒
就算有JTAG, 這招還是很好用, 反正printf()永遠是debug的好朋友
有JTAG能做什麼
這裡有一篇之前的文章, 說明JTAG大致運作的原理 (Cortex-M3已經不是這麼做)
他能停下CPU, 單步執行, 設定斷點, 觀察記憶體, registers, 燒寫Flash
基本上, 用過了就回不去了
我推薦Segger的J-Link, 可以跑在12Mhz, 和Keil的整合度好, 快又好用
以前用過盜版的硬體, 實在是吃足苦頭, 還曾經re-work J-link的板子
"勿在浮沙築高台"
J-link EDU物美價廉(2000NTD), 一般人都買得起 (沒有買盜版的理由了)
可以在mcuapps就買得到, 或著mouser/digikey也有
開發工具的穩定度真的很重要, 如果連JTAG都不可信賴, 真的是很折磨人...
高檔的JTAG
因為工作, 我也用過一些高檔的JTAG, 速度飛快, 動輒50Mhz起跳 (J-Link只有12Mhz)
這些高檔貨, 裡面的CPU快很多, 通常會有個自己專用的IDE, 可以在裡面debug
和J-Link相比, 用起來其實也差不多, 也沒有比較厲害
----
開發板, JTAG, 加上開發環境, 就是整個開發環境的全貌了
準備好這些東西, 就可以開工了
留言