光學(xué)的部分前幾天已經(jīng)發(fā)過一個(gè)帖子。如果感興趣大家可以看看。
(\nEU! Y 5!aI~(3< 這個(gè)帖子想跟大家交流一下硬件和嵌入式的一些學(xué)習(xí)心得(這部分知識(shí)對(duì)于光學(xué)工程師不是必備的,
學(xué)習(xí)可對(duì)整機(jī)系統(tǒng)集成有幫助)。
n@6vCdk. u8gqWsvruM 嵌入式學(xué)習(xí)要循序漸進(jìn),對(duì)于初學(xué)者。我走了不少彎路,最后還是從最簡(jiǎn)單的學(xué)起。51到AVR到ARM。要從51(典型芯片89C51芯片內(nèi)有4KB EEPROM,若片內(nèi)ROM不夠用,也需擴(kuò)展片外ROM。)入手,是因他很簡(jiǎn)單,管角功能十分簡(jiǎn)單,寄存器(中斷、計(jì)時(shí)、
電子溝)十分少,內(nèi)部總線和時(shí)鐘拓?fù)?span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=結(jié)構(gòu)',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_10">結(jié)構(gòu)很清晰?梢詭椭⑵鸪醪降挠布拍睿绻麑W(xué)習(xí)過c語言,看過51芯片手冊(cè),恰恰身邊有一塊開發(fā)板,馬上就可以動(dòng)手寫程序。認(rèn)識(shí)51要最為重要的是要認(rèn)識(shí)開發(fā)板上的一些外圍硬件,步進(jìn)電機(jī)、移位寄存鎖存器、溫度
傳感器、蜂鳴器、EEPROM等等(了解他們最為直接的方法就是看硬件手冊(cè)),這個(gè)過程中可以學(xué)習(xí)到pwm波(驅(qū)動(dòng)步進(jìn)電機(jī)和蜂鳴器)、ad和da轉(zhuǎn)換(蜂鳴器)和一些接口時(shí)序(IIC、SPI等)。寫一些簡(jiǎn)單的鍵盤掃描(去抖動(dòng))、液晶面板驅(qū)動(dòng)、這種簡(jiǎn)單的驅(qū)動(dòng)程序。學(xué)習(xí)51的過程收獲很多,首先對(duì)時(shí)序有了清晰的認(rèn)識(shí),對(duì)驅(qū)動(dòng)有了深刻的了解。任何系統(tǒng)(win、Linux)都要建立在可靠的、簡(jiǎn)單、高效的底層驅(qū)動(dòng)基礎(chǔ)上。51和外圍電路的這種交互程序就可以認(rèn)為是驅(qū)動(dòng)。把驅(qū)動(dòng)封裝成統(tǒng)一的接口(api)交給系統(tǒng)然后由系統(tǒng)分配給每個(gè)程序進(jìn)行應(yīng)用,這樣可以減少?zèng)_突和代碼重復(fù)。
xVRxKM5 { t{,e{oZx AVR(88芯片)的學(xué)習(xí)主要是為ARM學(xué)習(xí)做準(zhǔn)備,AVR的管腳功能和ARM的十分像,管腳可以定義輸出還是輸入,數(shù)字還是
模擬,帶不帶上拉和下拉電阻。對(duì)AVR的學(xué)習(xí)可以止步于此。
DXQ]b)y+N y9k'jEZ"oh 終于到了ARM。主要涉及兩種芯片STM32(Cortex-M3內(nèi)核未來和頂替ARM7內(nèi)核)和s3c2440(ARM9內(nèi)核)。第一次看stm32的
芯片手冊(cè),會(huì)讓你頭皮發(fā)麻。好幾百頁的英文實(shí)在是讓你受不了。好在現(xiàn)在
資料比豐富,可以繞過手冊(cè)看中文的
教程。遇到疑問可以看原版手冊(cè)。通讀手冊(cè),主要了解,指令集(精簡(jiǎn)指令集還是ARM指令集)、總線結(jié)構(gòu)(核心和外設(shè)都在總線上交互數(shù)據(jù))、片內(nèi)資源、片上外設(shè)、時(shí)鐘鎖相環(huán)(為核心和外設(shè)提供各種時(shí)鐘時(shí)序)等等。之后可以用指令集編寫一些簡(jiǎn)單的小驅(qū)動(dòng),驅(qū)動(dòng)外部器件(如led等)。由于ARM芯片結(jié)構(gòu)比較復(fù)雜內(nèi)部外設(shè)豐富,所以芯片涉及到的驅(qū)動(dòng)會(huì)比較多。如果用ARM開發(fā)硬件系統(tǒng)每一次都要從新寫一遍底層驅(qū)動(dòng)是很不現(xiàn)實(shí)和費(fèi)時(shí)的事。所以一般的芯片公司都會(huì)針對(duì)自己的產(chǎn)品開發(fā)了相應(yīng)的固件庫,stm32有一個(gè)3.5版本的固件,固件已經(jīng)集成了所有片上資源的簡(jiǎn)單驅(qū)動(dòng)。如果已經(jīng)了解了指令集和用指令集編程的方法就可以直接看固件了,固件里面的東西更通俗易懂,省去查找相應(yīng)寄存器控制指令的麻煩。有了固件就可以做系統(tǒng)移植了,stm32核心頻率比較低48m所以只能跑uc-os2小系統(tǒng),可以移植玩玩。如果感興趣可以了解下uc-os2的任務(wù)調(diào)度,進(jìn)程管理等功能比較有意思。
smn~p/u LW#U+bv]Dq s3c2440(ARM9)學(xué)到這之后更多的是偏
軟件的東西。 s3c2440的主頻和片上外設(shè)足以應(yīng)對(duì)現(xiàn)在主流的嵌入系統(tǒng)(安卓、蘋果和Linux)更為強(qiáng)大的是內(nèi)置音頻視頻解碼模塊(手機(jī)硬解碼能力的核心)。針對(duì)s3c2440芯片片硬件方面的學(xué)習(xí)可以參見stm32軟件部分重要的是系統(tǒng)移植。移植Linux、移植ggc、移植驅(qū)動(dòng)、移植文件系統(tǒng)、移植內(nèi)存管理、移植gui。像搭積木。至此硬件部分已經(jīng)完成,在深入研究已經(jīng)是軟將工程師的工作。
uN1VkmtDO 希望大家都早日功得圓滿,德藝雙馨。 |T]&8Q)S 我的qq:125795970 歡迎交流指正! }2S)CL= http://www.belacell.cn/read-htm-tid-65260.html(一點(diǎn)學(xué)習(xí)經(jīng)驗(yàn)1) U;0:@.q http://www.belacell.cn/read-htm-tid-66654.html(一點(diǎn)學(xué)習(xí)經(jīng)驗(yàn)2) wPq9`9 # http://www.belacell.cn/read-htm-tid-66659.html(一點(diǎn)學(xué)習(xí)經(jīng)驗(yàn)3) -2'+GO7G n5)ml)m [ 此帖被hhxxgg00在2013-04-02 17:03重新編輯 ]