邂逅Cortex-M3---序

       橫看成嶺側成峯,遠近高低各不同;不識廬山真面目,只緣身在此山中。

                                                                                                               -----蘇東坡

       這裏用了個詞“邂逅”,是因爲曾經在學校時候一直想學ARM,也一直久仰大名,卻從未領教過,正是,只聞其身,不謀其面。現在終於在工作之餘靜下心來,下決心着手好好研究一番。言歸正傳,Cortex-M3是ARM公司爲要求有快速中斷響應能力的深度嵌入式應用而設計的,據說是爲替代ARM7而誕生的,有着更優的性能和更高的性價比。這也是我選擇她的一個重要原因。

       首先想說一下自己學習中的感受和經歷,怎麼也覺得這個少不得,尤其是希望本文及以後的相關文章能夠對後來人有所幫助和啓迪,更是應該談一下。在學校的時候,一直用的51系列的單片機,記得當時學校還沒開課,可由於參加了個比賽需要用它的原因,我就自學了,經歷是相當坎坷的,一度沒法入門想放棄,可還是咬牙堅持了下來,什麼東西泡的時間久了也就悟開了,開始主要用匯編寫一些小程序玩,還挺有成就感,屬於自己哄自己玩類型,後來,偶然讀了周堅的《單片機C語言輕鬆入門》,從此一發不可收拾,開始了C編程的道路,開始用C操作IO口、定時計數器、中斷、串口和一系列的外圍設備驅動,從點亮一隻LED到在1602上顯示Hello World!一路走來,玩的挺歡,缺少的是思考和總結,所以由51開始轉到ARM的時候又重演了當年學單片機的尷尬,好像一切又得從零開始(當然,C語言必須除外,嘿),又是一頓煎熬,還是一樣的硬着頭皮看書看資料看datasheet,這些走過的彎路也讓我開始反思MCU的學習方法,下面我就仗着皮厚曬曬自己的心得。

       處理器其實五花八門,其中最主要的差異就在所採用的架構,像51系列是intel(如果沒記錯的話)在很久以前設計的,因爲經典,以至於現在還在很多嵌入式領域看到它老人家活躍的身影,還有ARM架構、MIPS架構,諸如此類,說到底,這個架構到底是個什麼東東?其實當我們拿到一個架構的一系列芯片,閱讀它們的datasheet,我們也會發現即便採用同一個架構的片子與片子、廠家與廠家之間也有着不少的區別,這就要說一說這個架構和芯片的關係,如下圖,其實就像ARM公司,他們向半導體廠商出售核心架構(IP核),然後廠商在架構上“嫁接”各種外設,比如GPIO、UART、PWM以及I2C、CAN總線等,封裝起來就成了一個芯片

     

        說到這裏了,就要談談MCU的學習方法,必備的基礎C語言就不必再強調了(必須熟練掌握,向漢語一樣掌握熟練的語言),這裏強調的是,學習一款處理器,我們應該必備和研讀的兩本資料,一個是處理器架構的SPEC,另一個就是芯片的SPEC,這兩個非常重要,處理器架構的SPEC可以讓我們瞭解它的總線寬度,總線類型,中斷結構,工作模式,編程模型,存儲映射等,芯片的SPEC有助於我們瞭解芯片的特性,比如它所支持的各種外設,這裏最最重要的也是我們操作和控制外設的接口,就是各種外設所對應的各種控制寄存器,據說有些有一定開發經驗的人這樣描述:“單片機就那麼回事,無非就是配置配置寄存器!”雖然我打心底裏不認同這種觀點,可也在一定程度上反映了寄存器在單片機中的重要性。

         好了,羅哩羅嗦了這麼多,其實是希望我們能對要學的東西有個清晰的脈絡和科學的學習方法,但必須認識到的是,我們所知道的和所瞭解的,IN THE END,都不重要的,重要的是我們所做的。所以,說幹就幹,立即行動,A good plan today is better than a perfect plan tomorrow,Let us go!

       

發佈了27 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章