嵌入式軟體開發學習的過程,需要面對很多的專業性知識,讓很多新手望而怯步!其實,這是沒有必要的,你只要瞭解了嵌入式系統的整體構架和知識組成部分,重點突破才是取勝之道。

 
讓我們來看下嵌入式系統的構成:
 
     嵌入式系統的構成:硬體+軟體;現代嵌入式軟體構成很多系統已經由微控制器過渡到了智慧系統,因此軟體內容非常廣泛:
 
    軟體 = bootloader + kernel + root + application + advanced-application
 
其中,bootloader和kernel與系統硬體結合緊密,涉及到部分跨專業的問題。但是從root開始,我們基本可以認為是與硬體無關的知識體系。
 
      從現在市場上流行的高階應用開發工程師需要的技能上看,你會發現一個很奇怪的現象,他們幾乎不懂系統,直接使用廠家提供的API進行開發即可o_0!!,同樣也過得非常HAPPY啊!難道這就是嵌入式軟體開發???其實並不是這樣的,這種開發嚴格上來說是advanced-application,前面所有的東西已經被別人做完了而已。作為一個真正的嵌入式軟體開發人員必須瞭解整個嵌入式的構架和原理,這樣的人才才可以經得住行業的風雲變幻啊!所謂的高階開發人員如果只懂得advanced-application,一旦失去前面所有(包括:bootloader + kernel + root + application)的支撐,其實他什麼也不是!可以明白的說,他是嵌入式軟體開發的一個“不完整版”。
 
 所以,個人認為(僅代表個人觀點),嵌入式軟體開發人員應該是掌握整個軟體構架的人才,瞭解bootloader、瞭解kernel、定製root、精通程式設計提供各種高階開發的支撐,並能使用所以資源完成高階應用的一個全方位人才。但是對於一個對作業系統、組成原理等不太精通的人來說,研究bootloader和kernel簡直是一種自虐行為。那麼個人淺見:你如果是一個初學者,並且不具備硬體和作業系統相關知識的功底,你完全可以從root開始!它是完全迎合軟體開發專業學生最佳的起跑線,是快速而系統地研究嵌入式系統的好辦法!等你一旦完成了root以後所有知識的學習和運用,只要你感興趣,你隨時可以對bootloader、kernel和硬體進行一番從容的研究和探討。畢竟硬體部分是電子和通訊方面的專利,我個人同時認為,你把bootloader和kernel弄明白,你就已經是嵌入式的高階人才了!
 
    另外,必須說明一下:嵌入式從root開始學習(甚至從bootloader、kernel開始)最好的系統是linux,好好學習他吧,他會讓你真正的明白什麼是嵌入式系統的,同時也會讓你成為一個合格的嵌入式人才!
 
    搞掂Linux你終於可以喘口氣了,可以涉獵一些其他方面的內容和系統,如wince、uCOS等等,最後可以搞下只關注高階應用的系統,Android和IPhone!到此為止,你終於在軟體方面圓滿了,可上至高階開發,可下至核心修改,全才啦!恭喜你!
 
    堅持是勝利的保證,恆心是成功的基石,努力吧,追夢人!