打印

SWI的疑惑?SWI和普通的程序调用由什么区别?

[复制链接]
2715|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zifeiyuuuu|  楼主 | 2009-10-15 08:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我在网上找到的对SWI的解释

软中断:
编程异常通常叫做软中断

软中断是通讯进程之间用来模拟硬中断的 一种信号通讯方式。
中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能

软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。
1.软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的
2.软中断是由程序调用发生的,而硬中断是由外设引发的
3.硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间

我自己的问题:
1: 软件中断子程序只有一个? 用__SWI 作为标示符?
2:“程序运行时其他程序对它的中断”,“软中断发生的时间是由程序控制的”,那么它 和程序直接的普通程序调用有什么区别?

另外一本书”程序分析与设计“中说到,软件中断处理的流程有2步:
一:取得24位的中断号码(书上说是确定SWI中断的目的,通过) 二:实现具体的SWI中断

我自己的问题:
3:中断号码 和那里有一个对应关系吗?  不然是如何确定SWI中断的目的?

以上3个问题希望高手回答一下, thank you!~!·

相关帖子

沙发
zifeiyuuuu|  楼主 | 2009-10-15 12:27 | 只看该作者
顶上去。。。。。。。。。

使用特权

评论回复
板凳
mytempid| | 2009-10-15 12:41 | 只看该作者
1、SWI入口地址只有1个,一般在启动文件startup.s中有定义;可以通过参数来实现不同功能调用。
2、SWI与一般程序调用的工作模式不同,有些操作需要模式切换,可通过软中断实现。
3、问题1解

使用特权

评论回复
地板
machunshui| | 2009-10-15 13:24 | 只看该作者
“2:“程序运行时其他程序对它的中断”,“软中断发生的时间是由程序控制的”,那么它 和程序直接的普通程序调用有什么区别?“

有一个作用,在OS进行任务切换,zlg移植的UCOS即属于此类

使用特权

评论回复
5
zifeiyuuuu|  楼主 | 2009-10-15 13:49 | 只看该作者
首先谢谢各位的回答.
1:"可以通过参数来实现不同功能调用", 是不同的参数对应不同的软件中断子程序吗?  那么请问这个对应关系是怎样的?  是自己定义的, 或者请问 有没有关于它的资料推荐, 我自己去研究
比如在51里 又 interrupt0 对应 外部中断0, interrupt1 对应定时器0(不一定是这样的,只是举例说明), 那么这个"可以通过参数来实现不同功能调用",  是不是有个类似的对应关系还是怎样?

2:“模式切换” 我看书上说是 从 user 模式 切换到 system 模式,也就是特权模式,然后可以访问的寄存器不同,  请问您说的是这个意思吗?

使用特权

评论回复
6
zifeiyuuuu|  楼主 | 2009-10-15 14:30 | 只看该作者
顶顶。。。。。 UP

使用特权

评论回复
7
zifeiyuuuu|  楼主 | 2009-10-15 19:16 | 只看该作者
顶顶。。。。。 UP

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

96

帖子

0

粉丝