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, 商業公司品質有保障卻可以免費用 ---- JTAG 沒有JTAG的時候 一般單晶片都可以透過COM port下載程式進去跑, 直接看會不會動, 一番兩瞪眼 只要能打通boot code, 以及UART, 接下來再寫個printf, 其實還是能幹活兒 就算有JT