|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
2410中斷使用注意:有BUG!!! |
| 作者:阿南 欄目:ARM技術(shù) |
我的程序中開(kāi)了很多個(gè)中斷后,有時(shí)會(huì)出現(xiàn)死機(jī)現(xiàn)象!結(jié)果發(fā)現(xiàn)是由INTOFFSET寄存器出錯(cuò)產(chǎn)生,此時(shí)INTPND寄存器有兩個(gè)標(biāo)志位置位(正常情況下只能有一個(gè)標(biāo)志位置1才對(duì),我想這應(yīng)該是2410的BUG)!INTOFFSET值正好是這兩個(gè)中斷值的累加。當(dāng)產(chǎn)生這種情況時(shí)用如下程序就會(huì)出錯(cuò): IsrIRQ sub sp,sp,#4 ;reserved for PC stmfd sp!,{r8-r9} ldr r9,=INTOFFSET ldr r9,[r9] ldr r8,=HandleEINT0 add r8,r8,r9,lsl #2 ldr r8,[r8] str r8,[sp,#8] ldmfd sp!,{r8-r9,pc} 現(xiàn)在只能是不用INTOFFSET進(jìn)行查找中斷表,而直接用INTPND(和44B0X的該部分一樣),如下: IsrIRQ sub sp,sp,#4 ;reserved for PC stmfd sp!,{r8-r9} ldr r9,=INTPND ldr r9,[r9] cmp r9, #0x0 ; beq %F02 mov r8,#0x0 00 movs r9,r9,lsr #1 bcs %F01 add r8,r8,#4 b %B00 01 ldr r9,=HandleEINT0 add r9,r9,r8 ldr r9,[r9] str r9,[sp,#8] ldmfd sp!,{r8-r9,pc} 02 ldmfd sp!,{r8-r9} add sp,sp,#4 subs pc,lr,#4 * - 本貼最后修改時(shí)間:2005-11-28 22:04:56 修改者:阿南 |
| 2樓: | >>參與討論 |
| 作者: 阿南 于 2005/11/28 13:27:00 發(fā)布:
各位有時(shí)間可以測(cè)試一下,多開(kāi)幾個(gè)中斷! 用仿真器單步執(zhí)行時(shí),出錯(cuò)的機(jī)率會(huì)多些 |
|
| 3樓: | >>參與討論 |
| 作者: mz6800 于 2005/11/29 10:41:00 發(fā)布:
阿南值得學(xué)習(xí) 多謝 |
|
| 4樓: | >>參與討論 |
| 作者: cat5843 于 2006/3/7 21:36:00 發(fā)布:
2410問(wèn)題請(qǐng)教 您好,能否留個(gè)聯(lián)系方法給我,我想具體問(wèn)一下珊瑚蟲(chóng)問(wèn)的問(wèn)題,謝謝 我的QQ:35389490,Email:cat5843@sohu.com,Tel:13073413944 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |