X2812的中断系统三级中断系统_第1页
X2812的中断系统三级中断系统_第2页
X2812的中断系统三级中断系统_第3页
X2812的中断系统三级中断系统_第4页
X2812的中断系统三级中断系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、X2812的中断系统三级中断系统 第11章 X2812的中断系统 X2812的中断系统三级中断系统 11.1 什么是中断 n在任何一款事件驱动型的CPU里面都应该会有 中断系统,因为中断就是为响应某种事件而存 在的。 n中断的灵活应用不仅能够实现想要实现的功能, 而且合理的中断安排可以提高事件执行的效率, 因此中断在DSP应用中的地位是非常重要的。 n中断(Interrupt)是硬件和软件驱动事件,它使 得CPU暂停当前的主程序,并转而去执行一个 中断服务子程序。 X2812的中断系统三级中断系统 中断的生活实例 X2812的中断系统三级中断系统 F2812的三级中断 nCPU中断 nPIE中

2、断 n外设中断 X2812的中断系统三级中断系统 11.2 CPU中断 nX2812的中断主要由两种方式触发。 n一种是通过在软件中写指令,例如INTR、 OR IFR或者TRAP指令。 n另一种是硬件方式触发,例如来自于片 内外设,或者外围设备的中断信号,表 示某个事件已经发生。 X2812的中断系统三级中断系统 可屏蔽中断和不可屏蔽中断 n可屏蔽中断就是这些中断可以用软件加以屏蔽 或者解除屏蔽。X2812片内外设所产生的中断 都是可屏蔽中断,每一个中断都可以通过相应 寄存器的中断使能位来禁止或者使能该中断。 n不可屏蔽中断就是这些中断是不可以被屏蔽的, 一旦中断申请信号发出,CPU必须无条

3、件的立 即去响应该中断并执行相应的中断服务子程序。 X281X的不可屏蔽中断主要包括软件中断 (INTR指令和TRAP指令等)、硬件中断、非法指 令陷阱以及硬件复位中断。 X2812的中断系统三级中断系统 CPU处理中断的步骤 X2812的中断系统三级中断系统 中断向量和优先级 前面讲解的是单个中断请求的处理过程, 那要是几个中断同时向CPU发出中断请求, CPU该如何处理呢? X2812的中断系统三级中断系统 优先级的简单例子 假如有一个医生但是有两个病人需要急 诊,一个出了车祸,性命攸关,而另一个 只是普通的感冒,这时候医生会先诊治哪 个病人呢? X2812的中断系统三级中断系统 22位的

4、CPU中断向量 n一共可以支持32个CPU中断,其中每一 个中断都是一个32位的中断向量 。 X2812的中断系统三级中断系统 中断向量 绝对地址 优先级说明 VMAP=0VMAP=1 RESET00 0000h3F FFC0h1(最高)复位中断 INT100 0002h3F FFC2h5可屏蔽中断1 INT200 0004h3F FFC4h6可屏蔽中断2 INT300 0006h3F FFC6h7可屏蔽中断3 INT400 0008h3F FFC8h8可屏蔽中断4 INT500 000Ah3F FFCAh9可屏蔽中断5 INT600 000Ch3F FFCCh10可屏蔽中断6 INT700

5、000Eh3F FFCEh11可屏蔽中断7 INT800 0010h3F FFD0h12可屏蔽中断8 INT900 0012h3F FFD2h13可屏蔽中断9 INT1000 0014h3F FFD4h14可屏蔽中断10 INT1100 0016h3F FFD6h15可屏蔽中断11 INT1200 0018h3F FFD8h16可屏蔽中断12 INT1300 001Ah3F FFDAh17可屏蔽中断13 INT1400 001Ch3F FFDCh18可屏蔽中断14 DLOGINT00 001Eh3F FFDEh19(最低)可屏蔽数据标志中断 RTOSINT00 0020h3F FFE0h4可屏

6、蔽实时操作系统中断 Reserved00 0022h3F FFE2h2保留 NMI00 0024h3F FFE4h3不可屏蔽硬件中断 ILLEGAL00 0026h3F FFE6h非法指令捕获 X2812的中断系统三级中断系统 IER寄存器 X2812的中断系统三级中断系统 IFR寄存器 X2812的中断系统三级中断系统 可屏蔽中断的响应过程 X2812的中断系统三级中断系统 多个中断申请时CPU响应过程 n中断A的优先级高于中断B的优先级 n中断A和中断B均已使能 n全局中断INTM也已经使能 n中断A和中断B同时提出申请,CPU如何 处理? n如果CPU在执行中断A的服务子程序时, 中断A

7、的标志位又被置位了,那么CPU接 下来会如何处理? X2812的中断系统三级中断系统 11.3 PIE中断 2812的中断源 X2812的中断系统三级中断系统 PIE的生活实例 n好比一家大公司,每天会有很多员工向老总提 交文件,请求老总处理。老总通常事务繁忙, 他一个人没有能力同时去处理所有的事情,那 怎么办呢? nX281X的CPU为了能够及时有效的处理好各个 外设的中断请求,特别设计了一个“秘书” 专门处理外设中断的扩展模块(the Peripheral Interrupt Expansion Block),简称 外设中断控制器PIE,它能够对各种中断请求 源(来自于外设或者其他外部引脚

8、的请求)做出 判断和相应的决策。 X2812的中断系统三级中断系统 外设中断在PIE中的分布 PIE一共可以支持96个不同的中断,并把这些中断分成了12个组, 每个组有8个中断,而且每个组都被反馈到CPU内核的INT1INT12 这12条中断线中的某一条上。平时能够用到的所有的外设中断 都被归入了这96个中断中,被分布在不同的组里。 X2812的中断系统三级中断系统 INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1 INT1WAKEINTTINT0ADCINTXINT2XINT1PDPINTBPDPINTA INT2T1OFINTT1UFINTT

9、1CINTT1PINTCMP3INTCMP2INTCMP1INT INT3CAPINT3CAPINT2CAPINT1T2OFINTT2UFINTT2CINTT2PINT INT4T3OFINTT3UFINTT3CINTT3PINTCMP6INTCMP5INTCMP4INT INT5CAPINT6CAPINT5CAPINT4T4OFINTT4UFINTT4CINTT4PINT INT6MXINTMRINTSPITXINTASPIRXINTA INT7 INT8 INT9ECA1INTECAN0INTSCITXINTBSCIRXINTBSCITXINTASCIRXINTA INT10 INT11

10、INT12 X2812的中断系统三级中断系统 中断寄存器 nPIE中断使能寄存器(PIEIERx) nPIE标志寄存器(PIEIFRx) nPIE应答寄存器(PIEACKx) nX=1,2,3.12 n问题:CPU定时器0周期中断TINT0 位于PIE中断寄存器的什么位置? X2812的中断系统三级中断系统 PIE使能寄存器PIEIERx X2812的中断系统三级中断系统 PIE标志寄存器PIEIFRx X2812的中断系统三级中断系统 PIE中断应答寄存器PIEACKx X2812的中断系统三级中断系统 PIE控制寄存器 PIEVECT:位151表示从PIE向量表取回的向量地址。最低位 忽略

11、,只显示位1到位15的地址。用户可以读取向量值,以确 定取回的向量是由哪一个中断产生的。 ENPIE:位0,从PIE块取回向量使能。当该位置1时,所有向量 取自PIE向量表若该位为0,PIE块无效,向量取自引导ROM的 CPU向量表或XINTF7区外部接口。 X2812的中断系统三级中断系统 PIE中断向量表(表11-6,P214-218) n中断向量表可以映射到5个不同的存储空 间: nM1向量 nM0向量 nBROM向量 nXINTF向量 nPIE向量 X2812的中断系统三级中断系统 n由以下4个控制信号控制: nVMAP nM1M1MAP nMP/MC nENPIE nM1向量和M0向

12、量仅留给TI测试用。 n通常情况下ENPIE为1,也即是使用PIE向 量。 PIE中断向量表(表11-6,P214-218) X2812的中断系统三级中断系统 三级中断系统 X2812的中断系统三级中断系统 外设级 n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 TIMER0TCR的第14位TIE=1? N 向PIE发出中断请求 Y n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 TIMER0TCR的第14位TIE=1? N

13、 向PIE发出中断请求 Y TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 TIMER0TCR的第14位TIE=1? N 向PIE发出中断请求 Y n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 TIMER0TCR的第14位TIE=1? N 向PIE发出中断请求 Y X2812的中断系统三级中断系统 外设级手动操作的内容 n外设中断的使能,需要将与该中断相关的外设 寄存器中的中断使能位置1; n外设中断的屏蔽,需要将与该中断相关的外设 寄存器中的中断使能位置0;

14、 n外设中断标志位的清除,需要将与该中断相关 的外设寄存器中的中断标志位置1。 n清除CPU定时器0中断标志位TIF的语句如下: 清除定时器中断标志位 X2812的中断系统三级中断系统 PIE级 n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 向CPU发出INT1中断请求 n以CPU定

15、时器T0的周期中断为例。 TIMH:TIM计数到0向PIE提出中断请求PIEIFR1.7被置位 N PIEIER1.7=1?PIEIER1.7=1? PIEACK.1=1? N Y TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位TIMH:TIM计数到0TIMH:TIM计数到0TIMER0TCR寄存器的第15位TIF被置位 向CPU发出INT1中断请求 n以CPU定时器T0的周期中断为例。 TIMH:TIM计数到0外设向PIE提出中断 请求 PIEIFR1

16、.7被置位 N PIEIER1.7=1?PIEIER1.7=1? PIEACK.1=0? Y X2812的中断系统三级中断系统 PIE级手动操作的内容 nPIE中断的使能。需要使能某个外设中断,就得将 其相应组的使能寄存器PIEIERx的相应位进行置位; nPIE中断的屏蔽。这是和使能相反的操作; nPIE应答寄存器PIEACK相关位的清除,以使得 CPU能够响应同组内的其他中断。 n清除PIEACK中与T0INT相关的应答位的语句如下 所示: n响应PIE组1内的其他中断。 X2812的中断系统三级中断系统 CPU级 PIE向CPU提出INT1中断 请求 TIMER0TCR寄存器的第15位T

17、IF被置位TIMER0TCR寄存器的第15位TIF被置位TIMER0TCR寄存器的第15位TIF被置位 CPU响应定时器T0周期中断 n以CPU定时器T0的周期中断为例。 IFR.1被置位 N PIEIER1.7=1?IER.1=1? INTM=0? Y N X2812的中断系统三级中断系统 2812的中断过程 X2812的中断系统三级中断系统 11.5 成功实现中断的必要步骤 X2812的中断系统三级中断系统 第1步 外设初始化 void InitCpuTimers(void) CpuTimer0Regs.TCR.bit.TIE=1; /使能CPU定时器0的周期中断 X2812的中断系统三级中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论