天天看點

嵌入式學習難點 嵌入式軟體學習

 嵌入式學習不是一蹴而就的,需要不斷的積累,如果是希望向嵌入式軟體方向發展的話,目前最常見的是嵌入式Linux方向,關注這個方向,我認為大概分3個階段:

嵌入式學習難點 嵌入式軟體學習

嵌入式學習難點 嵌入式軟體學習3個階段

1、嵌入式linux上層應用,包括QT的GUI開發

2、嵌入式linux系統開發

3、嵌入式linux驅動開發

嵌入式目前主要面向的幾個作業系統是,LINUX,WINCE、VxWorks等等。

Linux是開源免費的,而且其源代碼是開放的,更加适合我們學習嵌入式。

你可以嘗試以下路線:

(1) C語言是所有程式設計語言中的強者,單片機、DSP、類似ARM的種種晶片的程式設計都可以用C語言搞定),是以必須非常熟練的掌握。

推薦書籍:《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。

(2) 作業系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫“程序”“線程”“系統排程”等等基本問題搞清楚。

(3)Linux作業系統就是用C語言編寫的,是以你也應該先學習下Linux方面的程式設計,隻有你會應用了,才能近一步去了解其核心的精髓。

推薦書籍:《UNIX環境進階程式設計》(第2版)

(4) 了解ARM的架構,原理,以及其彙編指令,我們在嵌入式開發中,一般很少去寫彙編,但是最起碼的要求是能夠看懂arm彙編。

(5) 系統移植的時候,就需要你從最下層的

bootloader開始,然後核心移植,檔案系統移植等。而移植這部分對硬體的依賴是非常大的,其配置步驟也相對複雜,也沒有太多詳細資料。

(6) 驅動開發

linux驅動程式設計既是個極富有挑戰性的領域,又是一個博大精深的内容。

linux驅動程式設計本質是屬于linux核心程式設計範疇的,因而是對linux核心和核心程式設計是有要求的。在學習前你要想了解linux核心的組成,因為每一部分要詳細研究的話足夠可以擴充成一本厚書。

以上隻不過是大概的架構,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,是以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。隻要能堅持下來一定會取得成功!

嵌入式是一個比較大的概念,有四個分支(主要):

1、微控制器(單片機為例);

2、微處理器(arm為例);

3、dsp(數字信号處理);

4、soc(片上系統);

對于我們初學者而言,首先要學習單片機,以51為代表,等你學好51之後,可以深入學習更艱難的東西;

當然,并不是說你隻需要學習單片機;要想學好單片機,你還得學c語言,得學彙編,得學一大堆應用軟體;等到單片機能夠掌握的不錯的時候又需要自己進行原理圖、PCB闆的設計;還得掌握系統設計的工程管理什麼的;比較多。。。。

還是要踏踏實實的學習

嵌入式軟體

方面的知識,單片機還是比較簡單的,等到學好之後,開始學習arm的時候,你就接觸的多了,什麼作業系統啊、驅動編寫啊、核心移植啊、應用程式的添加啊、上位機的編寫啊,,那個就多了,,不過到時候你就全知道了。。。

繼續閱讀