MC9S12G单片机的中断系统

  1. 介绍:
    INT Module用于确定所有的系统异常请求,提供CPU处理异常请求的的应用向量。支持如下功能:
    (1)I位和X位可屏蔽向量请求;
    (2)一个未实现的不可屏蔽操作码陷阱(op-code trap);
    (3)一个不可屏蔽的软件中断(SWI)或background debug模式请求;
    (4)三个系统复位向量请求;
    (5)一个伪中断向量
    每个I位可屏蔽中断请求都被分配到一个固定的优先级水平。

  2. 特征:
    (1)中断向量基地址寄存器(IVBR)
    (2)一个伪中断向量(base+0x0080)
    (3)2-58个I位可屏蔽中断向量请求(base + 0x0082-0x00F2)
    (4)I位可屏蔽中断可嵌套
    (5)一个X位可屏蔽中断向量请求(base + 0x00F4)
    (6)一个不可屏蔽的软件中断(SWI)或background debug模式请求(base + 0x00F6)
    (7)一个未实现的不可屏蔽操作码陷阱(op-code trap)向量(base + 0x00F8)
    (8)三个系统复位向量请求(0xFFFA-0xFFFE)
    (9)确定优先级最高的中断向量请求,驱动向量到总线给CPU
    (10)当适当的中断请求发生时,从stop或wait模式下唤醒系统。

  3. 系统框图
    MC9S12G单片机的中断系统_第1张图片

  4. 寄存器描述
    (1)中断向量基址寄存器(IVBR)8bit
    定义了所有中断向量地址(16bit)的高8位,复位后默认为0xFF(即所有的中断向量地址为0xFF80-0xFFFE)。
    复位后IVBR被初始化为0xFF,因此改变IVBR对三个复位向量(0xFFFA-0xFFFE)无影响

  5. 中断优先级
    如果多个中断请求同时发生,更高中断向量地址的请求优先处理。
    MC9S12G单片机的中断系统_第2张图片

  6. 初始化
    复位后,软件应该如下操作:
    (1)如果中断向量列表不是在默认位置,则需要设置IVBR;
    (2)在CCR中清除相应的I位来使能I位可屏蔽中断;
    (3)在CCR中清除X位来使能X位可屏蔽中断。

  7. 中断嵌套
    I位可屏蔽中断请求可以被一个更高优先级的中断请求打断。
    在默认情况下,一个I位可屏蔽中断不能被其他I位可屏蔽中断请求打断。如果要实现中断服务函数(ISR)可被中断,ISR中必须清除CCR中的I位。

  8. 从Stop或Wait模式中唤醒
    (1)所有I位中断可以唤醒MCU(当CCR中的I位清零)
    (2)X位中断请求可以唤醒MCU,即使CCR中的X位被置位。
    如果CCR中的X位置位,X位中断唤醒MCU后,不会执行ISR,而是执行stop或wait指令后的指令。

你可能感兴趣的:(Freescale,S12)