共2条
1/1 1 跳转至页
0x00000018 请教:0x00000018处的语句的问题

问
IRQ中断实验中:
0x00000018处 LDR PC,[PC,#-0xff0]
1.向flash中下载调试,在此地址设置一断点,如设想的一样,在首次IRQ中断
时程序停止在此处
然而之后单步运行的时候,PC指向0x00000000处,程序从头开始执行,并且出现没有外部中断触发的情况下程序自动停止在0x018处
请问这如何解释,难道是不能在此设置断点?
2.另外之所以单步运行,是想观察VICVectAddr的内容,以理解具体VIC是如何响应中断的
但是通过MEMORY窗口观察,不论是0xFFFFF030还是0xFFFFF028处都一直为0(在中断处理程序前设有断点)
这又是为什么呢?按书上解释的VICVectAddr不是应该提供给PC中断服务程序的地址的么?
谢谢前辈的指点,万分感谢
答 1: 也许是调试器的问题?建议用软件仿真调试,就可以看到了。 答 2: 弱问:软仿真的问题请问如果用ARMUL软仿真,是不是需要用SWI软中断
因为这个时候板子上的硬件触发中断就没有作用了,对吧
谢谢指教 答 3: 弱答:软仿真和软中断无关 答 4: 不好意思,再弱问:我是想:
按computer00指点的,如果用软仿真来做中断实验的时候,这个时候板子上的硬件应该没有触发中断的作用了吧,如果想做中断,是否只能用软中断了呢?
谢谢各位前辈,谢谢 答 5: 不好意思,再弱答:只有VICSoftInt可以模拟激活硬件中断SWI和DOS时代的INT 21差不多~~~ 答 6: 硬中断当然也可以,例如定时器,串口,外部中断等。别忘了,可以可以直接仿真IO口。
好好看看里面可以仿真哪些东东吧,ADC,DAC,串口 等都可以仿真的。 答 7: 哈哈~~~我指的是SWI不行~~~倒塌了00:我昨天学了个新词---倒塌
不知何意??? 答 8: 似乎还没传播到我这里,还没学会…………我倒塌…… 答 9: 谢谢前辈们的指点我好像是把 软中断指令SWI 和 VIC软件中断寄存器VICSoftInt 弄混淆了
但是我有个疑问:
在ARMUL软件仿真,测试中断实验时,如果想触发中断,是只能用VICSoftInt来
模拟硬件中断呢;还是一些硬件出发的中断,比如板子上按下一个按键,仍
然是有效的呢?
我觉得后者应该是不对的吧,ARMUL仿真时, 板子可以不上电甚至不用连接的啊
麻烦前辈再指点一二,谢谢 谢谢 答 10: UL仿真是指Ulink吗?如果用Ulink,那必须得接上板,这样按下板上的开关,可以触发中断(如果设置对的话)。
如果不用Ulink,而全软仿真的话,可以用keil提供的IO口,来模拟键盘按下。
如下图: 答 11: ARMUL是在AXD Debugger里选择的我用的是ADS中AXD Debugger,在配置仿真方式时Configure Target…里选择ARMUL软件仿真
在此仿真环境下,测试中断实验,是否板子上的按下按键之类的硬件触发就没有效果了,只能由VICSoftInt来模拟硬件中断了呢
手边刚好没有板子了,所以不能上机实验一下,感谢前辈指点
0x00000018处 LDR PC,[PC,#-0xff0]
1.向flash中下载调试,在此地址设置一断点,如设想的一样,在首次IRQ中断
时程序停止在此处
然而之后单步运行的时候,PC指向0x00000000处,程序从头开始执行,并且出现没有外部中断触发的情况下程序自动停止在0x018处
请问这如何解释,难道是不能在此设置断点?
2.另外之所以单步运行,是想观察VICVectAddr的内容,以理解具体VIC是如何响应中断的
但是通过MEMORY窗口观察,不论是0xFFFFF030还是0xFFFFF028处都一直为0(在中断处理程序前设有断点)
这又是为什么呢?按书上解释的VICVectAddr不是应该提供给PC中断服务程序的地址的么?
谢谢前辈的指点,万分感谢
答 1: 也许是调试器的问题?建议用软件仿真调试,就可以看到了。 答 2: 弱问:软仿真的问题请问如果用ARMUL软仿真,是不是需要用SWI软中断
因为这个时候板子上的硬件触发中断就没有作用了,对吧
谢谢指教 答 3: 弱答:软仿真和软中断无关 答 4: 不好意思,再弱问:我是想:
按computer00指点的,如果用软仿真来做中断实验的时候,这个时候板子上的硬件应该没有触发中断的作用了吧,如果想做中断,是否只能用软中断了呢?
谢谢各位前辈,谢谢 答 5: 不好意思,再弱答:只有VICSoftInt可以模拟激活硬件中断SWI和DOS时代的INT 21差不多~~~ 答 6: 硬中断当然也可以,例如定时器,串口,外部中断等。别忘了,可以可以直接仿真IO口。
好好看看里面可以仿真哪些东东吧,ADC,DAC,串口 等都可以仿真的。 答 7: 哈哈~~~我指的是SWI不行~~~倒塌了00:我昨天学了个新词---倒塌
不知何意??? 答 8: 似乎还没传播到我这里,还没学会…………我倒塌…… 答 9: 谢谢前辈们的指点我好像是把 软中断指令SWI 和 VIC软件中断寄存器VICSoftInt 弄混淆了
但是我有个疑问:
在ARMUL软件仿真,测试中断实验时,如果想触发中断,是只能用VICSoftInt来
模拟硬件中断呢;还是一些硬件出发的中断,比如板子上按下一个按键,仍
然是有效的呢?
我觉得后者应该是不对的吧,ARMUL仿真时, 板子可以不上电甚至不用连接的啊
麻烦前辈再指点一二,谢谢 谢谢 答 10: UL仿真是指Ulink吗?如果用Ulink,那必须得接上板,这样按下板上的开关,可以触发中断(如果设置对的话)。
如果不用Ulink,而全软仿真的话,可以用keil提供的IO口,来模拟键盘按下。
如下图: 答 11: ARMUL是在AXD Debugger里选择的我用的是ADS中AXD Debugger,在配置仿真方式时Configure Target…里选择ARMUL软件仿真
在此仿真环境下,测试中断实验,是否板子上的按下按键之类的硬件触发就没有效果了,只能由VICSoftInt来模拟硬件中断了呢
手边刚好没有板子了,所以不能上机实验一下,感谢前辈指点
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 |