嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常嵌入式web技術(shù)嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在rom中的嵌入式處理器控制板。
國(guó)內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
嵌入式計(jì)算機(jī)系統(tǒng)是整個(gè)嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層組成。
學(xué)習(xí)嵌入式之前,必須學(xué)習(xí)其他課程,所謂0基礎(chǔ)是不可能的!
1、c語(yǔ)言
《c程序設(shè)計(jì)語(yǔ)言》第二版,徐寶文譯,機(jī)械工業(yè)出版社。你能區(qū)分開(kāi)指針數(shù)組和數(shù)組指針嗎?你知道函數(shù)指針嗎? 你能區(qū)分開(kāi)定義一個(gè)變量時(shí)系統(tǒng)給它分配的空間與用malloc()函數(shù)給一個(gè)變量分配的空間有什么不一樣嗎?
2、數(shù)據(jù)結(jié)構(gòu)
《數(shù)據(jù)結(jié)構(gòu)》c語(yǔ)言版,黃國(guó)愉、葉乃青編,清華大學(xué)出版社。你能合上書(shū)本,用c語(yǔ)言實(shí)現(xiàn)書(shū)中的單鏈表、雙鏈表數(shù)據(jù)結(jié)構(gòu)嗎?
3、c++
《實(shí)用c++程序設(shè)計(jì)》第二版,中國(guó)電力出版社,steve_oualline著 。此階段主要是學(xué)習(xí)其面向?qū)ο蟮木幊趟枷?,加深?duì)c語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)的理解。
4、單片機(jī)
《51單片機(jī)》你能用51單片機(jī)做出一樣實(shí)際的東西嗎?即使它再簡(jiǎn)單!要注意加深對(duì)中斷的理解。
5、arm單片機(jī)
細(xì)讀《arm微控制器基礎(chǔ)與實(shí)戰(zhàn)》周立工編寫,即使你不用書(shū)中的開(kāi)發(fā)板);
細(xì)讀相關(guān)芯片的原版英文文檔。如:arm920te.pdf s3c2410_1.2.pdf 。
6、ucos!!操作系統(tǒng)
細(xì)讀《嵌入式實(shí)時(shí)操作系統(tǒng)uc/os-!!》第二版,召貝貝譯,你能把ucos!!移植到自己的平臺(tái)上嗎?
能編寫在ucos!!操作系統(tǒng)環(huán)境下運(yùn)行的針對(duì)具體硬件的驅(qū)動(dòng)程序 。
7、linux
熟悉linux環(huán)境,學(xué)習(xí)linux環(huán)境編程,學(xué)習(xí)交叉編程:
細(xì)讀《linux命令大全.pdf》 ;
細(xì)讀《gnu make 使用手冊(cè)(中譯版).pdf》 ;
學(xué)習(xí)創(chuàng)建交叉編程環(huán)境。
8、linux操作系統(tǒng)
《unix環(huán)境高級(jí)編程》 ;
細(xì)讀《linux內(nèi)核完全注釋》 ;
細(xì)讀《understanding the linux kernel 2》 ;
利用源代碼閱讀利器工具"source insight"進(jìn)行真正的linux內(nèi)核原碼刨析 ;
最后進(jìn)行內(nèi)核移植,并能編寫在linux操作系統(tǒng)環(huán)境下運(yùn)行的針對(duì)具體硬件的驅(qū)動(dòng)程序 。
9、linux設(shè)備驅(qū)動(dòng)編寫
可參考《linux設(shè)備驅(qū)動(dòng)程序》
10、復(fù)習(xí)c++
學(xué)習(xí)用qt進(jìn)行圖形界面編程:
細(xì)讀《qt編程寶典》;
學(xué)會(huì)通過(guò)查看qt電子文檔進(jìn)行qt gui實(shí)地編程 ;
學(xué)習(xí)交叉編程(其實(shí)就是把命令qmake變?yōu)閠make)。
11、當(dāng)然,你也可學(xué)習(xí)一下pcb的制作和設(shè)計(jì)一個(gè)自己的cpu(即軟殼)
嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對(duì)arm處理器工作原理和接口技術(shù)有充分了解,包括arm的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計(jì)特別講究時(shí)空效率),怎么能寫出驅(qū)動(dòng)程序(驅(qū)動(dòng)程序都是與硬件打交道的)?