切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
    • 11735閱讀
    • 32回復(fù)

    [原創(chuàng)]跨進(jìn)光學(xué)行業(yè)是意外,也是驚喜。(一點(diǎn)學(xué)習(xí)經(jīng)驗(yàn)3) [復(fù)制鏈接]

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