1. 程式人生 > >嵌入式系統分為4層,硬體層、驅動層、作業系統層和應用層。

嵌入式系統分為4層,硬體層、驅動層、作業系統層和應用層。

1、硬體層,是整個嵌入式系統的根本,如果現在微控制器及介面這塊很熟悉,並且能用C和組合語言來程式設計的話,從嵌入式系統的硬體層走起來相對容易,硬體層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬體的電路圖和自行完成CPLD的邏輯設計的,同時還要對作業系統核心及其排程性相當的熟悉的。但硬體平臺是基礎,增值還要靠軟體。

    硬體層比較適合於,電子、通訊、自動化、機電一體、資訊工程類專業的人來搞,需要掌握的專業基礎知識有,微控制器原理及介面技術、微機原理及介面技術、C語言。

2、驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對作業系統核心十分的精通,以便其所寫的驅動程式在系統呼叫時,不會獨佔作業系統時間片,而導至其它任務不能動行,不懂作業系統核心架構和實時排程性,沒有良好的驅動編寫風格,按大多數書上所說新增的驅動的方式,很多人都能做到,但可能連個初級的驅動工程師的水平都達不到,這樣所寫的驅動在應用呼叫時就如同

windows下我們開啟一個程式執行後,再開啟一個程式時,要不就是中斷以前的程式,要不就是等上一會才能執行後來開啟的程式。想做個好的驅動人員沒有三、四年功底,作業系統核心不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的。  在嵌入式行業,做驅動層當然是最有前途的,但是難度也是最大的,其專業知識要求也是最廣的。

    驅動層比較適合於電子、通訊、自動化、機電一體、資訊工程類專業尤其是計算機偏體系結構類專業的人來搞,除硬體層所具備的基礎學科外,還要對資料結構與演算法、作業系統原理、編譯原理都要十分精通了解。

3、作業系統層,對於作業系統層目前可能只能說是簡單的移植,而很少有人來自已寫作業系統,或者寫出缺胳膊少腿的作業系統來,這部分工作大都由驅動工程師來完成。作業系統是負責系統任務的除錯、磁碟和檔案的管理,而嵌入式系統的實時性十分重要。據說,

XP作業系統是微軟投入300人用兩年時間才搞定的,總時工時是600人年,中科院軟體所自己的女媧Hopen作業系統估計也得花遇幾百人年才能搞定。因此這部分工作相對來講沒有太大意義。  

4、應用層,相對來講較為容易的,如果會在windows下如何進行程式設計介面函式呼叫,到作業系統下只是編譯和開發環境有相應的變化而已。如果涉及Java方面的程式設計也是如此的。嵌入式系統中涉及演算法的由專業演算法的人來處理的,不必歸結到嵌入式系統範疇內。但如果涉及嵌入式系統下面嵌入式資料庫、基於嵌入式系統的網路程式設計和基於某此應用層面的協議應用開發(比如基於SIPH.323Astrisk)方面又較為複雜,並且有難度了。所以對應用層主要是,程式語言和開發工具學習,以及良好的程式設計習慣和軟體工程的,如果要增加自己在某個領域的競爭力,不妨學習一下

TCP/IP中某層的協議。