一、 嵌入式系統的概念
著重理解 ” 嵌入 ” 的概念
主要從三個方面上來理解。
1 、從硬件上,將基于 CPU 的處圍器件,整合到 CPU 芯片內部,比如早期基于 X86 體系結構下的計算機,CPU 只是有運算器和累加器的功能,一切芯片要造外部橋路來擴展實現,象串口之類的都是靠外部
16C550/2 的串口控制器芯片實現,而目前的這種串口控制器芯片早已集成到 CPU 內部,還有 PC 機有顯卡,而多數嵌入式處理器都帶有 LCD 控制器,但某種意義上就相當于顯卡。比較高端的 ARM 類 Intel Xscale 架構下的 IXP 網絡處理器 CPU 內部集成 PCI 控制器(可配成支持 4 個 PCI 從設備或配成自身為 CPI從設備);還集成 3 個 NPE 網絡處理器引擎,其中兩個對應于兩個 MAC 地址, 可用于網關交換用,而另外一個 NPE 網絡處理器引擎支持 DSL ,只要外面再加個 PHY 芯片即可以實現 DSL 上網功能。 IXP 系列最高主頻可以達到 1.8G ,支持 2G 內存, 1G×10 或 10G×1 的以太網口或 Febre channel 的光通道。 IXP 系列應該是目標基于 ARM 體系統結構下由 intel 進行整合后成 Xscale 內核的最高的處理器了。
2 、從軟件上前,就是在定制操作系統內核里將應用一并選入,編譯后將內核下載到 ROM 中。而在定制操作系統內核時所選擇的應用程序組件就是完成了軟件的 ” 嵌入 ” ,比如 WinCE 在內核定制時,會有相應選擇,其中就是 wordpad,PDF,MediaPlay 等等選擇,如果我們選擇了,在 CE 啟動后,就可以在界面中找到這些東西,如果是以前 PC 上將的 windows 操作系統,多半的東西都需要我們重新再裝。
3 、把軟件內核或應用文件系統等東西燒到嵌入式系統硬件平臺中的 ROM 中就實現了一個真正的 ” 嵌入 ” 。
以上的定義是我在 6 、 7 年前給嵌入式系統下自話側重于理解型的定義,書上的定義也有很多,但在這個領域范圍內,誰都不敢說自己的定義是十分確切的,包括那些專家學者們,畢竟嵌入式系統是計算機范疇下的一門綜合性學科。
二、嵌入式系統的分層與專業的分類。
嵌入式系統分為4層,硬件層、驅動層、操作系統層和應用層。
1 、硬件層,是整個嵌入式系統的根本,如果現在單片機及接口這塊很熟悉,并且能用 C 和匯編語言來編程的話,從嵌入式系統的硬件層走起來相對容易,硬件層也是驅動層的基礎,一個優秀的驅動工程師是要能夠看懂硬件的電路圖和自行完成 CPLD 的邏輯設計的,同時還要對操作系統內核及其調度性相當的熟悉的。但硬件平臺是基礎,增值還要靠軟件。
硬件層比較適合于,電子、通信、自動化、機電一體、信息工程類專業的人來搞,需要掌握的專業基礎知識有,單片機原理及接口技術、微機原理及接口技術、 C 語言。
2 、 驅動層,這部分比較難,驅動工程師不僅要能看懂電路圖還要能對操作系統內核十分的精通,以便其所寫的驅動程序在系統調用時,不會獨占操作系統時間片,而導 至其它任務不能動行,不懂操作系統內核架構和實時調度性,沒有良好的驅動編寫風格,按大多數書上所說添加的驅動的方式,很多人都能做到,但可能連個初級的 驅動工程師的水平都達不到,這樣所寫的驅動在應用調用時就如同 windows 下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不 就是等上一會才能運行后來打開的程序。想做個好的驅動人員沒有三、四年功底,操作系統內核不研究上幾編,不是太容易成功的,但其工資在嵌入式系統四層中可是最高的 ,前沿技術交流。
|