常見的嵌入式系統有這么多
Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS
、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive、
autosar......
什么是嵌入式操作系統?
嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟件,它是嵌入式系統的
重要組成部分。嵌入時操作系統具有通用操作系統的基本特點,能夠有效管理復雜的
系統資源,并且把硬件虛擬化。
從應用角度可分為通用型嵌入式操作系統和專用型嵌入式操作系統。常見的通用
型嵌入式操作系統有Linux、VxWorks、Windows CE.net等。常用的專用型嵌入式操作
系統有Smart Phone、Pocket PC、Symbian等。?
按實時性可分為兩類:
實時嵌入式操作系統主要面向控制、通信等領域。如WindRiver公司的VxWorks、
ISI的pSOS、QNX系統軟件公司的QNX、ATI的Nucleus,很多汽車電子行業都是利用實
時性很強的操作系統等。
非實時嵌入式操作系統主要面向消費類電子產品。這類產品包括PDA、移動電話、
機頂盒、電子書、WebPhone等。如微軟面向手機應用的Smart Phone操作系統。
嵌入式系統的設計和實現而言,基本上需要四種不同的工作:系統設計工作,硬
件設計工作,驅動程序和操作系統移植工作和應用程序設計開發工作。?
1、系統設計工作?
在系統的設計階段,系統分析師將根據需求確定系統的硬件的基本構成,根據系
統的需求選擇使用那種處理器,使用哪種操作系統,使用那些軟件開發工具。系統分
析師往往是較為完整的參與過嵌入式系統設計的全過程,對于系統應用的行業較為了
解,對于嵌入式系統本身的開發流程十分清楚的人。
2、硬件設計工作
系統硬件設計人員需要根據系統分析師的設計結果,進行硬件原理圖的設計。通
常需要硬件設計人員熟悉嵌入式系統的硬件構成。硬件設計人員需要了解常用的嵌入
式系統處理器,存儲器(Flash,SDRAM),以太網MAC芯片,音頻/視頻編解碼芯片,
電源管理芯片,總線接口電路 (USB,PCI),液晶顯示模塊,可編程邏輯器件
(FPGA/CPLD),無線網絡通信模塊(Bluetooth,WLAN,GPRS)等硬件電路構成元素的基本
工作原理,連接使用方法,使用注意事項,基本調試方法等內容。在網絡上能找到很
多公司的評估板的原理圖,對于這些原理圖要仔細研究,摸清處理器同存儲器,網卡
,液晶模塊等器件的連接方法和原因。通過對這些電路的研究,能夠較快地了解整個
嵌入式系統的構成,這些電路同實際產品中的電路雖有一定差別的,特別是對于手持
設備,但這些差別不影響初學者學習嵌入式系統的硬件設計基本構成。
1)學習 Linux系統安裝、 常用命令、應用程序安裝。
2) 學習 Linux 下的 C 編程、這本書必學《UNIX 環境高級編程》、《UNIX
網絡編程》,Rechard Stevens 寫的,C 高手大都學習過 《C 和指針》、《C 缺
陷與陷阱》、《高質量C/C++編程指南》、《C 專家編程》、《The C programming
Language》
3)程序員大都要學:數據結構,嵌入式程序員數據結構必學!
4)底層開發人員大都要學:微機原理、計算機體系結構,嵌入式開發人員必學!
5)單片機可以讓一個從事軟件開發的人了解和如何操作硬件,有必要學,因為一
開始就從 ARM 入手,不太現實!
6)ARM 體系結構,其中有匯編。
7)數字電路有必要學習,不然你在做底層開發時真的會不知道怎么看原理圖,起
碼也得懂與或門吧。
8)ARM + Linux 應用程序開發。(前提是要有開發板)
9)要做底層開發,就必須知道軟硬件之間是如何銜接和配合工作的,那么電子技
術應該要好好學習了,很多時候會用到模擬電路知識,這是區別好手與菜鳥的不同之
處之一。
10)Linux 下的匯編要學,這樣你才能真正了解你寫的程序是如何在一個特定的
硬件上跑的。這是區別好手與菜鳥的不同之處之二。
11)TCP/IP 協議棧要學,所有的嵌入式高手都得掌握的東西,這是區別好手與菜
鳥的不同之處之三。
12)有了這些東西,拿下 Linux 驅動 已經不再話下,需要你去學習 Linux 內
核源代碼和Linux驅動程序設計,這是一個技術升華。
13)音頻、視頻的解碼譯碼技術你得學。
14)各種 IC ,各種 bootloader 你能夠參與其開發設計。
15)自行設計開發新產品,新技術。
學到這個地步差不多要花個3年的時間吧。但是后面的路該怎么走呢?嵌入式系統
性的東西搞了一個產品之后,基本上一些套路都摸清楚了。?
不同的行業,對于系統的要求是不一樣的,比如汽車行業,航空航天行業等一些
高精度,高安全的需要對實時性要求非常之高,對于安全性和可靠性的要求非常嚴格
。而有些行業比如消費類產品,娛樂類的,生活用具方面的對于用戶體驗是不一樣的
,數碼產品對于一些圖像聲音的處理,要求更高,需要高清,高品質的。而對于一些
通信設備類對于網絡的應答數據傳輸要求就非常嚴格,等等。這些根據不同的要求,
選擇符合自己的操作系統,能對開發工作有更大的幫助。
|