44B0中断原理详解
2009-05-13 11:40:20来源:未知 阅读 ()
对于各种中断源的响应,S3C44B0有两种中断模式:向量中断模式和非向量中断模式,这就导致在软件处理上,可以很灵活的处理中断请求。一般来说做如下处理:
如果系统采用的ROM定位在地址0X00,则中断向量标应该包含一系列分支语句,跳转到相应的中断处理程序(这也是S3C44B0所支持的模式)
如果ROM定位到别的地址处,向量必须由初始化代码进行动态定位。
一般把这部分功能放在Bootloader中处理,对于这一点来说初学者很容易搞混,下面就详细解释中断处理的几种实现方式。
1、向量中断模式(也叫矢量中断模式)
为了缩短中断模式在进入所需的服务前所需要的中断响应时间,S3C44B0提供了一种新的中断模式——矢量中断模式。当多重中断源请求中断时,硬件优先级逻辑会判断哪一个中断将会被执行,同时,硬件逻辑自动执行由0x18地址到各个中断源向量地址的跳转指令,然后再由中断源向量进入相应的中断处理程序。简单的说,每个中断源对应一个内存地址,只要在对应的地址上设置一条到中断服务程序的跳转指令,CPU自动跳转到响应的中断处理函数。和原来的软件实现方式相比,这种方式可显著缩短中断响应时间。
2、非向量中断模式
在非向量中断模式下,有两种方式可以使PC指向相应的中断处理程序。
第一种方法,可以通过对I_ISPR/F_ISPR寄存器的分析判断出中断的类型,然后再把PC指向相应的中断处理程序。其中HandlerXXX实际上是一段跳转程序,运行这段程序将把HandleXXX指向的内容值赋给PC。由于HandleXXX所对应的地址中,存放的是每个相应的ISR的起始地址,这样就完成了向特定ISR的调转。这些ISR地址存放在HandleXXX指向的表项中,该表一般定位在RAM高端,基地址为ISR_STARTADDRESS。
第二种方法,对于IRQ处理程序可以通过对I_CMST寄存器的分析来判断中断源的类型,然后再把PC指向相应当中断处理程序。
之所以被称为向量中断模式,是因为它不需要用程序判断中断源,通过硬件实现直接跳转到相应ISR。而非向量中断必须在中断服务程序中判断中断来源,进而跳转到不同的处理程序。
在非向量中断模式下,中断响应流程如下:
1、通常情况下,CPU内核收到来自中断控制器的IRQ中断请求,会在0x00000018处执行一条指令,在从0x00000018处取指令时,中断控制器会在数据总线上加载分支指令。这些分支指令使程序计数器能够对应到每一个中断源的向量地址。所以,一般会在从0x00处到0xA0处放置跳转指令,跳转到HandlerXXX处。
2、HandlerXXX处一般放置汇编下面的一段中断处理宏(一般定义为HANDLER),入口是跳转地址,
主要流程:
栈空间递减保存跳转地址
保存工作寄存器R0到栈
载入中断入口地址所在位置到R0
载入中断入口地址到R0
保存中断入口地址到栈
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:discz!论谈安装注意事项
- PF防火墙详解 2009-05-13
- FreeBSD sysctl.conf 配置详解及最佳方案 2009-05-13
- FreeBSD /etc 目录下的全部文件详解 2009-05-13
- BIND9详解 2009-05-13
- BIND DNS配置详解 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash