|
嵌入式的定義是以應用為中心,以計算機技術(shù)為基礎,并且軟硬件可定制,適用于各種應用場(chǎng)合,對功能、可靠性、成本、體積、功耗有嚴格要求的專(zhuān)用計算機系統。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶(hù)的應用程序等四個(gè)部分組成,用于實(shí)現對其他設備的控制、監視或管理等功能。 嵌入式系統幾乎包括了生活中的所有電器設備,如掌上 PDA 、移動(dòng)計算設備、電視機頂盒、手機上網(wǎng)、數字電視、多媒體、汽車(chē)、微波爐、數字相機、家庭自動(dòng)化系統、電梯、空調、安全系統、自動(dòng)售貨機、蜂窩式電話(huà)、消費電子設備、工業(yè)自動(dòng)化儀表與醫療儀器等。
??嵌入式系統一般指非PC系統,它包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲器及外設器件和I/O端口、圖形控制器等。軟件部分包括操作系統軟件(OS)(要求實(shí)時(shí)和多任務(wù)操作)和應用程序編程。有時(shí)設計人員把這兩種軟件組合在一起。應用程序控制著(zhù)系統的運作和行為;而操作系統控制著(zhù)應用程序編程與硬件的交互作用。
???對于在校大學(xué)生應該C語(yǔ)言基礎知識,要多看一些國外的經(jīng)典書(shū)籍,如,這是每位學(xué)習程序設計的人員必備知識。由于嵌入式是軟件和硬件相結合的產(chǎn)物,所以對于操作系統和微機原理的學(xué)習也是不可缺少的,有了這些做為基礎,去學(xué)習其他的一些東西就會(huì )很快的。
??嵌入式分為嵌入式軟件開(kāi)發(fā)和嵌入式硬件開(kāi)發(fā),嵌入式的軟件開(kāi)發(fā)在掌握了以上東西后要如魚(yú)得水。
??下面就以萬(wàn)達嵌入式Linux的課程體系為例,他是這樣列的:
??Linux基礎、Linux應用程序開(kāi)發(fā)、嵌入式Linux網(wǎng)絡(luò )程序開(kāi)發(fā)、嵌入式圖形界面與數據庫開(kāi)發(fā)、嵌入式linux開(kāi)發(fā)環(huán)境搭建、S3C2440的內部結構功能簡(jiǎn)介、BootLoader分析和移植、Linux內核移植、uCOS II 源碼分析和移植、根文件系統制作、BootLoader、內核綜合解析、Linux系統調試、ADS仿真調試與S3C2440硬件接口操作、ARM11接口、Linux下字符設備驅動(dòng)程序、Linux下塊設備驅動(dòng)程序、Linux下網(wǎng)絡(luò )設備驅動(dòng)程序、LCD設備驅動(dòng)、Flash設備驅動(dòng)、USB驅動(dòng)開(kāi)發(fā)等。
??要學(xué)習一個(gè)東西肯定要先學(xué)習他的操作,這就是linux基礎,也就是常用的linux操作,這樣的書(shū)籍太多了,找一些實(shí)用的來(lái)看就可以了。下來(lái)就是在我們先前學(xué)習的C語(yǔ)言的基礎上學(xué)習linux上的程序開(kāi)發(fā),這門(mén)課程現在在好多學(xué)校都沒(méi)有開(kāi)設,對于程序開(kāi)發(fā)者來(lái)說(shuō)是一門(mén)很重要的課程,不過(guò)萬(wàn)達嵌入式是把網(wǎng)絡(luò )程序開(kāi)發(fā)和圖形界面開(kāi)發(fā)與數據庫開(kāi)發(fā)分開(kāi)了,其實(shí)這些都屬于linux上的應用程序開(kāi)發(fā),可能也是為了方便大家認識這一門(mén)課程吧,條理更加清楚了。這一內容是企業(yè)開(kāi)發(fā)中應用最多的內容,也就是所謂的嵌入式應用層開(kāi)發(fā)。有了深入的C語(yǔ)言基礎這些內容都是很容易學(xué)會(huì )的。比較知名的書(shū)籍有已幫的的steves先生的《UNIX環(huán)境高級編程》可以說(shuō)是UNIX編程“圣經(jīng),這本書(shū)一定要好好的拜讀的。對于網(wǎng)絡(luò )程序開(kāi)發(fā)也是stevens先生的《UNIX網(wǎng)絡(luò )編程》,如果你想深入的掌握的話(huà)可以看一下《TCP/IP協(xié)議三卷》。對于圖形界面的開(kāi)發(fā)大家可以看一下Jasmin Blanchette的《C++GUI Qt4編程(第2版)》。掌握這些基本上就可以從事應用層開(kāi)發(fā)了。這些技術(shù)都是企業(yè)內部急用的內容。
??由于嵌入式的開(kāi)發(fā)不是在我們平時(shí)用的x86平臺上用的,所以我們需要把我們所寫(xiě)的程序放到相應的平臺上去,這時(shí)就用到了嵌入式開(kāi)發(fā)環(huán)境的搭建(見(jiàn)上面的課程體系),開(kāi)發(fā)環(huán)境的搭建主要就是交叉編譯開(kāi)發(fā)環(huán)境的搭建,這個(gè)東西你可以去網(wǎng)上去下,也可以自己動(dòng)手去做,但在實(shí)際當中用的時(shí)候需要你自己動(dòng)手去搭建。建議你先自己使用,然后慢慢的學(xué)著(zhù)去搭建。
??對于ARM9的操作,現在市場(chǎng)上主要是2410和2440,二個(gè)選擇一個(gè)用就可以了,內容差不太多,認真的研究透一個(gè)就可以了,對于ARM11的6410的操作就先不要考慮了,在萬(wàn)達嵌入式的課程體系中也安裝的也挺合理的,先是學(xué)習一下2410或2440再去學(xué)習6410,有了一定的基礎后再去學(xué)習6410才有可能把它操作起來(lái)。對于接口的一些操作就是把ARM當做一個(gè)單片機來(lái)操作,這樣的書(shū)籍可以去看一下周立功的書(shū)籍,它們對ARM說(shuō)的挺多的,不過(guò)他們用不是三星的產(chǎn)品,但是懂了其中一個(gè)其它的操作起也就可以了。
??對于2440的操作會(huì )了以后就可以去學(xué)習BootLoader的學(xué)習了,在萬(wàn)達嵌入式里面說(shuō)的是BootLoader的,這里只是說(shuō)了一個(gè)總稱(chēng),這里主要有u-boot,vivi,LILO等,如果你用的是ARM你可以先自己選擇一個(gè)小的BootLoader,比如vivi來(lái)學(xué)習,學(xué)會(huì )這一個(gè)了你去操作其它的都是一樣的了。
??對于操作系統的移植大體過(guò)程都是一樣的,主要是讓你做一個(gè)最小系統,方便以后驅動(dòng)的學(xué)習。對于嵌入式系統移植的話(huà)這方面還真沒(méi)有太多好的書(shū)籍,自己可以去網(wǎng)上搜一下。
??對于基礎知識都打好以后就可以進(jìn)攻驅動(dòng)程序開(kāi)發(fā),這個(gè)東西是一個(gè)比較漫長(cháng)的過(guò)程,一定要靜下心來(lái),慢慢的去閱讀代碼,慢慢的去學(xué)習。這樣的東西大家可以看一下《Linux內核源碼情景分析》、《深入理解Linux內核》等書(shū)籍。在萬(wàn)達嵌入式的課程體系里面他們說(shuō)到了好多關(guān)于驅動(dòng)開(kāi)發(fā)中的實(shí)例,確實(shí)是這樣子,驅動(dòng)開(kāi)發(fā)肯定要多接觸一些典型的驅動(dòng)程序開(kāi)發(fā)的案例,大家可以慢慢的跟著(zhù)課程體系里面的東西去學(xué)習。
???e-mail: tendgary@163.com
?? 參考網(wǎng)址:http://www.bestlinux.cn |
|