基于TMS320f28335的软件学习——中断系统笔记1

1、中断系统概述及中断源

1.1 F28335中断源分类:

片内外设中断源(PWM、CAP、QEP、定时器等);

片外中断源(片外中断输入引脚XINT1、XINT2引入的外部中断源)。

F28335内部含有16个中断线:2个不可屏蔽中断(RESET、NMI)+14个可屏蔽中断(通过中断使能存储器使能或者禁止产生中断)。其中,定时器1和2产生中断由INT13和INT14中断线到达CPU,这两个中断预留给实时操作系统。剩下12个可屏蔽外部中断和处理器内部单元。F28335有58个中断源,需要PIE外设中断扩展模块实现。

 2、F28335的3级中断机制

        3级中断机制:外设级中断、PIE级中断、CPU级中断(最内核部分-只接受CPU中断线上的中断请求)。

       外设产生中断响应步骤:外设级中断允许、经PIE允许、经CPU允许、最后CPU做出响应。

 2、1外设级中断

     IF:外设中断标志寄存器;

     IE:外设中断使能寄存器;

    IF位自动置位,且IE使能位正好置位,外设产生中断向 PIE控制器 发出中断请求。中断申请成功。

2、2 PIE级中断

CPU让出12个中断线交由PIE模块复用管理,中断扩展模块结果图:

        PIE将外设中断分成12组,对应12个可屏蔽中断线,每一组由8个外设级中断组成,这8个外设中断分别对应相应的外设接口中断引脚,PIE通过8选1的多路选择器将这8个外设中断组成1组。

       PIE模块每组相应的中断标志位(PIEIFRx)和使能位(PIE-IERx.y)。每一组PIE中断(INT1~INT12)有一个响应标志位(PIEACK)。

     中断产生PIE中相应的中断标志位(PIEIFRx.y)将置1。如果中断使能位置1,则PIE将检查相应的PIEACKx以确认CPU是否准备响应中断请求。如果相应的PIEACKx位清零,PIE向CPU申请中断,否则等待PIEACKx位清零才能响应CPU中断申请。响应后PIEACKx清零以便该组后面中断请求。

2、3 CPU级中断

    CPU申请中断,CPU级中断标志位(IFR)将置1。中断标志位锁存到标志寄存器后,只要CPU中断使能寄存器(IER)或中断调试使能寄存器(DBGIER)相应的使能位和全局中断屏蔽位(INTM)被使能时才会响应中断申请。

 3、F28335中断向量

          CPU响应中断,就是CPU执行相应的中断服务程序。响应过程:CPU将现在执行程序的指令地址压入堆栈,跳转到中断服务程序入口地址,中断服务程序的入口地址就是中断向量,这个中断向量用2个16位寄存器存放。入口地址是22位的,地址的低16位保持该向量的低16位;地址的高16位保存高6位,更高的10位保留。

3、1 中断向量分配

       PIE最多支持96个中断,每一个中断有对应的中断向量,也就是每一个中断源对应的中断服务程序入口地址,这些中断向量均连续存放在RAM中,构成了整个系统的中断向量表。

     响应中断时,CPU自动从中断向量表中获取中断向量。CPU获取中断向量和保存重要的寄存器需要花费9个CPU时钟周期,能够快速响应中断。CPU中断是通过中断线,1次响应其中1条中断线,每条中断线连接的中断向量在中断向量表中占32位地址空间,用来存放中断服务程序的入口地址,有可能16条中断线上请求同时到达CPU,需要进行优先级定义。

3、2 中断向量表

  PIE向量表:256

 CPU优先级:INT1~INT12;  每一组PIE控制的8个中断优先级:INTx.1~INTx.8。

 

 3、3 中断向量映射方式

 4、F28335中断操作

4、1 复用中断操作 

4、2 使能禁止复用外设中断的处理

 

 4、3 外设复用中断向CPU申请中断流程

 4、4 可屏蔽中断处理

 参考书籍:《手把手教你学DSP:基于TMS320f28335》。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月8日
下一篇 2022年9月8日

相关推荐