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