如何學習ARM嵌入式開發?
我想學習ARM嵌入式開發,買了本周立功的書看,可是感覺毫無頭緒。和學習單片機時候的感覺很不一樣,該如何做?
ARM和單片機還是有許多區別的,可以說比單片機的應用更為複雜吧,往往在單片機里只需要對一個寄存器賦值就可以的初始化,在ARM下就要調用庫函數了。甚至每個引腳其功能都多了許多,相應的配置也會更為麻煩,但如果做多了ARM的項目就會發現,其實它的應用配置也是千篇一律,有章可循的,並沒有想像中的那麼難。如果真是想學ARM的嵌入式開發滴話:
第一:先看關於ARM晶元的Mannual。第二:找一本關於內核的不錯的書,比如,想學Cortex-M3的話,《The Definitive Guide to the Cortex-M3》是很不錯的。看這書的時候不需要全部掌握,只需要當做一本參考手冊來讀就好,知道在開發過程中遇到什麼問題來這裡哪一章找解決方法即可。
第三:買一塊開發板(也不貴,一兩百塊),參考板子帶的全程進行調試。第四:自己跟項目,或者自己搞點什麼開發了~~例如開發一個小智能小車之類的,學習嘛~總得有點兒投入。其實,如果你是利用業餘時間來學這些東西,前三項估計需要兩個月,但如果你真想好好研習下ARM,我相信這兩個月的付出是值得的,比急功近利地直接去找個項目程序調試神馬的靠譜多了。同為嵌入式菜鳥,多多交流。
任何手藝活,看是無用的。萬能某寶買個某派板子,編個鬧鐘的APP啥,或者搭個網站,取決於你想學習的方向。折騰一個月能弄出來,基本就會了。
相信你不是一個人,推薦一個網站 http://bbs.21ic.com,裡面的高手很多,應該能幫到你。。。
ARM入門難,但是不要怕,只要是有一定基礎了後,學習arm其他相關的東西都很easy。推薦看ZLG公司的arm啟動文件startup.s還有就是arm公司的官方網站(這裡都是最權威的東西),有一定基礎了之後,建議你試著寫一些驅動,最後,根據自己的需要編寫代碼。
晶元manual,google,ds-5,然後死命干一段時間,你就會很懂了。
看arm多少 9往上的 編譯kernel 編譯uboot 寫驅動
9往下的看幹嘛使 一般的os都會帶一些打包好的函數 再看datasheet就沒什麼必要了 找幾個簡單一點的操作系統看看源代碼什麼的吧
看不懂就重新回去看一遍c...可以買本書、買塊板子自己摸索著學;也可以找一些視頻教程,跟著有經驗業內人士一邊學習一邊做開發 。目前ARM開發視頻做得最好的應該是韋東山老師了,上課風格比較務實,語言簡練,課程結構系統性強:ARM裸機開發實戰(第1期加強版)_電子發燒友學院;可以免費看1節,如果發現有比這更好的,歡迎大家推薦比一比
本人專註於嵌入式產品的開發,看到這個早期問題,說說自己的經驗。
大學只接觸過51單片機,其中有大概8-9個月的時間在實驗室里自己做小項目,這些項目都是非商業的,也就是沒任何價值純屬為了學習和參加比賽。
大學畢業的後一年內,花50元買了最簡單的神舟一號開發板,這是第一次接觸arm ,嵌入式產品。但由於當時上班做的是硬體所以只能晚上花時間學軟體,當時是從51直接轉,很困難,思維卡在51的0和1上,所以在開發stm32的時候,也使用了寄存器沒使用庫來開發,這種開發需要看手冊,這段時間動力不足,斷斷續續還是自己做了幾個實驗,才可以說有了點眉目,後來工作需要,自己強大的學習能力感動了經理,讓我去做軟體,這個時候才正式用arm座項目,這種產品的項目也是用庫函數來實現,所以大大的節省了開發周期。在項目經理的精心指導下我很快就可以用這個stm32實現一些功能了,半年後。然後項目需要用到stm8,其實和stm32的開發方式一模一樣,屬於強大的51內核,至今stm8在工業微控制上具有強大的應用市場。半個月就掌握了stm8的開發。
單片機的開發 其實都是一個套路,開始的階段就是最好學習,懇求經理讓你去做,帶你入門。這樣就很快了,後來還玩過msp430,入手很快。現在大多用的是stm32和stm8.後來又自學了arm Linux 就是三星的 s3c3440,做項目成長很快,還有am335x TI 的跑Linux的.imx6ul,高通的801,用過Linux後才感覺系統的強大。
做項目會讓你成長很快,這是推翻不了的經驗。
還有急於掙錢的人才會選擇花錢去培訓,有興趣和愛好的人才會靜下心來學習和研究。
現在做項目,有stm8,stm32,imx6ul 安卓全志的,其實都是一個目的,使用它的資源做更好的產品,只有把他們放到正確的位置才會做出好的產品來。
共勉,繼續學習。另外附上我的博客 http://www.xiaovdiy.cn
推薦閱讀:
※樹莓派 (Raspberry Pi)或arduino能用來開發產品嗎?
※為什麼高通、聯發科(或許應該問ARM)他們不能研發一款像蘋果A系列處理器那樣單核性能突出的處理器呢?
※在硬體公司(晶元公司)做軟體的他們到底在做什麼?
TAG:ARM |
