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