嵌入式經(jīng)典案例編寫ARM的異常處理程序復(fù)位_第1頁
嵌入式經(jīng)典案例編寫ARM的異常處理程序復(fù)位_第2頁
嵌入式經(jīng)典案例編寫ARM的異常處理程序復(fù)位_第3頁
嵌入式經(jīng)典案例編寫ARM的異常處理程序復(fù)位_第4頁
嵌入式經(jīng)典案例編寫ARM的異常處理程序復(fù)位_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

案例列1編寫ARM異常處理程序(復(fù)位異常處理程序注 案例列 案例一、板引導(dǎo)程序整 案例目 硬件設(shè) 軟件環(huán) 案例內(nèi)容與要 案例實 修改 下的start.S添加開啟MMU和安裝異常向量表代 在 下添加新的實驗代 修改cmd.c增加swi測試命令 修改armboot的Makefile文件,為OBJS變量添加iqr.ovector.o 編譯程 燒寫 到閃存,實現(xiàn)自啟動并引導(dǎo)內(nèi) 重新啟動開發(fā)板,使用自己編寫的 啟動內(nèi) 案例目的進一步學(xué)習(xí) 異常處理程序編寫進一步理解S5PV210USB硬件設(shè)備PC機(X86兼容機串口線、USB軟件環(huán)境LinuxGNUARM相關(guān)工具軟件(串口,網(wǎng)絡(luò)可在開發(fā)板上運行的U-boot案例導(dǎo)程序到開發(fā)板閃存實現(xiàn)自啟動并引導(dǎo)內(nèi)核。bl/*gobl/*gosetuppll,mux,memory/*Toholdmax8698outputbeforereleasingpoweron*setPS_HOLDsignaltoldrr0,=0xE010E81C/*PS_HOLD_CONTROLregisterldrr1,/*PS_HOLDoutputhighstrr1,ldrr0,/*findstartofbssldrr1,/*stopr2,/*修改下的start.S添加開啟MMU打開在clear_bss:mmu匯編代碼,添加后的start.Sblbllowlevel_init/*gosetuppll,mux,memory/*Toholdmax8698outputbeforereleasingpoweron*setPS_HOLDsignaltoldrr0,=0xE010E81C/*PS_HOLD_CONTROLregister*/ldrr1,=0x /*PS_HOLDoutputhigh*/strr1,/*enable access*/ldrr5,=0x0000ffffmcrp15,0,r5,c3,c0, accessldrr0,=0x23e00000 ldrr1,mcrp15,0,r1,c2,c0,/*EnabletheMMU*/mrcp15,0,r0,c1,c0,0orrr0,r0,#1mcrp15,0,r0,c1,c0,ldrr0,ldrr0,/*findstartofbssldrr1,/*stopr2,/*strr2,/*clearcmpr0,strr2, /*clear addr0,r0,#4cmpr0,r1ldrpc,ldrpcstart_armbootstart.S代碼片段如下:blinstall_vector_handlerldrpc,在 下添加新的實驗代1、添加MMU地址轉(zhuǎn)換表設(shè)置代碼:setmmu_table.c,示意代碼如下:#define#defineFL_SECTION_ENTRY(base,ap,d,c,b)((base<<20)|(ap<<10)|(d<<5)|(1<<4)|(c<<3)|(b<<2)|(1<<1))unsignedintvoidset_mmu_table(unsignedint{intbase=for(i=0;i<0x100;{addr[i]=FL_SECTION_ENTRY(base,3,0,0,}for(i=0x100;i<0x200;{addr[i]=}base=for(i=0x200;i<0x600;{addr[i]=FL_SECTION_ENTRY(base,3,0,1,}for(i=0x600;i<0x800;{addr[i]=}base=for(i=0x800;i<0xB00;{addr[i]=FL_SECTION_ENTRY(base,3,0,0,}basebase=for(i=0xB00;i<0xC00;{addr[i]=FL_SECTION_ENTRY(base,3,0,0,}base=for(i=0xC00;i<0xD00;{addr[i]=FL_SECTION_ENTRY(base,3,0,1,}base=for(i=0xD00;i<0x1000;{addr[i]=FL_SECTION_ENTRY(base,3,0,0,}}#define 2(C語言)代碼:irq.c#define #ifndefIRQ_H #define #ifdefIRQ_C#defineIRQ_EXTERNexternIRQ_EXTERNvoidswi_test1(void);IRQ_EXTERNvoid#endif// #include"irq.h"voidc_swi_handler(unsignedintnum,intuart_puts("\nc_swi_handlervector.S代碼如下:ldrr0,=vector_startldrr1,=vector_endmovr2,#0ldrr3,[r0],strr3,[r2],#4cmpr0,r1movpc,lrldrpc,_reset_hdlldrpc,_und_hdlldrpc,_swi_hdlldrpc,_pabt_hdlldrpc,_dabt_hdlb.ldrpc,_irq_hdlldrpc,.extern.word.word.word.word.word.word b.b..globalbl.globalcmd.cswi編輯在 cmd_led_on(void)函數(shù)前增加如下代碼#includeint{ }int{ }stmfdsp!,{lr}swi1ldmfdsp!,stmfdsp!,{lr}swi2ldmfdsp!,修改cmd.ccmd_listswi cmd_list[]{{"swi1",{"swi2",修改armboot 的Makefile文件,為OBJS變量添加iqr.ovector.o編輯 在工 armboot下執(zhí)行make編譯代碼,編譯成功將生成armboot.bin燒寫armboot.bin到閃存,實如果開發(fā)板上的u-boot是可以正常運行的可以通過u-boot令燒寫armboot.bin到閃存地址0處,通過如下步驟完成燒寫: 01armboot.bin到開發(fā)板內(nèi)存中2、擦除閃存的第零塊3、到開發(fā)板內(nèi)存中的armboot.bin寫入到閃存0采用tftpu-boot通過USB啟動方式燒寫armboot.bin0當(dāng)開發(fā)板的閃存中沒有程序或u-boot損壞時,我們可以通過USB啟動的方式燒寫armboot.bin到閃存地址0處,通過如下步驟完成燒寫:1、設(shè)置開發(fā)板啟動撥碼到USB2USBPC3PCDNW4、啟動開發(fā)板。5、通過DNW把x210_usb.bin到開發(fā)板的內(nèi)存中,地址為6、通過DNW把已經(jīng)調(diào)試好的u-boot.bin到開發(fā)板內(nèi)存中,地址為0x23e000008、通過已經(jīng)在開發(fā)板上運行的u-boot把armboot.bin燒寫到閃存中。通過USB引導(dǎo)將u-boot到開發(fā)板的方法請參考第三天的案例一。u-boot后燒寫armboot.bin到閃存地址0的步驟同方法一。重新啟動開發(fā)板,使用自己編寫的bootloaderarmboot.bin燒寫到閃存后,可以將開發(fā)板啟動掉線撥到nand啟動方式,然后重新啟動開發(fā)板看看自己編寫的armb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論