嵌入式學(xué)習(xí)方法大全
嵌入式學(xué)習(xí)方法步驟(必備)【1】
嵌入式門檻雖然較高,但也跟其他事物一樣,并不是牢不可破。
只要我們用心去對待,冬雪終將化去,春風(fēng)定會(huì)吹來。
具體步驟如下:
1、《C語言》第二版 譚浩強(qiáng) ; 《C程序設(shè)計(jì)語言》第二版 徐寶文譯 機(jī)械工業(yè)出版社 你能區(qū)分開指針數(shù)組和數(shù)組指針嗎?你知道函數(shù)指針嗎?
你能區(qū)分開定義一個(gè)變量時(shí)系統(tǒng)給它分配的空間與用malloc()函數(shù)給一個(gè)變量分配的空
間有什么不一樣嗎?
2、《數(shù)據(jù)結(jié)構(gòu)》C語言版 黃國愉、葉乃青編 清華大學(xué)出版社
你能合上書本,用C語言實(shí)現(xiàn)書中的單鏈表、雙鏈表數(shù)據(jù)結(jié)構(gòu)嗎?
3、《實(shí)用C++程序設(shè)計(jì)》第二板 中國電力出版社 Steve_Oualline著
此階段主要是學(xué)習(xí)其面向?qū)ο蟮木幊趟枷耄由顚語言和數(shù)據(jù)結(jié)構(gòu)的理解。
4、學(xué)習(xí)單片機(jī),最好能找個(gè)前輩帶一帶。
你能用51單片機(jī)做出一樣實(shí)際的東西嗎?即使它再簡單!
要注意加深對中斷的理解。
5、學(xué)習(xí)ARM單片機(jī)。
(1)、細(xì)讀《ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)》周立工編寫(注:即使你不用書中的開發(fā)板)
(2)、細(xì)讀相關(guān)芯片的原版英文文檔。
如:arm920TE.pdf S3C2410_1.2.pdf
6、學(xué)習(xí)uCOS!!操作系統(tǒng)。
(1)、細(xì)讀《嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-!!》第二版 召貝貝譯
你能把uCOS!!移植到自己的平臺上嗎?
(2)、能編寫在uCOS!!操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動(dòng)程序
7、熟悉Linux環(huán)境,學(xué)習(xí)Linux環(huán)境編程,學(xué)習(xí)交叉編程
(1)、細(xì)讀《linux命令大全.pdf》
(2)、細(xì)讀《GNU Make 使用手冊(中譯版).pdf》
(3)、學(xué)習(xí)創(chuàng)建交叉編程環(huán)境.
8、學(xué)習(xí)Linux操作系統(tǒng)。
(1)、《UNIX環(huán)境高級編程》
(2)、細(xì)讀“joyfire 筆記”,可在“www.qianrushi.com”網(wǎng)站的好書下載欄目獲取
(3)、細(xì)讀《linux內(nèi)核完全注釋》
(4)、細(xì)讀《understanding the linux kernel 2》
(5)、利用源代碼閱讀利器工具"Source Insight"進(jìn)行真正的linux內(nèi)核原碼刨析
(6)、最后進(jìn)行內(nèi)核移植,并能編寫在linux操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動(dòng)
程序
9、學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)編寫。
可參考《Linux設(shè)備驅(qū)動(dòng)程序》
10、復(fù)習(xí)C++,學(xué)習(xí)用QT進(jìn)行圖形界面編程
(1)、細(xì)讀《QT編程寶典》
(2)、學(xué)會(huì)通過查看QT電子文檔進(jìn)行QT GUI實(shí)地編程
(3)、學(xué)習(xí)交叉編程.(其實(shí)就是把命令qmake變?yōu)閠make)
11、當(dāng)然,你也可學(xué)習(xí)一下PCB的制作和設(shè)計(jì)一個(gè)自己的CPU(即軟殼)
學(xué)習(xí)嵌入式系統(tǒng)的10點(diǎn)建議
現(xiàn)在,國內(nèi)似乎在進(jìn)行一個(gè)全民學(xué)習(xí)嵌入式的運(yùn)動(dòng),但據(jù)了解,很多人在整個(gè)學(xué)習(xí)的過程中,由于某些技術(shù)領(lǐng)域的空白或者是技術(shù)尚未成熟,再加上個(gè)人學(xué)習(xí)方法不正確,給個(gè)人的學(xué)習(xí)造成了極大的阻礙,遇到這種情況該如何解決?根據(jù)本人有限的學(xué)習(xí)經(jīng)驗(yàn),給學(xué)習(xí)嵌入式的人以下10點(diǎn)建議:
1. 遇到問題,首先進(jìn)入baidu.com、www.google.com(或是其他搜索引擎)搜索一下,任何一個(gè)嵌入式工程師都不敢否認(rèn),這是學(xué)習(xí)嵌入式最好的老師!
2. 盡可能多的論壇,遇到問題,及時(shí)發(fā)貼,情況緊急的時(shí)候,可以在不同的論壇同時(shí)發(fā)貼,這樣,并行處理你的問題也許會(huì)解決得更快些.
3. 盡可能多的結(jié)交嵌入式高手,最好是在公司上班的嵌入式工程師,他們有一個(gè)優(yōu)勢:了解市場,了解業(yè)界的發(fā)展動(dòng)態(tài).和他們多混混,對尚未上班的學(xué)習(xí)者來說,是非常有必要的.
4. 要經(jīng)常進(jìn)入一些好的嵌入式網(wǎng)站,尤其是一些國外的網(wǎng)站,去看看嵌入式的發(fā)展動(dòng)態(tài),并且,要把這些網(wǎng)站都收集起來...
5. 如果可能,我建議大家在網(wǎng)上訂一下電子刊物,這些電子刊物是按時(shí)發(fā)到你郵箱的,那些資訊都是最新的,可以說是很前衛(wèi)的了.....如果資金允許,建議報(bào)名參加嵌入式培訓(xùn)班,比如比較有名氣的海同嵌入式培訓(xùn)(iotek.com.cn)。
在培訓(xùn)公司可以很快的入門提高,這樣可以更好的提高學(xué)習(xí)效率。
6. 相信自己的選擇,相信自己行業(yè)的發(fā)展前景,要對自己的選擇和自己的行業(yè)有濃厚的興趣,這一點(diǎn)做不到,你就很難學(xué)到很高深的層次!
7. 追求要執(zhí)著!剛開始學(xué)習(xí)嵌入式系統(tǒng),肯定會(huì)遇到很多問題,我當(dāng)時(shí)也是這樣,學(xué)了三個(gè)多月,好像一點(diǎn)進(jìn)展都沒有,我在懷疑:難道我不適合搞嵌入式?當(dāng)時(shí)我也想過放棄,但心里太不甘心了,腳都踏出了一只,我不能就這樣屈了!于是就硬上,不斷的琢磨....(現(xiàn)在,終于知道什么是嵌入式linux了,哈哈....)
8. 不要對自己要求過高,只要你比昨天進(jìn)步了一點(diǎn),你就離成功又近了一步!學(xué)習(xí)嵌入式也忌浮氣燥(其實(shí)這一點(diǎn),我最有感觸!),也就是要踏實(shí).
9. 萬丈高樓平地起,不要忽略了低層的東西,你越是學(xué)習(xí)到高層的技術(shù),越是發(fā)覺低層的東西有用,這些大家以后會(huì)有所體會(huì)的!我大一學(xué)習(xí)51單片機(jī)的時(shí)候,感覺它沒什么用處,大二學(xué)習(xí)ARM處理器,才知道,沒有51的基礎(chǔ),可能還不知道要多花多少時(shí)間才能搞懂ARM的硬件.
10. 系統(tǒng)的選型的問題.現(xiàn)在的開源操作系統(tǒng)已經(jīng)很多了,并且也做得非常成熟,初學(xué)者也會(huì)為此而煩惱.目前較為流行的嵌入式操作系統(tǒng)有:linux,winCE,VxWork,uC/OS2等等....主要區(qū)別在于實(shí)時(shí)性的問題.如果你是搞自控(像我學(xué)習(xí)的專業(yè),不過我不玩控制的....),學(xué)習(xí)實(shí)時(shí)性高一點(diǎn)的操作系統(tǒng)更有幫助,如VxWork.如果你想以后搞民用產(chǎn)品,如手機(jī),機(jī)頂盒,終端設(shè)備之類的,學(xué)習(xí)linux,winCE這些方便于多任務(wù)運(yùn)行的操作系統(tǒng)較好!建議你在學(xué)習(xí)之前先了解該系統(tǒng)的市場占有率,學(xué)東西得看看學(xué)完它之后到底有沒有作為啊,否則,你就一輩子只有自己玩系統(tǒng)啰...
嵌入式學(xué)習(xí)方法【2】
嵌入式學(xué)習(xí)步驟
嵌入式門檻雖然較高,但也跟其他事物一樣,并不是牢不可破。
只要我們用心去對待,冬雪終將化去,春風(fēng)定會(huì)吹來。
具體步驟如下:
1、《C語言》第二版 譚浩強(qiáng) ; 《C程序設(shè)計(jì)語言》第二版 徐寶文譯 機(jī)械工業(yè)出版社 你能區(qū)分開指針數(shù)組和數(shù)組指針嗎?你知道函數(shù)指針嗎?
你能區(qū)分開定義一個(gè)變量時(shí)系統(tǒng)給它分配的空間與用malloc()函數(shù)給一個(gè)變量分配的空間有什么不一樣嗎?
2、《數(shù)據(jù)結(jié)構(gòu)》C語言版 黃國愉、葉乃青編 清華大學(xué)出版社
你能合上書本,用C語言實(shí)現(xiàn)書中的單鏈表、雙鏈表數(shù)據(jù)結(jié)構(gòu)嗎?
3、《實(shí)用C++程序設(shè)計(jì)》第二板 中國電力出版社 Steve_Oualline著
此階段主要是學(xué)習(xí)其面向?qū)ο蟮木幊趟枷,加深對C語言和數(shù)據(jù)結(jié)構(gòu)的理解。
4、學(xué)習(xí)單片機(jī),最好能找個(gè)前輩帶一帶。
你能用51單片機(jī)做出一樣實(shí)際的東西嗎?即使它再簡單!
要注意加深對中斷的理解。
5、學(xué)習(xí)ARM單片機(jī)。
(1)、細(xì)讀《ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)》周立工編寫(注:即使你不用書中的開發(fā)板)
(2)、細(xì)讀相關(guān)芯片的原版英文文檔。
如:arm920TE.pdf S3C2410_1.2.pdf
6、學(xué)習(xí)uCOS!!操作系統(tǒng)。
(1)、細(xì)讀《嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-!!》第二版 召貝貝譯
你能把uCOS!!移植到自己的平臺上嗎?
(2)、能編寫在uCOS!!操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動(dòng)程序
7、熟悉Linux環(huán)境,學(xué)習(xí)Linux環(huán)境編程,學(xué)習(xí)交叉編程
(1)、細(xì)讀《linux命令大全.pdf》
(2)、細(xì)讀《GNU Make 使用手冊(中譯版).pdf》
(3)、學(xué)習(xí)創(chuàng)建交叉編程環(huán)境.
8、學(xué)習(xí)Linux操作系統(tǒng)。
(1)、《UNIX環(huán)境高級編程》
(2)、細(xì)讀“joyfire 筆記”,可在“www.qianrushi.com”網(wǎng)站的好書下載欄目獲取
(3)、細(xì)讀《linux內(nèi)核完全注釋》
(4)、細(xì)讀《understanding the linux kernel 2》
(5)、利用源代碼閱讀利器工具"Source Insight"進(jìn)行真正的linux內(nèi)核原碼刨析
(6)、最后進(jìn)行內(nèi)核移植,并能編寫在linux操作系統(tǒng)環(huán)境下運(yùn)行的針對具體硬件的驅(qū)動(dòng)程序
9、學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)編寫。
可參考《Linux設(shè)備驅(qū)動(dòng)程序》
10、復(fù)習(xí)C++,學(xué)習(xí)用QT進(jìn)行圖形界面編程
(1)、細(xì)讀《QT編程寶典》
(2)、學(xué)會(huì)通過查看QT電子文檔進(jìn)行QT GUI實(shí)地編程
(3)、學(xué)習(xí)交叉編程.(其實(shí)就是把命令qmake變?yōu)閠make)
11、當(dāng)然,你也可學(xué)習(xí)一下PCB的制作和設(shè)計(jì)一個(gè)自己的CPU(即軟殼)
在嵌入式軟件方面最重要的課程包括:
(1) 嵌入式微處理器結(jié)構(gòu)與應(yīng)用:
這是一門嵌入式硬件基礎(chǔ)課程,我們說過,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。
若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計(jì)特別講究時(shí)空效率),怎么能寫出驅(qū)動(dòng)程序(驅(qū)動(dòng)程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時(shí)都要求熟悉ARM處理器,將來若同學(xué)到公司中從事嵌入式軟件開發(fā),公司都會(huì)給你一本該設(shè)備的硬件規(guī)格說明書 (xxx Specification),你必須能看懂其中的內(nèi)存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設(shè)計(jì)軟件。
有些同學(xué)覺得嵌入式處理 器課程較枯燥,這主要是硬件課程都較抽象的原因。
還有同學(xué)對ARM匯編不感興趣,以為嵌入式開發(fā)用C語言就足夠了。
其實(shí)不應(yīng)僅是將匯編語言當(dāng)成一個(gè)程序設(shè)計(jì)語言,學(xué)匯編主要是為了掌握處理器工作原理的。
一個(gè)不熟悉匯編語言的人,怎么能在該處理器寫出最優(yōu)的C語言代碼。
在嵌入式開發(fā)的一些關(guān)鍵部分,有時(shí)還必須寫匯編,如Bootloader等(可能還包括BSP)。
特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前還會(huì)用到匯編寫程序的,盡管用到的機(jī)會(huì)相對C要小得多。
當(dāng)你在一個(gè)嵌入式公司工作時(shí),在查看描述原理的手冊時(shí),可能很多都是用匯編描述的,這是因?yàn)楹芏嘤布O(shè)計(jì)人員只會(huì)寫或者喜歡用匯編描述,此時(shí)你就必須看懂匯編程序,否則軟硬件人員可能就無法交流。
很多嵌入式職位招聘時(shí)都要求熟悉匯編。
[小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire (冷火)等,但ARM占據(jù)了絕對主流(有資料說手機(jī)中幾乎90%都是ARM處理器)。
ARM是一個(gè)只賣知識產(chǎn)權(quán)的公司,目前獲得購買了ARM CPU核授權(quán)許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎(chǔ)上進(jìn)行了一些外圍擴(kuò)展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內(nèi)核,指令一級是相同的)。
而眾多中小公司又購買了這些處理器,設(shè)計(jì)了各種各樣的開發(fā)板,如華恒等國內(nèi)很多著名嵌入式公司都生產(chǎn)基于SamsungS3C2410的開發(fā)板,供最終用戶使用或供教學(xué)實(shí)驗(yàn)。
在ARM這個(gè)食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(我們這些要采購嵌入式開發(fā)板的)則是喂蝦米的。
Intel早期生產(chǎn)的是低端ARM(Strong ARM,相當(dāng)于ARM 7),現(xiàn)在轉(zhuǎn)向主要生產(chǎn)高端ARM(即Intel Xscale處理器,屬于ARMv5家族,主要用在高端PDA上,如HP和DELL生產(chǎn)的PDA都采用Intel Xscale,價(jià)格較高)。
目前應(yīng)用最多的是ARM 7和ARM 9兩類處理器。
ARM 7較便宜,可跑uclinux(是一個(gè)不支持高級內(nèi)存管理功能的嵌入式Linux系統(tǒng)統(tǒng))、Vxworks、uc/os II等實(shí)時(shí)操作系統(tǒng),但因處理器不帶內(nèi)存管理單元MMU(無內(nèi)存分頁和地址映射機(jī)制,所以不能使用虛擬內(nèi)存),所以不能跑Windows CE,另外通用Linux中的某些內(nèi)存管理功能也不能用在ARM 7上。
ARM 9大都是一個(gè)帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數(shù)功能。
ARM7和ARM9的區(qū)別是在與體系結(jié)構(gòu)上,前者是馮?諾伊曼結(jié) 構(gòu),后者是哈佛結(jié)構(gòu)——指令和數(shù)據(jù)總線是分開的。
以上是我的一點(diǎn)了解,可能有不對的地方。
我們學(xué)院有十幾套ARM 7開發(fā)系統(tǒng)(采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結(jié)構(gòu)、實(shí)時(shí)操作系統(tǒng)等課程實(shí)驗(yàn)用),ARM 9的系統(tǒng)好象也已經(jīng)到了(采用的`芯片我不知道也沒去問),還有以前的十幾套MPC860開發(fā)板(聽說價(jià)格都很貴,很容易損壞),同學(xué)應(yīng)愛護(hù)使用和珍惜這樣 的實(shí)驗(yàn)機(jī)會(huì)。
(2) 嵌入式操作系統(tǒng)類課程
除了WinCE的實(shí)時(shí)性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實(shí)時(shí)性都很強(qiáng),所以也可稱為實(shí)時(shí)操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個(gè)嵌入式操作系統(tǒng),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。
目前最重要的RTOS主要包括:
第一類、傳統(tǒng)的經(jīng)典RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開發(fā)平臺。
Vxworks因出現(xiàn)稍早,實(shí)時(shí)性很強(qiáng)(據(jù)說可在1ms內(nèi)響應(yīng)外部事件請求),并且內(nèi)核可極微(據(jù)說最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半 疆山。
特別是在通信設(shè)備等實(shí)時(shí)性要求較高的系統(tǒng)中,幾乎非Vxworks莫屬。
Vxworks的很多概念和技術(shù)都和Linux很類似,主要是C語言開發(fā)。
像Bell- alcatel、Lucent、華為等通信企業(yè)在開發(fā)產(chǎn)品時(shí),Vxworks用得很多。
但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不 起。
目前很多公司都在往嵌入式Linux轉(zhuǎn)(聽說華為目前正在這樣轉(zhuǎn))。
但無論如何,Vxworks在一段長時(shí)間內(nèi)仍是不可動(dòng)搖的。
與Vxworks類似 的稍有名的實(shí)時(shí)操作系統(tǒng)還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費(fèi)、開源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會(huì)低。
Linux本身不是一個(gè)為嵌入式設(shè)計(jì)的操作系統(tǒng),不是微內(nèi)核的,并且實(shí)時(shí)性不強(qiáng)。
目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩種:
一種是專為嵌入式設(shè)計(jì)的已被裁減過的Linux系統(tǒng),最常用的是uClinux(不帶MMU功能),目前占較大應(yīng)用份額,可在ARM7上跑;另一種是跑在 ARM 9上的,一般是將Linux2.4.18內(nèi)核移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。
很多人預(yù)測,嵌入式Linux預(yù)計(jì)將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。
缺點(diǎn)是熟悉Linux的人太少,開發(fā)難度稍大。
另外,目前我們 能發(fā)現(xiàn)很多教材和很多大學(xué)都以ucOS/II為教學(xué)用實(shí)時(shí)操作系統(tǒng),這主要是由于ucOS/II較簡單,且開源,非常適合入門者學(xué)習(xí)實(shí)時(shí)操作系統(tǒng)原理,但 由于ucOS/II功能有限,實(shí)用用得較少。
況且熟悉了Linux開發(fā),不僅在嵌入式領(lǐng)域有用,對開發(fā)Linux應(yīng)用軟件,對加深操作系統(tǒng)的認(rèn)識也有幫 助,可謂一舉多得。
據(jù)我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發(fā),F(xiàn)ujitum則是在自己的處理器上大搞Linux 開發(fā)。
目前在嵌入式Linux領(lǐng)域,以下幾個(gè)方面的人特別難找,一是能將Linux移植到某個(gè)新型號的開發(fā)版上;二是能寫Linux驅(qū)動(dòng)程序的人;三是熟悉Linux內(nèi)核裁減和優(yōu)化的人。
不過LINUX有一個(gè)硬傷,就是沒有WINDOWS那樣的友好方便美觀 的交互界面,不然微軟帝國早就守不住了。
第三類、 Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場,MS永遠(yuǎn)是最厲害的,WinCE出來只有幾年時(shí)間,但目前已占據(jù)了很大市場份額,特別是在PDA、手機(jī)、顯示儀表等界面要求較高或者要求快速開發(fā)的場合,WinCE目前已很流行(據(jù)說有一家賣工控機(jī)的公司板子賣得太好,以至來不及為客戶裁減WinCE)。
WinCE目前主要為4.2版(.NET),開發(fā)平臺主要為WinCE Platform Builder,有時(shí)也用EVC環(huán)境開發(fā)一些較上層的應(yīng)用,由于WinCE開發(fā)都是大家熟悉的VC++環(huán)境,所以我院學(xué)過Windows程序設(shè)計(jì)課程的同 學(xué)都不會(huì)有多大難度,這也是WinCE容易被人們接受的原因,開發(fā)環(huán)境方便快速,微軟的強(qiáng)大技術(shù)支持,WinCE開發(fā)難度遠(yuǎn)低于嵌入式Linux。
對于急于完成,不想拿嵌入式Linux冒險(xiǎn)的開發(fā)場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學(xué)生學(xué)習(xí)那樣試試看,保證開發(fā)成功更重要。
根據(jù)不同的側(cè)重點(diǎn),WinCE還有兩個(gè)特殊版本,一個(gè)是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),另一個(gè)是MS SmartPhone操作系統(tǒng)用于智能手機(jī)上(帶PDA功能的手機(jī)),兩者也都屬于WinCE平臺。
在PDA和手機(jī)市場上,除WinCE外,著名的PDA 嵌入式操作系統(tǒng)還有Palm OS(因出現(xiàn)很早,很有名)、Symbian等,但在WinCE的強(qiáng)勁沖擊下,Palm和Symbian來日還能有多
長?同學(xué)學(xué)過VC++后再學(xué) WinCE,非常方便自然,通過學(xué)習(xí)WinCE同樣也可了解嵌入式軟件的一般開發(fā)過程,對Linux有懼怕心理的同學(xué)也很合適。
很顯然,嵌入式Linux 永遠(yuǎn)不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時(shí)間,但你能看到幾個(gè) 在PC機(jī)上真正使用LINUX的用戶?據(jù)我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實(shí)際用得更多.嵌入式LINUX可能更多地是一些有長遠(yuǎn)產(chǎn)品計(jì)劃的公司,為降低成本而進(jìn)行長遠(yuǎn)考慮.WinCE和多媒體(如MPEG技術(shù))是微軟亞洲工程院目前做得較多的項(xiàng)目領(lǐng)域之 一,現(xiàn)在社會(huì)很需要精通WinCE的人。
現(xiàn)在有WINCE的智能手機(jī),金山詞霸、WORD、EXCEL、REGEDIT等居然都有 smartphone版的,PC上的MP3、DOC等居然在download時(shí)都可被自動(dòng)轉(zhuǎn)換成smartphone格式,很爽的。
完全可用 Windows CE自己開發(fā)一些需要的程序download到自己的手機(jī)上。
現(xiàn)在市面銷售PDA智能手機(jī)火爆,MS總是財(cái)源滾滾。
總結(jié)關(guān)于嵌入式操作系統(tǒng)類課程,若你覺得自己功底較深且能鉆研下去,則可去學(xué)嵌入式Linux;若你覺得自己VC++功底較好且想短平快地學(xué)嵌入式開發(fā),自學(xué)WINCE是非常好的選擇。
(3) 嵌入式開發(fā)的相關(guān)領(lǐng)域
搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。
主要的相關(guān)領(lǐng)域包括:
A、數(shù)字圖像壓縮技術(shù):這是嵌入式最重要最熱門的應(yīng)用領(lǐng)域之一,主要是應(yīng)掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機(jī)頂盒等都涉及MPEG高速解碼問題。
B、 通信協(xié)議及編程技術(shù):這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無線通信協(xié)議。
首先,大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握 TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無線通信是目前的大趨勢,所以掌握無線通信協(xié)議及編程也是是很重要的。
無線通信協(xié)議包括無線 局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動(dòng)通信(如GPRS、GSM、CDMA等)。
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA,以及各種網(wǎng)絡(luò)安全設(shè)備,包括硬件防火墻,入侵檢測IDS,還有防毒墻,IPS等,中國在這方面還是沒有自己優(yōu)勢的,我們陳院長好象正在往這方面發(fā)展.
D、 DSP技術(shù):DSP是Digital Signal Process數(shù)字信號處理的意思,DSP處理器通過硬件實(shí)現(xiàn)數(shù)字信號處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。
數(shù)字信號處理是電子、通信等硬件 專業(yè)的課程,對于搞軟件的人若能了解一下最好。
目前DSP人才較缺。
如果有信號與系統(tǒng)、數(shù)字信號處理等課程基礎(chǔ),對于學(xué)習(xí)MPEG編解碼原理會(huì)有很大幫助。
(4)嵌入式開發(fā)的相關(guān)硬件基礎(chǔ)
對于軟件工程專業(yè)的學(xué)生,從事嵌入式軟件開發(fā),像數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)等硬件課程是較重要的。
另外,匯編語言、C/C++ 數(shù)據(jù)結(jié)構(gòu)算法、特別是操作系統(tǒng)等軟件基礎(chǔ)課也是十分重要的。
我們的主要目地是能看懂硬件工作原理,但重點(diǎn)應(yīng)是在嵌入式軟件,特別操作系統(tǒng)級軟件,那將是我們的優(yōu)勢。
我們的研究生里有些是學(xué)電子、通信類專業(yè)過來的,有較好的模擬電路和單片機(jī)基礎(chǔ),學(xué)嵌入式非常合適。
嵌入式本身就是從單片機(jī)發(fā)展過來的,只是單片機(jī)不帶OS,而現(xiàn)在很多嵌入式應(yīng)用越來越復(fù)雜,以至不得不引入嵌入式操作系統(tǒng)。
另外,為追求更高速的信號處理速度,現(xiàn)在在一些速度要求較高場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實(shí)現(xiàn),這就涉及到HDL數(shù)字電路設(shè)計(jì)技術(shù)及其 FPGA/IP核實(shí)現(xiàn)技術(shù),這方面的人目前市場上也很缺。
學(xué)習(xí)嵌入式系統(tǒng)的10點(diǎn)建議
現(xiàn)在,國內(nèi)似乎在進(jìn)行一個(gè)全民學(xué)習(xí)嵌入式的運(yùn)動(dòng),但據(jù)了解,很多人在整個(gè)學(xué)習(xí)的過程中,由于某些技術(shù)領(lǐng)域的空白或者是技術(shù)尚未成熟,再加上個(gè)人學(xué)習(xí)方法不正確,給個(gè)人的學(xué)習(xí)造成了極大的阻礙,遇到這種情況該如何解決?根據(jù)本人有限的學(xué)習(xí)經(jīng)驗(yàn),給學(xué)習(xí)嵌入式的人以下10點(diǎn)建議:
1. 遇到問題,首先進(jìn)入baidu.com、(或是其他搜索引擎)搜索一下,任何一個(gè)嵌入式工程師都不敢否認(rèn),這是學(xué)習(xí)嵌入式最好的老師!
2. 盡可能多的論壇,遇到問題,及時(shí)發(fā)貼,情況緊急的時(shí)候,可以在不同的論壇同時(shí)發(fā)貼,這樣,并行處理你的問題也許會(huì)解決得更快些.
3. 盡可能多的結(jié)交嵌入式高手,最好是在公司上班的嵌入式工程師,他們有一個(gè)優(yōu)勢:了解市場,了解業(yè)界的發(fā)展動(dòng)態(tài).和他們多混混,對尚未上班的學(xué)習(xí)者來說,是非常有必要的.
4. 要經(jīng)常進(jìn)入一些好的嵌入式網(wǎng)站,尤其是一些國外的網(wǎng)站,去看看嵌入式的發(fā)展動(dòng)態(tài),并且,要把這些網(wǎng)站都收集起來...
5. 如果可能,我建議大家在網(wǎng)上訂一下電子刊物,這些電子刊物是按時(shí)發(fā)到你郵箱的,那些資訊都是最新的,可以說是很前衛(wèi)的了.....如果資金允許,建議報(bào)名參加嵌入式培訓(xùn)班,比如比較有名氣的海同嵌入式培訓(xùn)(iotek.com.cn)。
在培訓(xùn)公司可以很快的入門提高,這樣可以更好的提高學(xué)習(xí)效率。
6. 相信自己的選擇,相信自己行業(yè)的發(fā)展前景,要對自己的選擇和自己的行業(yè)有濃厚的興趣,這一點(diǎn)做不到,你就很難學(xué)到很高深的層次!
7. 追求要執(zhí)著!剛開始學(xué)習(xí)嵌入式系統(tǒng),肯定會(huì)遇到很多問題,我當(dāng)時(shí)也是這樣,學(xué)了三個(gè)多月,好像一點(diǎn)進(jìn)展都沒有,我在懷疑:難道我不適合搞嵌入式?當(dāng)時(shí)我也想過放棄,但心里太不甘心了,腳都踏出了一只,我不能就這樣屈了!于是就硬上,不斷的琢磨....(現(xiàn)在,終于知道什么是嵌入式linux了,哈哈....)
8. 不要對自己要求過高,只要你比昨天進(jìn)步了一點(diǎn),你就離成功又近了一步!學(xué)習(xí)嵌入式也忌浮氣燥(其實(shí)這一點(diǎn),我最有感觸!),也就是要踏實(shí).
9. 萬丈高樓平地起,不要忽略了低層的東西,你越是學(xué)習(xí)到高層的技術(shù),越是發(fā)覺低層的東西有用,這些大家以后會(huì)有所體會(huì)的!我大一學(xué)習(xí)51單片機(jī)的時(shí)候,感覺它沒什么用處,大二學(xué)習(xí)ARM處理器,才知道,沒有51的基礎(chǔ),可能還不知道要多花多少時(shí)間才能搞懂ARM的硬件.
10. 系統(tǒng)的選型的問題.現(xiàn)在的開源操作系統(tǒng)已經(jīng)很多了,并且也做得非常成熟,初學(xué)者也會(huì)為此而煩惱.目前較為流行的嵌入式操作系統(tǒng)有:linux,winCE,VxWork,uC/OS2等等....主要區(qū)別在于實(shí)時(shí)性的問題.如果你是搞自控(像我學(xué)習(xí)的專業(yè),不過我不玩控制的....),學(xué)習(xí)實(shí)時(shí)性高一點(diǎn)的操作系統(tǒng)更有幫助,如VxWork.如果你想以后搞民用產(chǎn)品,如手機(jī),機(jī)頂盒,終端設(shè)備之類的,學(xué)習(xí)linux,winCE這些方便于多任務(wù)運(yùn)行的操作系統(tǒng)較好!建議你在學(xué)習(xí)之前先了解該系統(tǒng)的市場占有率,學(xué)東西得看看學(xué)完它之后到底有沒有作為啊,否則,你就一輩子只有自己玩系統(tǒng)啰...
【嵌入式學(xué)習(xí)方法大全】相關(guān)文章:
嵌入式學(xué)習(xí)方法10-14
最簡單的嵌入式學(xué)習(xí)方法10-04
嵌入式初學(xué)者開發(fā)ARM的學(xué)習(xí)方法10-14
亞偉速錄學(xué)習(xí)方法大全08-09
超強(qiáng)的韓語學(xué)習(xí)方法大全09-10
小提琴學(xué)習(xí)方法大全10-04
高中英語學(xué)習(xí)方法大全08-04