Cortex-M3 vol.2 架起最小環境
上一篇 提到我最後選了KEIL當作開發環境, 這一篇想講怎麼建構最小開發環境. 玩開發版, 我的習慣是讓LED一閃一閃亮晶晶, 看到一閃一閃, 好像我的未來也跟著點亮了 (嘴砲). 要讓LED亮暗很容易, 塞個boot-up code, 再塞個main function, 不過就是控制幾根pin腳的high-low, 翻一下data sheet以及schematics, 這件事可以輕鬆達成. 以前小時候, 我喜歡什麼都自己來, 比如說自己寫一個LPC17xx.h, 照著register address刻一個出來; 或著看了Cortex-M3的手冊, 自己去編一個對應的header file, 以及操作的函數. 這樣做的學習曲線陡峭, 可以學到超多東西, 但是對於生產力實在沒什麼gain. 所以我這次想仔細研究, 世界最好用的MCU開發環境, 他們是怎麼幫助user做這些事. 如果KEIL幫我搞定很多東西, 那我要怎麼使用, 不要硬是自己來. 底下列出一些note Keil/ARM/CMSIS/Include/core_cm3.h ARM編寫了所謂CMSIS library, 裡面有Cortex M3共同register一些structure definition. 這種東西有高手幫忙寫了, 一定比自己跛腳的版本好. 這個檔案有時候會需要去參考, 所以需要知道它放在哪裏. Keil/ARM/INC/NXP/LPC17xx/LPC17xx.h 這個檔案會去include CMSIS的header file (也就是core_cm3.h), 所以平常使用, 其實我們都只是include LPC17xx.h. 另外這個檔案也包括LPC17xx系列專用的registers定義. 這邊就顯示KEIL開發環境的價值了, 一堆MCU都有現成的定義在裡面, 拿來就可以用, 不需要像我小時候一樣辛苦. 另外在KEIL環境裡, 這個檔案Compiler會自動幫忙找到, 我猜是IDE幫忙設定include search path. 以前我會很堅持要把這個檔案拷貝出來, 放在自己的project底下. 現在我是覺得, 反正KEIL都有一套完整的方法維護這一切, 那就放開心胸的使用吧~ Keil/ARM/Sta