您当前的位置:五五电子网电子知识单片机-工控设备ARM单片机ARM S3C4510B系统中异常中断的功能及特点 正文
ARM S3C4510B系统中异常中断的功能及特点

ARM S3C4510B系统中异常中断的功能及特点

点击数:7474 次   录入时间:03-04 11:54:21   整理:http://www.55dianzi.com   ARM单片机
msr spsr_svc, r0
lDMDf sp!,{r0-r12,lr}^ ;恢复其他寄存器

      4 S3C4510B系统中的IRQ异常中断实例


      4.1 IRQ异常中断的产生


        S3C4510B处理器系统常用于进行外部异常的响应和操作系统进程的控制。CPSR寄存器的I控制位置0时,处理器在指令边界查询是否有IRQ请求,系统的外部中断管理器或者外设通过使能处理器的IRQ输入管脚产生IRQ异常中断。


      4.2 IRQ异常中断的处理程序


      IRQ异常中断产生后,根据中断向量的指令跳入相应的中断处理程序。系统的外围中断管理硬件会将所用的IRQ中断请求按照优先级进行排列,把最高优先级的IRQ中断的信息放入寄存器中。通常的IRQ中断处理程序也需要保存返回地址、寄存器,而且需要屏蔽IRQ中断,以保证优先级较高的中断完全处理。
sub lr,lr,#4
stmfd sp!,{lr}
保存返回地址
mrs r14,spsr_irq
stmfd sp!,[r12,r14]
保存r12,spsr
mov r12,#IntBase
读取中断管理接口的基址

ldr r12,[r12,#IntLevel]
计算当前中断的物理地址
mrs r14,cpsr
bic r14,r14,#0X80
清零IRQ中断禁止位
msr cpsr_irq,r14
开IRQ中断
ldr pc,[ pc,r12,lsr #2]
跳转到相应的中断处理程序
dcd PirQ0Handler
dcd PirQ1Handler

dcd PirQnHandler
优先级为n的中断处理程序地址
PirQ0Handler
stmfd sp!,{r0-r11}
……
优先级为1的中断处理程序
ldmfd sp!,{r0-r11}
msr spsr_irq,r14
恢复r12和spsr 
ldmfd sp!,{pc}^ ;中段返回
……
dcd PirQnHandler
中断优先级为N的中断处理程序
……


      4.3 IRQ异常中断在进程控制中的应用


      S3C4510B处理器系统中的进程之间的切换也是通过IRQ来完成的。操作系统中的每一个进程都由进程控制块PCB来表示,PCB中包含了进程相关的信息。比如,当某一进程进行到一定的程度时,利用IRQ中断将当前进程中断,保存需要保存的寄存器的值之后,切换到另一进程中执行。


      5 结束语


        S3C4510B的异常中断机制较为复杂,但也正是因为其复杂的机制,使我们在开发的过程中有了更灵活的选择。用好了异常中断,不仅可以实现系统的实时响应,而且对于提高系统效率和提升整体性能方面都有着很大的帮助。希望本文能够对S3C4510B系统的开发者有所帮助。

      参考文献


      1 杜春雷.ARM体系结构与编程. 北京:清华大学出版社
      2 马忠梅,马广云等.ARM嵌入式处理器结构与应用基础. 北京:北京航空航天大学出版社,2002.6
      3 S3c4510b Data Sheet. SAMSUNG.1999.3
      4 ARM Limited. Developer suit(Version 1.1), Assembler Guide.ARM DUI 0068A,2000



上一页  [1] [2] 


本文关键字:暂无联系方式ARM单片机单片机-工控设备 - ARM单片机