中断管理和复位课件

上传人:pu****.1 文档编号:567560160 上传时间:2024-07-21 格式:PPT 页数:86 大小:1.51MB
返回 下载 相关 举报
中断管理和复位课件_第1页
第1页 / 共86页
中断管理和复位课件_第2页
第2页 / 共86页
中断管理和复位课件_第3页
第3页 / 共86页
中断管理和复位课件_第4页
第4页 / 共86页
中断管理和复位课件_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《中断管理和复位课件》由会员分享,可在线阅读,更多相关《中断管理和复位课件(86页珍藏版)》请在金锄头文库上搜索。

1、什么是中断?什么是中断?中断可以做什么?中断可以做什么?中断怎么去做的?中断怎么去做的?28122812中断有什么自己特点?中断有什么自己特点?等待等待20分钟分钟等待等待20分钟分钟查询方式查询方式中断方式中断方式一、中断矢量一、中断矢量 二、可屏蔽中断二、可屏蔽中断三、非屏蔽中断三、非屏蔽中断四、非法指令陷阱四、非法指令陷阱五、复位操作五、复位操作六、低功耗模式六、低功耗模式七、片内外设的中断扩展七、片内外设的中断扩展7第第第第4 4 4 4章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位什么是中断什么是中断中中断断(Interrupt)是是硬硬件件和和软件件激激发的的信

2、信号号,它它使使得得CPU暂停停当当前前的主程序,并的主程序,并转而去而去执行一个中断服行一个中断服务子程序。子程序。中断中断请求可由外求可由外围设备和硬件和硬件产生(生(ADC、DAC、外、外设),也可作),也可作为特殊事件特殊事件发生的生的标志信号(定志信号(定时器器计数器溢出)。数器溢出)。可屏蔽中断:可用可屏蔽中断:可用软件禁止或使能;件禁止或使能;不可屏蔽中断:不能被禁止。所有不可屏蔽中断:不能被禁止。所有软件触件触发的中断均属于不可屏蔽的中断均属于不可屏蔽中断。中断。处理中断过程:处理中断过程:1接接收收中中断断请请求求:由由软软件件中中断断(从从程程序序代代码码中中)或或者者硬硬

3、件件中中断断(从从一一个个引引脚脚或一个基于芯片的设备或一个基于芯片的设备)提出请求去暂停当前主程序的执行。提出请求去暂停当前主程序的执行。2响响应应中中断断:CPU必必须须能能够够响响应应中中断断请请求求。如如果果中中断断是是可可屏屏蔽蔽的的,则则必必须须满满足足一一定定的的条条件件,按按照照一一定定的的顺顺序序去去进进行行测测试试。而而对对于于非非屏屏蔽蔽硬硬件件中中断断和和软软件件中断,中断,CPU会立即作出响应。会立即作出响应。3准备执行中断服务程序并保存寄存器值。准备执行中断服务程序并保存寄存器值。(1)完整地执行完当前指令,清除流水线中还没有到达第二阶段的所有指令。完整地执行完当前

4、指令,清除流水线中还没有到达第二阶段的所有指令。(2)将将寄寄存存器器ST0、T、AH、AL、PH、PL、AR0、ARl、DP、STl、DBGSTAT、PC和和IER的内容保存到堆栈中,以便自动保存主程序的大部分内容(的内容保存到堆栈中,以便自动保存主程序的大部分内容(现场保护现场保护)。)。(3)取回中断向量并把它放入程序寄存器取回中断向量并把它放入程序寄存器PC中。中。4执执行行中中断断服服务务子子程程序序:CPU进进入入预预先先规规定定的的向向量量地地址址,并并且且执执行行已已写好的中断服务程序写好的中断服务程序ISR。第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管

5、理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位C28x 中断源C28xC28xCORECORE2个不可屏蔽中断/RSNMI14个可屏蔽中断 (INT1 INT14)INT1INT1INT2INT2INT3INT3INT4INT4INT5INT5INT6INT6INT7INT7INT8INT8INT9INT9INT10INT10INT11INT11INT12INT12INT13INT13INT14INT14RSRSNMINMIX2812中断从上至下分成三级:中断从上至下分成三级:CPU级中断级中断PIE级中断级中断外设中断外设中断10第第第第第第4 4 4 4 4 4章章章章章

6、章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位C28x Fast Interrupt Response Manager支持支持9696个独立的中断个独立的中断直接访问专用直接访问专用RAMRAM(向(向量表)量表)自动标志更新自动标志更新自动现场保护自动现场保护软件激发软件激发(INTR/TRAPINTR/TRAP)可屏蔽中断可屏蔽中断- -顺序执行顺序执行非屏蔽中断非屏蔽中断/ /软立即执行软立即执行28x CPU Interrupt logic28x CPU Interrupt logic28x28xCPUCPUINTMINTMIFRIFRIERI

7、ER96 96 P Pe er ri ip ph he er ra al l I In nt te er rr ru up pt ts s 1 12 2x x8 8 = = 9 96 612 interrupts12 interruptsINT1 to INT1 to INT12INT12PIEPIERegisterRegisterMapMapPIE module PIE module For 96 For 96 interruptsinterruptsT TST0ST0AHAHALALPHPHPLPLAR1 (L)AR1 (L)AR0 (L)AR0 (L)DPDPST1ST1DBSTATDB

8、STATIERIERPC(msw)PC(msw)PC(lsw)PC(lsw)Auto Context SaveAuto Context Save C28x支持支持32个个CPU级中断向量,包括复位向量。每一级中断向量,包括复位向量。每一向量是一个向量是一个22位的地址,该地址是相应中断服务程序位的地址,该地址是相应中断服务程序ISR的入口地址。每一个的入口地址。每一个32位的向量被保存在一个连续地址中。位的向量被保存在一个连续地址中。见书中表见书中表4-1-1 中断向量地址的低中断向量地址的低16位保存该向量的低位保存该向量的低16位,高地址则位,高地址则保存它的高保存它的高6位。当位。当个中

9、断被确定后,其个中断被确定后,其22位的向量被位的向量被取回,而地址的高取回,而地址的高10位被忽略。位被忽略。 一、一、中断矢量中断矢量 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位1314向量表可以映像到程序空间的底部或顶部,这取决于状态向量表可以映像到程序空间的底部或顶部,这取决于状态寄存器寄存器ST1的向量映像位的向量映像位VMAP,如果,如果VMAP位是位是0,向量就,向量就映像在以映像在以000000h开始的地址上;如果其值是开始的地址上;如果其值是1,向量就映像,向量就映像到以到以3FFFC0

10、h开始的地址上。开始的地址上。 VMAP位可以由位可以由SETC VMAP指令进行置位,由指令进行置位,由CLR CVMAP指令进行复位。指令进行复位。VMAP的复位值是的复位值是1。一、一、中断矢量中断矢量 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位 14个通用中断个通用中断INTlINTl4 为仿真而设计的中断为仿真而设计的中断DLOGINT(数据标志中断数据标志中断)和和TOSINT(实实 时操作系统中断时操作系统中断)是为仿真目的而设计是为仿真目的而设计。 中断寄存器:中断寄存器: 中断标志寄存器

11、中断标志寄存器IFRl6位寄存器位寄存器IFR包含的标志位表明相应中断在包含的标志位表明相应中断在等待等待CPU的确认。的确认。外部输入线外部输入线INTlINTl4在在CPU的每的每个时钟周期都被采样。如个时钟周期都被采样。如果识别出果识别出个中断信号,个中断信号,IFR相应的位就被置位和锁存。相应的位就被置位和锁存。DLOGINT或或RTOSINT,CPU片内分析逻辑送来的信号使得相应标志位被设置和锁存。片内分析逻辑送来的信号使得相应标志位被设置和锁存。 中断使能寄存器中断使能寄存器IER包含的每一位为可屏蔽中断进行使能和关闭。包含的每一位为可屏蔽中断进行使能和关闭。 调试中断使能寄存器调

12、试中断使能寄存器DBGIER包含的每一位为可屏蔽中断进行包含的每一位为可屏蔽中断进行使能和关闭。表明了当使能和关闭。表明了当CPU处于实时仿真模式时哪一个中断可以利用。处于实时仿真模式时哪一个中断可以利用。 二、二、可屏蔽中断可屏蔽中断 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位 可屏蔽中断也利用状态寄存器可屏蔽中断也利用状态寄存器ST1的的0位,即中断全局屏蔽位位,即中断全局屏蔽位INTM,可用来进行全局使能中断和关闭中断。,可用来进行全局使能中断和关闭中断。 当当INTM0时,这些中断全局使能;时,这

13、些中断全局使能; 当当INTM1时,这些中断全局关闭。时,这些中断全局关闭。 在在IFR中一个标志关闭后,直到中一个标志关闭后,直到IER、DBGIER和和INTM位被使位被使能,否则相应的中断将不再响应。能,否则相应的中断将不再响应。表表4-2-1 使能使能可屏蔽中断可屏蔽中断的条件的条件中断中断处理过程处理过程使能使能可屏蔽中断可屏蔽中断的条件的条件标准标准 INTM0 IFR中相应位是中相应位是“1”DSP工作在实时模式且暂停工作在实时模式且暂停 IFR和中和中DBGIER相应位是相应位是“1”二、二、可屏蔽中断可屏蔽中断 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中

14、断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断全局使能INTM用来做全局的使能/禁止中断:使能: INTM = 0禁止: INTM = 1 (reset value)INTM只能被汇编语言修改:INTMINTMST1ST1 Bit 0Bit 0/* Global Interrupts */* Global Interrupts */ asm(“ CLRC INTM”); /enable global interrupts asm(“ CLRC INTM”); /enable global interrupts asm(“ SETC INTM”); /disable g

15、lobal interrupts asm(“ SETC INTM”); /disable global interrupts 为了识别未确认中断,可以利用指令为了识别未确认中断,可以利用指令PUSH IFR,然后测,然后测试堆栈的值。试堆栈的值。 运用运用OR IFR指令来设置指令来设置IFR位,位, 利用指令利用指令AND IFR,#0或硬件复位可以对所有的未决中断或硬件复位可以对所有的未决中断进行清进行清0。注意:注意:当通过指令当通过指令TRAP发出中断请求时,如果发出中断请求时,如果IFR的相应位被置位,的相应位被置位,CPU并并不会自动清除它。如果有一个应用请求,它的不会自动清除它。

16、如果有一个应用请求,它的IFR已被清已被清0,则必须在中断服务子,则必须在中断服务子程序中将相应位清程序中将相应位清0。中断标志寄存器中断标志寄存器(IFR) 二、二、可屏蔽中断可屏蔽中断 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT13 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2INT1 R/W-0 R/W-0 R/W-0 R/W-0 R/

17、W-0 R/W-0 R/W-0 R/W-0INT7中断标志寄存器中断标志寄存器IFR 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位20若要使能中断,需要把它的相应位置若要使能中断,需要把它的相应位置1;若要关闭中断,应该清除它的相应位。若要关闭中断,应该清除它的相应位。可以使用指令可以使用指令MOV的两种语法对寄存器的两种语法对寄存器IER进行读和写。进行读和写。 ORIER指令可以用来设置指令可以用来设置IER位,位, ANDIER指令可以用来清除指令可以用来清除IER位。位。注意:注意:当执行当执行AN

18、D IER和和OR IER指令时,应确保它们不会修改状态位指令时,应确保它们不会修改状态位15(RTOSINT),除非当前处于实时操作系统模式。,除非当前处于实时操作系统模式。 中断使能寄存器中断使能寄存器(IER) 二、二、可屏蔽中断可屏蔽中断 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT13 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2IN

19、T1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0INT7中断使能寄存器中断使能寄存器IER 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位22当当CPU处于实时仿真模式下并暂停时,才可以使用处于实时仿真模式下并暂停时,才可以使用DBGIER。可通过读可通过读DBGIER来识别使能或关闭中断,或通过写来识别使能或关闭中断,或通过写 DBGIER来使能或关闭中断。来使能或关闭中断。用指令用指令PUSH DBGIER对对DBGIER进行读操作,进行读操作,用指令用

20、指令POP DBGIET对对DBGIER进行写操作。进行写操作。在复位时,在复位时,DBGIER的所有位被清的所有位被清0。调试中断使能寄存器调试中断使能寄存器 DBGIER 二、二、可屏蔽中断可屏蔽中断 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT13 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2INT1 R/W-0 R/W-0 R/W-0

21、R/W-0 R/W-0 R/W-0 R/W-0 R/W-0INT7调试中断使能寄存器调试中断使能寄存器DBGIER 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位24可屏蔽中断的标准操作可屏蔽中断的标准操作二、二、可屏蔽中断可屏蔽中断 1送往送往CPU的中断请求。的中断请求。2设置相应的设置相应的IFR标志位。标志位。3当当 1)IER中的相应位是中的相应位是1; 2)STl中中的的INTM位位是是0,确确认认中中断断;一一旦旦一一个个中中断断被被使使能能并并且且被被CPU响响应应,则则在在CPU开始执行中断

22、服务程序(步骤开始执行中断服务程序(步骤13)之前,其他的中断就不能得到响应。)之前,其他的中断就不能得到响应。4清除相应的清除相应的IFR位。位。5清空流水线。清空流水线。6增加和临时存储增加和临时存储PC。7取回中断向量。取回中断向量。8SP增增1。9执行自动现场保护。执行自动现场保护。10清除相应的清除相应的IER位。位。11设置设置INTM和和DBGM,清除,清除LOOP、EALLOW和和IDLESTAT。12取回向量赋值给取回向量赋值给PC。13执行中断服务程序。执行中断服务程序。14继续执行程序。继续执行程序。 中断处理的标准过程中断处理的标准过程第第第第第第4 4 4 4 4 4

23、章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位2627第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位可屏蔽中断响应过程可屏蔽中断响应过程 当某个可屏蔽中断提出响应请求时,将其在中断标志寄存器当某个可屏蔽中断提出响应请求时,将其在中断标志寄存器IFRIFR中的中的中断标志位自动置位。中断标志位自动置位。CPUCPU检测到该中断标志位被置位后,接着会检测该检测到该中断标志位被置位后,接着会检测该位是否被使能,也就是去读位是否被使能,也就是去读CPUCPU中断使能

24、寄存器中断使能寄存器IERIER中相应位的值。中相应位的值。三、三、非屏蔽中断非屏蔽中断 C28x非屏蔽中断包括:非屏蔽中断包括: 软中断软中断(INTR和和TRAP指令指令) 硬件中断硬件中断NMI 非法指令陷阱非法指令陷阱 硬件复位中断硬件复位中断(RS)第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位不可屏蔽中断不能被任何使能位(不可屏蔽中断不能被任何使能位(INTM、DBGM、IFR、IER、DBGIER中的使能位)禁止。中的使能位)禁止。CPU立即响应这种类型立即响应这种类型的中断,并执行相应的中断服

25、务程序。的中断,并执行相应的中断服务程序。 但当但当CPU处于实时仿真模式且被暂停时,不响应任何正常处于实时仿真模式且被暂停时,不响应任何正常中断。中断。INTR指令指令 三、三、非屏蔽中断非屏蔽中断 可可以以通通过过INTR指指令令对对中中断断INTlINTl4、DLOGINT、RTOSINT和和NMI进行激发。进行激发。 INTlINTl4、DLOGINT和和RTOSINT。当当这这些些中中断断由由INTR触触发发时时,相相应应的的IFR位位并并不不会会置置1,而而中中断断仍仍将将被被响响应应和和服服务务,并并与与任任何何使使能能位位的的值值无无关关(但但中中断断过过程程中中会会清清除除I

26、FR中相应的位)。中相应的位)。 NMI一一个个非非屏屏蔽蔽中中断断,引引脚脚上上的的硬硬件件请请求求和和用用INTR指指令令引引起起的的软软件件请请求求都都会会导导致致同同样样的的事事件件发发生生。这这些些事事件件与与执执行行TRAP指指令令时时所所发发生生的的事事件件相同。相同。第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位 由由TRAP指令对中断进行初始化的功能流程:指令对中断进行初始化的功能流程:1取出取出TRAP指令。指令。2清空流水线。清空流水线。3PC增增1和临时存储和临时存储PC。4取回中断向

27、量。取回中断向量。5SP增增1。6. 执行自动上下文存储。执行自动上下文存储。7设置设置INTM和和DBGM,清除,清除LOOP、EALLOW和和IDLESTAT。8用取回的向量装载用取回的向量装载PC。9执行中断服务程序。执行中断服务程序。10程序继续。程序继续。TRAP指令指令三、三、非屏蔽中断非屏蔽中断 TRAP指令可初始化任何中断,包括用户定义的软件中断。指令可初始化任何中断,包括用户定义的软件中断。TRAP指令与指令与32个中断的任何一个中断有关。个中断的任何一个中断有关。指令不受指令不受IFRIER影响,也不影响影响,也不影响IFRIER。第第第第第第4 4 4 4 4 4章章章章

28、章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位,非屏蔽硬件中断非屏蔽硬件中断 NMI输入引脚输入引脚CPU一旦在一旦在NMI引脚上检测到一个有效请求,就将按引脚上检测到一个有效请求,就将按TRAP指令中所示的方式来处理。指令中所示的方式来处理。需要说明的是:尽管需要说明的是:尽管NMI不可以被屏蔽,但有一些调试执行不可以被屏蔽,但有一些调试执行状态是状态是NMI所不能服务的。所不能服务的。三、三、非屏蔽中断非屏蔽中断 第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位

29、无效的指令被译码无效的指令被译码 操作码操作码0000h被译码被译码 ITRAP0 操作码操作码FFFFh被译码被译码 ITRAP1四、非法指令陷阱四、非法指令陷阱第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位 复位(复位(RS=0)是优先级最高的中断,为非屏蔽外部中断)是优先级最高的中断,为非屏蔽外部中断 复位通常在电源打开之后被启动复位通常在电源打开之后被启动 每次复位之后必须重新初始化系统每次复位之后必须重新初始化系统 作为硬件复位的一部分,所有当前操作均被放弃,流水线作为硬件复位的一部分,所有当前操作

30、均被放弃,流水线被清除被清除 复位后复位后CPU的寄存器按表的寄存器按表4-5-1所示进行复位,然后所示进行复位,然后RESET中断向量被取回,从而执行相应的中断服务程序。中断向量被取回,从而执行相应的中断服务程序。五、复位操作五、复位操作第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位C28X 复位中断Watchdog TimerWatchdog TimerRS pin activeRS pin activeTo RS pinTo RS pinRSRSC28x CoreC28x CoreReset Boot

31、LoaderResetResetOBJMODE=0 AMODE=0OBJMODE=0 AMODE=0ENPIE=0 VMAP=1ENPIE=0 VMAP=1M0M1MAP=1M0M1MAP=1Boot determined by Boot determined by state of GPIO pinsstate of GPIO pinsReset vector fetched Reset vector fetched from boot ROMfrom boot ROM0x3F FFC00x3F FFC0XMPNMC=1XMPNMC=1(microprocessor mode)(microp

32、rocessor mode)Reset vector fetched Reset vector fetched from XINTF zone 7from XINTF zone 70x3F FFC00x3F FFC0XMPNMC=0XMPNMC=0(microcomputer mode)(microcomputer mode) ExecutionExecutionBootloadingBootloadingEntry PointEntry Point Routines Routines FLASH FLASH SPI SPIH0 SARAMH0 SARAM SCI-A SCI-A OTP OT

33、PParallel loadParallel loadNotes:Notes:F2810 XMPNMC tied low internal to deviceF2810 XMPNMC tied low internal to deviceXMPNMC refers to input signalXMPNMC refers to input signalMP/MC is status bit in XINTFCNF2 registerMP/MC is status bit in XINTFCNF2 registerXMPNMC only sampled at resetXMPNMC only s

34、ampled at resetBootloader 模式 GPIO pinsGPIO pinsF4 F12 F3 F2F4 F12 F3 F2 1 x x x flash 0x3F 7FF6, 1 x x x flash 0x3F 7FF6,用户必须已经编写了分支指令重定位程序执行用户必须已经编写了分支指令重定位程序执行用户必须已经编写了分支指令重定位程序执行用户必须已经编写了分支指令重定位程序执行 * * 0 0 1 0 0 0 1 0 H0 SARAMH0 SARAM 0x3F 8000* 0x3F 8000* 0 0 0 1 0 0 0 1 OTPOTP 0x3D 7800* 0x3D

35、7800* 0 1 x x 0 1 x x 从外部从外部从外部从外部EEPROMEEPROM调用调用调用调用SPL_BootSPL_Boot 0 0 1 1 0 0 1 1 从从从从SCI-ASCI-A调用调用调用调用SCI-BootSCI-Boot 0 0 0 0 0 0 0 0 从从从从GPIO BGPIO B口调用口调用口调用口调用Parallel_BootParallel_Boot* * Boot ROM software configures the device for C28x mode before jumpBoot ROM software configures the de

36、vice for C28x mode before jumpReset 引导过程H0 SARAM (8K)H0 SARAM (8K)FLASH (128K)FLASH (128K)OTP (2K)OTP (2K)0x3F 7FF60x3F 7FF60x3D 78000x3D 78000x3D 80000x3D 80000x3F 80000x3F 80000x3F F0000x3F F0000x3F FFC00x3F FFC0Boot ROM (4K)Boot ROM (4K)BROM vector (32)BROM vector (32)0x3F FC000x3F FC00Boot CodeB

37、oot Code RESETRESETExecution Entry Execution Entry Point DeterminedPoint DeterminedBy GPIO PinsBy GPIO PinsBootloadingBootloadingRoutines Routines (SPI, SCI-A,(SPI, SCI-A,Parallel Load)Parallel Load)0x3F FC000x3F FC003839Reset BootloaderResetResetOBJMODE=0 AMODE=0OBJMODE=0 AMODE=0ENPIE=0 VMAP=1ENPIE

38、=0 VMAP=1Boot determined by Boot determined by state of GPIO pinsstate of GPIO pinsReset vector fetched Reset vector fetched from boot ROMfrom boot ROM0x3F FFC00x3F FFC0XMPNMC=0XMPNMC=0(microcomputer mode)(microcomputer mode) ExecutionExecutionEntry PointEntry PointH0 SARAMH0 SARAMBootloader setsBoo

39、tloader setsOBJMODE = 1OBJMODE = 1AMODE = 0AMODE = 0 IDLE模式:模式:任何被使能的中断或任何被使能的中断或NMI中断都可以使处理器退出中断都可以使处理器退出IDLE模式。模式。在这种模式下,如果在这种模式下,如果LPMCR1:0位都设置成零,位都设置成零,LPM模块将不完成任何工作。模块将不完成任何工作。 HALT模式:模式:只有复位只有复位XRS非和非和XNMI_XINT13外部信号能够唤醒器件,外部信号能够唤醒器件,使其退出使其退出HALT模式。在模式。在XMNICR寄存器中,寄存器中,CPU有一位使能有一位使能/禁止禁止XNMI 。

40、 STANDBY模式:模式:如果在如果在LPMCRl寄存器中被选中,所有信号寄存器中被选中,所有信号(包括包括XNMI)都能够将处理器从都能够将处理器从STANDBY模式唤醒,用户必须选择具体哪个信号唤醒处模式唤醒,用户必须选择具体哪个信号唤醒处理器。在唤醒处理器之前,要通过理器。在唤醒处理器之前,要通过OSCCLK确认被选定的信号:确认被选定的信号:OSCCLK的周期的周期数在数在LPMCR0寄存器当中确定。寄存器当中确定。六、低功耗模式六、低功耗模式可使芯片核心部分进入休眠状态,耗散更少的功率。有三种模式:可使芯片核心部分进入休眠状态,耗散更少的功率。有三种模式:第第第第第第4 4 4 4

41、 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位42六、低功耗模式六、低功耗模式低功耗模式通过低功耗模式通过LPMCR0和和LPMCRl两个寄存器来控制两个寄存器来控制 CANRX D15 D14 D13 D12 D11 D10 D9 D8SCIRXA C6TRIPC5TRIPC4TRIPC3TRIPC2TRIPSCIRXBC1TRIP D7 D6 D5 D4 D3 D2 D1 D0T3CTRIPT2CTRIPT1CTRIPWDINT XNMI XINT1T4CTRIP低功耗方式控制低功耗方式控制1寄存器寄存器LPMCR1 保留保留 D

42、15 D1 D0QUAL STDBYLPM低功耗方式控制低功耗方式控制0寄存器寄存器LPMCR0 R-0 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0第第第第第第4 4 4 4 4 4章章章章章章 中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位中断管理和复位44452个不可屏蔽中断/RSNMI14个可屏蔽中断 (INT1 INT14)C28xC28xCORECOREINT1INT1INT2INT2INT

43、3INT3INT4INT4INT5INT5INT6INT6INT7INT7INT8INT8INT9INT9INT10INT10INT11INT11INT12INT12INT13INT13INT14INT14RSRSNMINMI七、片内外设的中断扩展七、片内外设的中断扩展X281x的的CPU共有共有16根中断线,其中包括根中断线,其中包括2根不可屏蔽中断,根不可屏蔽中断, ,还有还有14根可屏蔽中断根可屏蔽中断C28X 复位中断Watchdog TimerWatchdog TimerRS pin activeRS pin activeTo RS pinTo RS pinRSRSC28x Core

44、C28x Core七、片内外设的中断扩展七、片内外设的中断扩展X281X DSP的中断源的中断源七七、片内外设的中断扩展、片内外设的中断扩展 外外设设级级:一一个个中中断断产产生生事事件件出出现现在在某某个个外外设设中中,和和该该事事件件相相关关的的中中断断标标志志(IFR)位位会会在在这这个个特特别别外外设设的的寄寄存存器器中中被被置置为为1。如如果果相相应应的的中中断断使使能能(IER)位位已已经经置置位位,则则外外设设向向PIE控控制制器器产产生生一一个个中中断断请请求求。如如果果该该中中断断在在外外设设级级使使能能无无效效,则则相相应应的的IFR位位会会一一直直保保持持直直到到用用软软

45、件件清清除除它它为为止止。如如果果在在以以后后使使能能该该中中断断,且且中中断断标标志志仍仍然然置置位位,那那么么就就会会向向PIE发发出出一一个个中中断断请请求求。外外设设寄寄存存器中的中断标志必须手工清除。器中的中断标志必须手工清除。PIE级级 PIE (Peripheral Interrupt Expansion Block) 外外设中断中断扩展模展模块,简称称为外外设中断管理器。中断管理器。 能能够对各种中断各种中断请求源(来自各个外求源(来自各个外设或者其他外部引脚或者其他外部引脚请求)做出求)做出判断和相判断和相应的决策。的决策。把许多中断源多路复用成一个较小的中断输入集。把许多中

46、断源多路复用成一个较小的中断输入集。 功能:功能:PIE模块支持模块支持96个不同的中断,这些中断分成个不同的中断,这些中断分成12个组,每个组个组,每个组有有8个中断,每个组都被反馈到个中断,每个组都被反馈到CPU内核的内核的12条中断线条中断线( ) 的一条上。这的一条上。这96个中断中的每一个都得到了各自向量的支持,这些向量个中断中的每一个都得到了各自向量的支持,这些向量被保存在专用被保存在专用RAM块中并可以进行修改。块中并可以进行修改。 在在PIE块中可对每个中断分别使能或者使之无效。块中可对每个中断分别使能或者使之无效。 七、片内外设的中断扩展七、片内外设的中断扩展外设中断在外设中

47、断在PIE的分步的分步CPUPIEINTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1INT1WAKEINTTINT0ADCINTXINT2XINT1PDPINTBPDPINT1INT2T1OFINTT1UFINTT1CINTT1PINTCAP3INTCAP2INTCAP1INTINT3CAPINT3CAPINT2CAPINT1T2OFINTT2UFINTT2CINTT2PINTINT4T3OFINTT3UFINTT3CINTT3PINTCAP6INTCAP5INTCAP4INTINT5CAPINT6CAPINT5CAPINT4T4OFINTT4UF

48、INTT4CINTT4PINTINT6MXINTMRINTSPITXINTASPIRXINTAINT7INT8INT9ECAN1INTECAN2INTSCITXINTBSCIRXINTBSCITXINTASCIRXINTAINT10INT11INT1251七七、片内外设的中断扩展、片内外设的中断扩展 CPU级级:一一旦旦某某个个中中断断请请求求被被送送往往CPU,CPU级级中中与与INTx相相关关的的中中断断标标志志(IFR)位位就就被被置置位位。该该标标志志位位被被锁锁存存在在IFR后后,CPU不不会会马马上上就就去去执执行行相相应应的的中中断断,而而是是等等待待CPU使使能能IER寄寄存存

49、器器,或或者者使使能能DBGIER寄寄存存器器,并并对对全全局局中中断断屏蔽位屏蔽位INTM进行适当的使能。进行适当的使能。 七、片内外设的中断扩展七、片内外设的中断扩展53七七、片内外设的中断扩展、片内外设的中断扩展X281x的三级中断系统分析的三级中断系统分析 X281x中断的工作过程七、片内外设的中断扩展七、片内外设的中断扩展55PIE控制器概述控制器概述 PIE中断向量表中断向量表PIE 一共可以支持一共可以支持96个中断,每一个中断都有个中断,每一个中断都有中断服务子程中断服务子程序序ISR,那么,那么CPU响应中断时,如何找到对应的中断服务响应中断时,如何找到对应的中断服务子程序呢

50、?解决办法就是将子程序呢?解决办法就是将DSP的各个中断服务子程序的的各个中断服务子程序的地址存储地址存储在专用在专用RAM连续空间中,这就是中断相量表。连续空间中,这就是中断相量表。所有多通道所有多通道(MUXed)中断和非多通道中断和非多通道(nonMUXed)中断中的每个中断中的每个中断都有一个向量。非多通道中断源由中断都有一个向量。非多通道中断源由CPU直接提供。直接提供。 在器件配置期间,用户要使用向量表并在操作期间去修改它。在器件配置期间,用户要使用向量表并在操作期间去修改它。 七、片内外设的中断扩展七、片内外设的中断扩展七七、片内外设的中断扩展、片内外设的中断扩展向量表映射向量表

51、映射 在在C28x芯芯片片上上,中中断断向向量量表表可可以以和和存存储器器的的五五个个不不同同位位置置相相对应。实际上上,F28x芯芯片片只只使使用用了了PIE向向量量表表映映像像。向向量量映映像像由由下下述信号控制。述信号控制。1VMAP:该位位是是状状态寄寄存存器器STl的的位位3。芯芯片片复复位位将将把把该位位置置1。通通过写写STl或或执行行SETCCLRC VMAP指指令令可可以以修修改改该位位的的状状态。对于正常的于正常的F2812操作,可把操作,可把该位位设置置为1。2M0M1MAP:该位位是是状状态寄寄存存器器ST1的的位位11。芯芯片片复复位位将将把把该位位置置1。通通过写写

52、STl或或执行行SETC/CLRC M0M1MAP指指令令可可以以修修改改该位位的的状状态。对于于正正常常的的F2812操操作作,该位位应该保保持持为1。M0M1MAP=0保留,保留,仅用于用于TI测试。向量表映射向量表映射 3MP/MC:该该位位是是XINTCNF2寄寄存存器器的的位位8。在在有有外外部部接接口口(XINTF)的的芯芯片片上上,复复位位时时,该该位位的的默默认认值值由由XMP/MC输输入入信信号号设设置置。在在没没有有XINTF的的芯芯片片上上,在在内内部部将将XMP/MC拉拉为为低低电电平平。复复位位后后,通通过过写写XINTCNF2寄寄存存器器(地地址址:0x0000 0

53、B34),可可以以修修改该位状态。改该位状态。4ENPIE:该该位位是是寄寄存存器器PIECTRL的的位位0。复复位位时时该该位位的的默默认认值值设设为为0(PIE无无效效)。复复位位后后,通通过过写写PIECTRL寄寄存存器器(地地址址:0x0000 0CE0),可以修改该位状态。,可以修改该位状态。 七、片内外设的中断扩展七、片内外设的中断扩展七七、片内外设的中断扩展、片内外设的中断扩展 M1和和M0向量表映像仅留作向量表映像仅留作TI测试之用,当使用其他向量测试之用,当使用其他向量映像时,映像时,M0和和M1存储器用作存储器用作RAM块,可以自由使用,没有块,可以自由使用,没有限制。芯片

54、复位后,向量表映像如书中表所示。限制。芯片复位后,向量表映像如书中表所示。 在复位和程序引导完成之后,应该由用户对在复位和程序引导完成之后,应该由用户对PIE向量表进向量表进行代码初始化,然后,由应用程序使能行代码初始化,然后,由应用程序使能PIE向量表,从向量表,从PIE向向量表所指出的位置上取回中断向量。量表所指出的位置上取回中断向量。多路复用中断处理过程多路复用中断处理过程1不不要要清清除除一一个个PIEIFR位位。当当读读修修改改写写操操作作发发生生时时,一一个个已已被被录录入入的的中中断断可可能能会会丢丢失失。清清除除相相应应的的PIEIFR位位,该该未未决决的的中中断断应应该该被被

55、服服务务。假假如如用用户户希希望望清清除除PIEIFR位,而不执行正常的服务子程序,则应按下列的过程:位,而不执行正常的服务子程序,则应按下列的过程: 步骤步骤1:设置:设置EALLOW位,允许修改位,允许修改PIE向量表。向量表。 步步骤骤2:修修改改PIE向向量量表表以以便便将将外外设设服服务务子子程程序序的的向向量量指指向向一一个个临临时时ISR。这这个个临临时时ISR仅完成从中断操作的返回仅完成从中断操作的返回(IRET)。 步骤步骤3:使能该中断以便使该中断通过临时:使能该中断以便使该中断通过临时ISR得到服务。得到服务。 步骤步骤4:在执行了临时中断服务子程序后,将清除:在执行了临

56、时中断服务子程序后,将清除PIEIFR的位。的位。 步骤步骤5:修改:修改PIE向量表重新将外设的服务子程序映像至适当的服务子程序。向量表重新将外设的服务子程序映像至适当的服务子程序。 步骤步骤6:清除:清除EALLOW位。位。CPU的的IFR寄寄存存器器在在CPU中中是是整整合合的的。因因为为清清除除CPU IFR寄寄存存器器中中的的位位不不会会造造成成一一个个己录入的中断的丢失。己录入的中断的丢失。2软件软件中断优先级。中断优先级。3使用使用PIEIER禁止中断。使用禁止中断。使用PIEIER寄存器去使能一个中断或禁止这个中断。寄存器去使能一个中断或禁止这个中断。 七、片内外设的中断扩展七

57、、片内外设的中断扩展使能或禁止多路复用外设中断使能或禁止多路复用外设中断 使能或禁止一个中断的通常会产生下列两个过程。使能或禁止一个中断的通常会产生下列两个过程。1使使用用PIEIERx寄寄存存器器去去禁禁止止中中断断并并保保护护相相应应的的PIEIFRx标标志志。当当清清除除PIEIERx寄存器中的位,保护寄存器中的位,保护PIEIFRx寄存器的相应位时,应按下列过程。寄存器的相应位时,应按下列过程。 步骤步骤1:禁止全局中断:禁止全局中断(INTM=1)。 步步骤骤2:清清除除PIEIERx.y位位去去禁禁止止一一个个给给定定的的外外设设中中断断。可可以以对对同同组组一一个个或多个外设这样

58、去作。或多个外设这样去作。步步骤骤3:等等待待5个个周周期期。需需要要确确保保这这个个延延时时,任任何何录录入入CPU的的中中断断均均已已经经被被标志在标志在CPU的的IFR寄存器中。寄存器中。 步骤步骤4:为外设组清除:为外设组清除CPU IFRx位。这是对位。这是对CPU的的IFR寄存器的软件操作。寄存器的软件操作。 步骤步骤5:为外设组清除:为外设组清除PIEACKx位。位。 步骤步骤6:使能全局中断:使能全局中断(INTM=0)。七、片内外设的中断扩展七、片内外设的中断扩展2使用使用PIEIERx寄存器去禁止中断并清除相应的寄存器去禁止中断并清除相应的PIEIFRx标志。完成外设中断的

59、软标志。完成外设中断的软件复位并清除件复位并清除PIEIFRx寄存器和寄存器和IFR寄存器中的相应标志,按下列过程。寄存器中的相应标志,按下列过程。 步骤步骤1:禁止全局中断:禁止全局中断(INTM=1)。 步骤步骤2:置位:置位EALLOW位。位。 步骤步骤3:修改:修改PIE向量表,将特有的外设中断暂时映像到向量表,将特有的外设中断暂时映像到一个空的中断服务子程一个空的中断服务子程序序ISR。这个空的。这个空的ISR仅完成从中断指令的返回。在没有丢失来自其他外设组的任何仅完成从中断指令的返回。在没有丢失来自其他外设组的任何中断的情况下,这是清除单个中断的情况下,这是清除单个PIEIFRx.

60、y位的一种安全途径。位的一种安全途径。 步骤步骤4:禁止外设寄存器的外设中断。:禁止外设寄存器的外设中断。 步骤步骤5:使能全局中断:使能全局中断(INTM=0)。 步骤步骤6:通过空的:通过空的ISR子程序为那些等待来自外设的未决中断服务。子程序为那些等待来自外设的未决中断服务。 步骤步骤7:禁止全局中断:禁止全局中断(INTM=1)。 步骤步骤8:修改:修改PIE向量表,将外设向量映像到它最初的向量表,将外设向量映像到它最初的ISR。 步骤步骤9:清除:清除EALLOW位。位。 步骤步骤10:禁止给定外设的:禁止给定外设的PIEIER位。位。 步骤步骤11:清除给定外设组的:清除给定外设组

61、的IFR位位(这是对这是对CPUIFR寄存器的安全操作寄存器的安全操作)。 步骤步骤12:清除:清除PIE组的组的PIEACK位。位。 步骤步骤13:使能全局中断。:使能全局中断。 七、片内外设的中断扩展七、片内外设的中断扩展使能或禁止多路复用外设中断使能或禁止多路复用外设中断 从外设到从外设到CPU的多路复用中断请求流程的多路复用中断请求流程 步步骤骤1:任任何何PIE组组里里的的外外设设和和外外部部中中断断产产生生一一个个中中断断,假假如如外外设设中中断断已已被被使使能能,那么,该中断要求就被置入那么,该中断要求就被置入PIE模块。模块。步步骤骤2:PIE模模块块识识别别PIE组组x内内已

62、已经经录录入入的的中中断断y(INTx.y),并并且且将将相相应应的的PIE中中断断标志位锁存:标志位锁存:PIEIFRx.y=1。步骤步骤3:为了置位从:为了置位从PIE到到CPU的中断要求,下列两个条件必须为真。的中断要求,下列两个条件必须为真。 (1)适当的使能位必须置位适当的使能位必须置位(PIEIERx.y=1)。 (2)必须清除该组的必须清除该组的PIEACKx位。位。步步骤骤4:如如果果步步骤骤3中中的的两两个个条条件件为为真真,那那么么就就在在CPU建建立立了了一一个个中中断断要要求求,响响应应位位再再次次被被置置位位(PIEACKx=1)。PIEACKx位位将将一一直直保保持

63、持置置位位直直至至清清除除该该位位,这这表表示示来自该组的附加中断能够被从来自该组的附加中断能够被从PIE设置到设置到CPU。步骤步骤5:CPU中断标志位置位中断标志位置位(CPU IFRx=1)以标示出一个以标示出一个CPU级的未决的中断级的未决的中断x。步步骤骤6:假假如如CPU中中断断被被使使能能(CPU IER bitx=1或或DBGIER bitx=1),全全局局中中断断屏屏蔽被清除蔽被清除(1NTM=0),那么,那么CPU将为将为INTx服务。服务。 七、片内外设的中断扩展七、片内外设的中断扩展从外设到从外设到CPU的多路复用中断请求流程的多路复用中断请求流程 步骤步骤7:CPU识

64、别这个中断并自动存放有关信息,清除识别这个中断并自动存放有关信息,清除IER位,设置位,设置INTM,清除清除EALLOW。 步骤步骤8:CPU从从PIE要求适当的向量。要求适当的向量。步骤步骤9:对于多通道中断,:对于多通道中断,PIE模块使用模块使用PIEIERx和和PIEIFRx寄存器中的当前寄存器中的当前值去找出要使用的向量地址。有两种可能的情况:值去找出要使用的向量地址。有两种可能的情况: 该组中最高优先级中断的向量被取出,并且被用作分支地址。这个中断在该组中最高优先级中断的向量被取出,并且被用作分支地址。这个中断在PIEIERx寄存器中使能,在寄存器中使能,在PIEIFRx中标示为

65、未决的中断。在这种方式下,假中标示为未决的中断。在这种方式下,假如一个更高级的使能中断在步骤如一个更高级的使能中断在步骤4之后被标示,它就会首先得到服务。之后被标示,它就会首先得到服务。 如果该组中没有已经标示的中断被使能,那么如果该组中没有已经标示的中断被使能,那么PIE将响应该组中最高优先级将响应该组中最高优先级的中断向量,即用的中断向量,即用INTx.1作为分支地址,这种操作相当于执行作为分支地址,这种操作相当于执行28x的的TRAP或或INT指令。指令。 在这一点上,在这一点上,PIEIPRx.y位被清除,位被清除,CPU转入从转入从PIE取出的中断向量里去。取出的中断向量里去。七、片

66、内外设的中断扩展七、片内外设的中断扩展从外设到从外设到CPU的多路复用中断请求流程的多路复用中断请求流程 PIE向量表向量表 (见教材见教材P110表表4-7-3)七、片内外设的中断扩展七、片内外设的中断扩展6667686970717273PIE寄存器寄存器 名称名称地址地址占用占用空间空间描述描述PIECTRL0x0000 0CE01PIE,控制寄存器控制寄存器PIEACK0x0000 0CE11PIE,响应寄存器响应寄存器PIEIERxX=1,2,120x0000 0CE2 0CF8(偶数偶数)1PIE,INTx组使能寄存器组使能寄存器PIEIFRx0x0000 0CE3 0CF9(奇数奇

67、数)1PIE,INTx组标志寄存器组标志寄存器保留保留)x0000 0CFA)x0000 0CFF6保留保留七、片内外设的中断扩展七、片内外设的中断扩展757677785CPU寄存器IFR、IER和DBGIER PIE级中断与CPU寄存器中断标志寄存器(IFR)、中断使能寄存器(IER)和调试中断使能寄存器(DBGIER)也密切相关,这些寄存器的各位定义和功能在4.2节已做详细说明。794.7.5 外部中断控制寄存器组F2812支持3个外部可屏蔽中断,即XINT1、XINT2、XINT13。XINT13和不可屏蔽中断XNMI复用。这些外部中断中的每一个中断都可以选择下降沿或上升沿触发,还可以选择使能或禁止(包括XNMI)。可屏蔽中断还包含一个16位自由运行的递增计数器,当一个有效的中断边沿被检测到时,计数器被清0。本计数器用于给中断提供一个精确的时间标记。808182838485864.7.6 中断应用1.初始化PIE中断向量表本节介绍在实际工程中初始化PIE中断向量表的方法。初始化PIE中断向量表需要用到以下3个文件:DSP281x_PieVect.cDSP281x_PieVect.hDSP281 x_DefaultIsr.c。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号