网络日志
armllyn于2008-05-15 10:14
Arm中断控制器工作原理与编程示例—龙人嵌入式开发

 

北京龙人系统工程有限公司是一家为全球嵌入式系统开发人员提供软硬件开发工具和嵌入式系统完整arm解决方案及技术信息服务的高科技企业。近几年龙嵌入式开发产品事业部是获得高新技术企业认证及双软企业认证的嵌入式开发Linux开发平台及OEM板级硬件提供商,是中国软件行业协会嵌入式分会理事单位,以下是龙人就Arm中断控制器工作原理与编程示例做的一些简单介绍。

中断是计算机的一种基本工作方式,几乎所有的  CPU  都支持中断,S3C4510B  的支持多达  21 个中断源,中断请求可由内部功能模块和外部引脚信号产生。

ARM7TDMI 核可以识别两种类型的中断:正常中断请求(Normal  Interrupt  RequestIRQ)和 快速中断请求(Fast  Interrupt  RequestFIQ),因此,S3C4510B 的所有中断都可以归类为 IRQ FIQS3C4510B 的中断控制器对每一个中断源都有一个中断悬挂位(Interrupt Pending Bit)。

S3C4510B 用如下四个寄存器控制中断的产生和对中断进行处理:

    中断优先级寄存器(Interrupt Priority Register):每一个中断源的索引号写入一个预定义的 中断优先级寄存器,以获得特定的优先级。中断优先级预定义为从 020

    中断模式寄存器(Interrupt Mode Register):为每一个中断源定义中断模式,是 IRQ 还是 FIQ

    中断悬挂寄存器(Interrupt  Pending  Register):指示中断请求处于悬挂状态(未处理)。

如果中断悬挂位被置位,则中断悬挂状态会一直保存,直到 CPU 通过写'1'到中断悬挂寄存器的

相应位清除(注意是写'1'清除,而不是写'0')。当中断悬挂位被置位时,无论中断屏蔽寄存

器是否为'0',中断服务程序都开始执行。在中断服务程序中,必须通过向中断悬挂寄存器的相

应位写'1'来清除中断悬挂标志,以避免由于同一个中断悬挂位导致中断服务程序的反复执行。

    中断屏蔽寄存器(Interrupt Mask Register):如果中断屏蔽位为'1'

则对应的中断会被禁止,如果中断屏蔽位为'0',则对应的中断请求能正常响应。但如果全局中

断屏蔽位(位  21)为'1',则所有的中断都会被禁止。当有中断请求产生时,对应的中断悬挂位

会被置为'1',在全局中断屏蔽位和对应的中断屏蔽位为'0'时,中断请求就会被响应。

S3C4510B 的中断源(Interrupt  Sources

此外要想了解更多关于arm的相关资料去年就请来龙人看看吧:

龙人嵌入式产品事业部专业提供ARM开发板ARM9ARM7),ARM教学系统,ARM工控模块,DSP开发工具,仿真器等产品,另外龙人还提供ODM研发和嵌入式开发。想做嵌入式,找龙人!

网址:http://www.armodm.com   http://www.armlab.net  http://www.szarm.com

话:+86-0755-83662100  83346939  余小姐

Emailbeijingshenzhen@126.com

: 深圳市福田区福虹路世界贸易广场B12F   编:518033

 

【阅读(100)】 【评论(0)
评论
发布评论
登录发表
名称:
密码:(游客无须)
您的网络日志 URL(可选):
标题:
评论
验证码:
 换一个:

  
  登录  使用高级评论  
添加表情