|
|||||||||||
| 技術(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 |
當(dāng)可延遲跳轉(zhuǎn)碰到中斷時(shí) |
| 作者:cmf3887299 欄目:嵌入式系統(tǒng) |
最近在編寫在sparc V8架構(gòu)上的程序.在中斷返回時(shí)碰到了一個(gè)問(wèn)題. 主程序先讓它按如下運(yùn)行 while(1) { asm (" nop nop " ); } 反匯編以后如下 9c: 01 00 00 00 nop a0: 01 00 00 00 nop a4: 10 bf ff fe b 9c <TimerInit+0x9c> a8: 01 00 00 00 nop 這邊b是可延遲中斷,中斷發(fā)生在9c,a0時(shí)都沒(méi)有問(wèn)題,但是當(dāng)在a4上發(fā)生跳轉(zhuǎn)時(shí)就會(huì)有問(wèn)題.返回時(shí)就跳出while循環(huán),不知道是為什么? * - 本貼最后修改時(shí)間:2007-2-2 20:06:57 修改者:cmf3887299 |
| 2樓: | >>參與討論 |
| 作者: whereis 于 2007/2/5 23:49:00 發(fā)布:
. 構(gòu)架太偏,問(wèn)題很難解決。 |
|
| 3樓: | >>參與討論 |
| 作者: xinzha 于 2007/2/6 22:36:00 發(fā)布:
可能是編譯器問(wèn)題 應(yīng)該是編譯軟件造成的錯(cuò)誤,如果sparc也是RISC架構(gòu)的話,發(fā)生在后兩句的跳轉(zhuǎn),就會(huì)把返回地址記錄為循環(huán)體后面的語(yǔ)句,如果編譯器沒(méi)有很好地處理這種問(wèn)題,就會(huì)發(fā)生這些錯(cuò)誤。 |
|
| 4樓: | >>參與討論 |
| 作者: telnet 于 2007/2/9 16:07:00 發(fā)布:
好像是cpu有關(guān) 在中斷處理程序中檢查產(chǎn)生中斷的指令是否是跳轉(zhuǎn)指令,如果是就將返回地址減4(如果你這里是32為的話)。 |
|
|
|
| 免費(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) |