这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]急问关于swi中断的问题

共4条 1/1 1 跳转至

[求助]急问关于swi中断的问题

菜鸟
2006-03-30 00:01:39     打赏

我有几个关于swi的问题,请大家帮助解释一下:

1。关于swi指令:我用ADS的armul软件仿真时,swi 0x0执行时ADS转到04未定义指令处,而不是08地址上。???

2。用zlg的做了一个有swi中断的实验,到swi处没有报未定义指令,但是也没跳到08地址上,而是直接过去了。从寄存器上看,指令已经执行完了(管理模式下的寄存器发生改变)。我是单步执行,为什么没有看见跳转到swi中断的ISR处???

3。利用swi 0x123456(0xab)如何使用半主机功能,请教???




关键词: 求助     急问     关于     中断     问题    

菜鸟
2006-03-30 17:50:00     打赏
2楼

我在08处设置断点,可以追到swi指令的跳转过程。

分析原因可能是用的lpc2210无片内flash,程序加载到片外ram中(地址0x80000000)。由于lpc2210的重映射机制,将0x80000000地址上的中断向量表映射到0x0处,swi指令运行后跳到0x8,此时只能看见反汇编代码没有源文件(0x0处没有代码),再经过08处的跳转到swi的ISR处,此时就可以看见源文件代码,程序继续执行。

我想如果在08处不设置断点,由于在08处没有实际的代码,所以直接跳过去了。

关于半主机的设置方法,请发到我邮箱:wheels@35.com

[em17]

菜鸟
2006-03-31 18:38:00     打赏
3楼

To twentyone:感谢!看完你给例子后,基本清楚了semihosting的用法,但是像printf的使用,以及变量$TOP_OF_MEMORY的设置方法,还是不知道。能否再讲解讲解,最好是给我一个例子,多谢!还有semihosting mode中std vector是指什么,我设置成0x0或是0x8都可以正常使用semihosting,正常是否应该设置为0x8?

另外,swi指令在ADS中的跳转,我试写了一个完整的例子,发现swi能够正常跳转,但是不知道什么原因导致两者之间不同跳转?我觉得可能跟程序有关,你如果有时间帮我分析一下,我可以把程序发给你。


菜鸟
2006-04-01 20:20:00     打赏
4楼
邮件已经发过去了,还有一些关于$top_of_memory的问题。谢谢!

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]