当前位置:首页 > 电源 > 数字电源
[导读]本文介绍了ARM S3C2410X系统的异常中断响应和返回过程,重点讨论了ARM S3C2410X系统中采用IRQ响应外设向CPU请求服务的中断编程机制,并用一个实例展示这种中断编程机制的应用。

  要:本文介绍了ARM S3C2410X系统的异常中断响应和返回过程,重点讨论了ARM S3C2410X系统中采用IRQ响应外设向CPU请求服务的中断编程机制,并用一个实例展示这种中断编程机制的应用。
关键词:ARM;IRQ;中断编程机制

引言

在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的,即将设备功能程序的实现以中断服务子程序的形式进行组织。中断功能可以解决CPU内部运行速度远远快于外部总线速度而产生的等待延时问题。因此实现中断的响应,解析中断源跳转和中断返回等操作成为编程的关键。这也是困扰初学者的一个难题。中断处理的编程实现需要深入了解ARM内核和处理器本身的中断特征,从而设计一种快速简便的中断编程机制。

1  S3C2410X系统的异常中断

S3C2410X是基于ARM920T内核处理器。该系统提供的FIQ和IRQ异常中断用于外部设备向CPU请求服务,一般情况下都是采用IRQ。S3C2410X系统中通常在存储区的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。

当一个异常出现后, S3C2410X系统中ARM处理器对异常中断的响应过程如下:

(1)      保存处理器当前状态、中断屏蔽位以及各条件标志位。将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中。

(2)      设置当前程序状态寄存器CPSR中相应的位。包括设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁止IRQ中断,当进入FIQ模式时,禁止FIQ中断。

(3)      将寄存器lr_mode设置成返回地址。

(4)      将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序执行。

从异常中断处理程序中返回包括下面两个基本操作:

(1)      恢复被中断的程序的处理器状态,即将SPSR_mode寄存器内容复制到当前程序状态寄存器CPSR中。

(2)      返回到发生异常中断的指令的下一条指令处继续执行,即将lr_mode寄存器的内容复制到程序计数器PC中。

当异常中断发生时,程序计数器PC所指的位置对于各种不同的异常中断是不同的,同样,返回地址对于各种不同的异常中断也是不同的。例外的是复位异常中断处理程序不需要返回,因为整个应用系统是从复位异常中断处理程序开始执行的。

S3C2410X系统的中断编程机制

如前所述,S3C2410X系统一般采用IRQ异常中断来帮助外部设备向CPU请求服务。S3C2410X系统可接受32个异常中断源,同时也构成了一个IRQ中断向量表。在该表中可以放置自己编写的对应中断源的中断服务程序入口地址。S3C2410X系统的中断编程就是基于这张IRQ中断向量表来进行。具体步骤是:

(1)在S3C2410X系统初始化程序中放置IRQ异常中断解析程序的入口地址。通过ARM两条微指令来实现:

LDR       PC,  IRQ_Addr

IRQ_Addr          DCD       INT_IRQ

上面代码中的INT_IRQ是该系统中IRQ解析程序的入口地址。只要有一个IRQ中断请求,系统就会自动的跳转到IRQ异常中断解析程序。

(2)编写IRQ中断解析程序。中断服务程序通常是由高级语言编写,不好控制固定地址开始的跳转流程。然而ARM处理器响应中断的时候,总是从固定的地址开始的。为了使得上层应用程序与硬件中断跳转联系起来,需要编写一段中间的服务程序来进行连接。这样的服务程序常被称作中断解析程序,通常用ARM汇编指令编写。IRQ中断解析程序要做的工作主要是:将相关工作寄存器中的数据压栈保存;查寄存器INTOFFSET找出对应的中断源,根据IRQ中断向量表将该中断源对应的中断服务程序的入口地址装入程序计数器PC中执行。

(3)编写对应中断源的中断服务程序。流程图如图1所示:

图1 中断服务程序流程图

其中,中断现场保存的工作是:切换到System模式,关闭中断,将中断返回地址压栈。中断返回的工作是:返回到IRQ模式,开中断,从堆栈中取出返回地址和中断之前相关工作寄存器中的内容,重新执行主程序。中断服务的工作是具体实现外部设备向CPU请求的中断服务。

基于上述三个步骤,总结出S3C2410X系统中断编程机制图如图2所示:

图2  S3C2410X系统中断编程机制图

3  S3C2410X系统中断编程机制的应用实例

图2所示的中断编程机制可以很好的实现S3C2410X系统中任何外设向CPU请求的服务。下面通过一个实例讨论这种中断编程机制:S3C2410X系统中提供了五个16位定时器Timer0、Timer1、Timer2、Timer3、Timer4。现利用定时器Timer0计数,计数完毕后产生中断,向CPU请求的中断服务是使系统中的二极管Led4点亮一段时间再熄灭。

依据上述要求,按照S3C2410X系统中断编程架构图编写了系统初始化程序(startup.s)、应用主程序(main.c)、IRQ中断解析程序(INT.S)、定时器中断服务程序(INT_Timer0_shell.s)、点亮二极管Led4程序(Timer0_LISR.c)。这五个程序的流程图如图3所示:

图3 实例程序流程图

值得注意的是在IRQ中断解析程序INT.s中要定义IRQ32个中断源向量表。同时将定时器中断服务程序INT_Timer0_shell.s的入口地址加到向量表中。依据这个IRQ中断向量表,IRQ解析程序可以找到定时器0的中断服务程序的物理地址。代码如下所示:

INT_IRQ_Vectors ;// IRQ32个中断源向量表

    DCD     0            ;// Vector 00

    DCD     0            ;// Vector 01

    DCD     0            ;// Vector 02

    ……

    DCD     INT_Timer0_Shell    ;// Timer0是10号中断,INT_Timer0_Shell为定时器0

 的中断服务程序入口地址

    ………

    DCD     0          ;// Vector 31

 

从此例中可以看出,这种中断编程机制不但可以满足外设所需要的服务,而且结构流程非常的清晰简便。

 

结束语

本文作者创新点:介绍的中断编程机制是嵌入式编程中实用的方法,其原理是通用的。当然,在实际开发中,需要根据系统处理器ARM内核的中断特征、处理器自身的中断控制器特点和实际要求具体细化流程图中的各个步骤和改写参考代码。

 

参考文献:

[1]      杜春雷 . ARM体系结构与编程[M].清华大学出版社 ,2003
[2]      庞继勇,唐婷 .ARM处理器中断处理的编程实现[J] .电子产品世界 ,2005,2
[3]      旋极科技 .嵌入式实验教程[M] .深圳旋极历通科技有限公司 ,2005
[4]       王波  .ARM的三种中断调试方法的探讨. 微计算机信息,2006年第1-2期,P130-131、P269
[5]      季振华  . 基于ARM7TDMI内核的S3C44B0异常处理分析 .微计算机信息,2006年第2-2期,P137-139

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭