真正的嵌入式精英是如何修煉成的?
怎樣做才能快速的成為嵌入式高手呢? 其實(shí),做工程是沒(méi)有捷徑可走的.聽(tīng)聽(tīng)下面一個(gè)大牛人寫(xiě)的!看看有何真經(jīng)?
先說(shuō)做硬件:
把你的數(shù)字電路教材和模擬電路的教材讀熟,暫時(shí)先把重點(diǎn)放在數(shù)字電路上面,接著把微機(jī)原理和接口技術(shù)讀熟悉了,最好能用匯編寫(xiě)幾個(gè)簡(jiǎn)單的程序上機(jī)調(diào)試一下,這是很重要的。
完成上面的工作大概需要半年,不管你有多么的聰明,除非你以前這個(gè)基礎(chǔ)就打的不錯(cuò),否則,還是老老實(shí)實(shí)花上至少半年的時(shí)間!還是那句話(huà),沒(méi)有捷徑可走,如果你相信那些什么“21天學(xué)通xx”什么的,那么我告訴你,放棄做工程吧!再說(shuō),你這么容易就學(xué)會(huì)了,別人也能的,你確定能拿到高薪嗎?
下一步,就是選擇一個(gè)DSP(或其它的嵌入式CPU)平臺(tái)作為你的目標(biāo)平臺(tái),先熟悉它的架構(gòu)和與外圍電路的接口,然后學(xué)習(xí)她的指令集,也要寫(xiě)一些小程序去跑一下。這個(gè)時(shí)候,你應(yīng)該去買(mǎi)一個(gè)開(kāi)發(fā)板了,一般的廠(chǎng)家附帶會(huì)給你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。
完成上面兩步,說(shuō)明你已經(jīng)入了這個(gè)行業(yè)的門(mén)了,下一步,想成為高手的話(huà),就是自己去設(shè)計(jì)一些項(xiàng)目了,這個(gè)階段所花的時(shí)間每個(gè)人都是不同的,要看你的造化(主要是前面的基礎(chǔ)是否牢固)了。
再說(shuō)說(shuō)軟件:
在嵌入式行業(yè),你想做軟件開(kāi)發(fā)的話(huà),沒(méi)別的,那就深入理解C語(yǔ)言,尤其是C的指針,如果你以前學(xué)過(guò)C,但是沒(méi)有意識(shí)到C相比其它的高級(jí)語(yǔ)言的優(yōu)點(diǎn)的話(huà)(不是聽(tīng)別人說(shuō)的,你自己的體會(huì)),你可以按下面步驟來(lái)理解C:
1、重新翻一遍C的教材,記住一些常用的C語(yǔ)法,但不要死摳語(yǔ)法;
2、從編譯器的角度來(lái)理解C;
從編譯原理的角度來(lái)理解你工作中使用的高級(jí)語(yǔ)言,如果你做到這一點(diǎn),至少有兩個(gè)好處:
第一個(gè)好處是避免一大堆低水平重復(fù)出現(xiàn)的編譯錯(cuò)誤。一名優(yōu)秀的Coder平均在一個(gè)工作日中應(yīng)該完成200行以上的源碼,其編譯錯(cuò)誤應(yīng)該控制在5個(gè)以下,要知道這200行源碼不是一次完成的,所以大多數(shù)情況下你都要追求一次編譯通過(guò);
第二個(gè)好處是可以提高源碼的可讀性和效率。規(guī)范地編寫(xiě)你的代碼使你自己的邏輯清晰,因?yàn)槟忝靼锥嗉訋讉€(gè)括號(hào)和空行、多換行對(duì)齊、多注釋?zhuān)幾g器是會(huì)自動(dòng)識(shí)別的,不影響程序執(zhí)行的效率,反過(guò)來(lái),控制好遞歸調(diào)用和循環(huán)內(nèi)的if語(yǔ)句才是提高程序效率的關(guān)鍵,要全力避免遞歸,但要深刻理解遞歸,能通過(guò)自己建立堆棧來(lái)把遞歸程序轉(zhuǎn)換成非遞歸程序,要求還是較高的哦!
3、從硬件的角度來(lái)理解C。
完成上面3步,你就是C的高手了,接下來(lái)應(yīng)該去看看軟件工程方面的書(shū)了,這個(gè)我還不太懂,不敢妄言。
另外說(shuō)說(shuō)教材的選擇:學(xué)一門(mén)東西,選好你的教材,只要一本就可以了。堅(jiān)決防止這種情況的出現(xiàn):去圖書(shū)館借很多本書(shū),像搶劫似的,而只是每一本都翻翻,就又還給圖書(shū)館了的!注意上面我把匯編語(yǔ)言放在硬件學(xué)習(xí)的板塊里面,是由于匯編跟硬件的關(guān)系太緊密了,以至于是先學(xué)匯編還是先學(xué)習(xí)硬件電路和CPU架構(gòu)成了要分清到底是“先有雞還是先有蛋”的千年哲學(xué)難題了。
嵌入式操作系統(tǒng)一覽
其實(shí),嵌入式系統(tǒng)并不是一個(gè)新生的事物,從八十年代起,國(guó)際上就有一些IT組織、公司,開(kāi)始進(jìn)行商用嵌入式系統(tǒng)和專(zhuān)用操作系統(tǒng)的研發(fā)。這其中涌現(xiàn)了一些著名的嵌入式系統(tǒng):
1,Windows CE
Microsoft Windows CE是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線(xiàn)程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對(duì)于從掌上電腦到專(zhuān)用的工業(yè)控制器的用戶(hù)電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200K的ROM。
2,VxWorks
VxWorks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛、市場(chǎng)占有率最高的系統(tǒng)。它支持多種處理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多數(shù)的VxWorks API是專(zhuān)有的。采用GNU的編譯和調(diào)試器。
3,pSOS
ISI公司已經(jīng)被WinRiver公司兼并,現(xiàn)在pSOS屬于WindRiver公司的產(chǎn)品。這個(gè)系統(tǒng)是一個(gè)模塊化、高性能的實(shí)時(shí)操作系統(tǒng),專(zhuān)為嵌入式微處理器設(shè)計(jì),提供一個(gè)完全多任務(wù)環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和高可靠性。可以讓開(kāi)發(fā)者根據(jù)操作系統(tǒng)的功能和內(nèi)存需求定制成每一個(gè)應(yīng)用所需的系統(tǒng)。開(kāi)發(fā)者可以利用它來(lái)實(shí)現(xiàn)從簡(jiǎn)單的單個(gè)獨(dú)立設(shè)備到復(fù)雜的、網(wǎng)絡(luò)化的多處理器系統(tǒng)。
4,QNX
QNX是一個(gè)實(shí)時(shí)的、可擴(kuò)充的操作系統(tǒng),它部分遵循POSIX相關(guān)標(biāo)準(zhǔn),如:POSIX.1b實(shí)時(shí)擴(kuò)展。它提供了一個(gè)很小的微內(nèi)核以及一些可選的配合進(jìn)程。其內(nèi)核僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它OS服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶(hù)進(jìn)程,因此QNX內(nèi)核非常小巧(QNX4.x大約為12Kb)而且運(yùn)行速度極快。這個(gè)靈活的結(jié)構(gòu)可以使用戶(hù)根據(jù)實(shí)際的需求,將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個(gè)處理器的超級(jí)虛擬機(jī)操作系統(tǒng)。
5,Palm OS
3Com公司的Palm OS在PDA市場(chǎng)上占有很大的市場(chǎng)份額,它有開(kāi)放的操作系統(tǒng)應(yīng)用程序接口(API),開(kāi)發(fā)商可以根據(jù)需要自行開(kāi)發(fā)所需要的應(yīng)用程序。
6,OS-9
Microwave的OS-9是為微處理器的關(guān)鍵實(shí)時(shí)任務(wù)而設(shè)計(jì)的操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括消費(fèi)電子產(chǎn)品、工業(yè)自動(dòng)化、無(wú)線(xiàn)通訊產(chǎn)品、醫(yī)療儀器、數(shù)字電視/多媒體設(shè)備。它提供了很好的安全性和容錯(cuò)性。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級(jí)性非常突出。
7,LynxOS
Lynx Real-time Systems的LynxOS是一個(gè)分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時(shí)操作系統(tǒng),它遵循POSIX.1a、POSIX.1b和POSIX.1c標(biāo)準(zhǔn)。LynxOS支持線(xiàn)程概念,提供256個(gè)全局用戶(hù)線(xiàn)程優(yōu)先級(jí);提供一些傳統(tǒng)的、非實(shí)時(shí)系統(tǒng)的服務(wù)特征;包括基于調(diào)用需求的虛擬內(nèi)存,一個(gè)基于Motif的用戶(hù)圖形界面,與工業(yè)標(biāo)準(zhǔn)兼容的網(wǎng)絡(luò)系統(tǒng)以及應(yīng)用開(kāi)發(fā)工具。
目前,世面上有很多商業(yè)性嵌入式系統(tǒng)都在努力地為自己爭(zhēng)取著嵌入式市場(chǎng)的份額。但是,這些專(zhuān)用操作系統(tǒng)均屬于商業(yè)化產(chǎn)品,價(jià)格昂貴;而且,由于它們各自的源代碼不公開(kāi),使得每個(gè)系統(tǒng)上的應(yīng)用軟件與其它系統(tǒng)都無(wú)法兼容。并且,由于這種封閉性還導(dǎo)致了商業(yè)嵌入式系統(tǒng)在對(duì)各種設(shè)備的支持方面存在很大的問(wèn)題,使得對(duì)它們的軟件移植變得很困難。在嵌入式這個(gè)IT產(chǎn)業(yè)的新的關(guān)鍵領(lǐng)域,Linux操作系統(tǒng)適時(shí)地出現(xiàn)在了國(guó)家和國(guó)內(nèi)各嵌入式廠(chǎng)商面前,由于Linux自身諸多優(yōu)勢(shì),吸引了許多開(kāi)發(fā)商的目光,成為嵌入式操作系統(tǒng)的新寵。它的出現(xiàn)無(wú)疑為國(guó)家發(fā)展嵌入式操作系統(tǒng)事業(yè)提供了一個(gè)極有吸引力的機(jī)會(huì)。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論