DSP程序控制和中断管理课件

上传人:新** 文档编号:593254747 上传时间:2024-09-24 格式:PPT 页数:48 大小:368.50KB
返回 下载 相关 举报
DSP程序控制和中断管理课件_第1页
第1页 / 共48页
DSP程序控制和中断管理课件_第2页
第2页 / 共48页
DSP程序控制和中断管理课件_第3页
第3页 / 共48页
DSP程序控制和中断管理课件_第4页
第4页 / 共48页
DSP程序控制和中断管理课件_第5页
第5页 / 共48页
点击查看更多>>
资源描述

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

1、第第3章章 程序控制和中断管理程序控制和中断管理在执行当前指令的同时,程序流要求处理器生成下一条在执行当前指令的同时,程序流要求处理器生成下一条指令的程序地址,预定程序的路线。指令的程序地址,预定程序的路线。程序地址的产生见下图:程序地址的产生见下图:3.1程序地址的产生程序地址的产生程序地址产生框图程序地址产生框图 程序地址产生逻辑使用的硬件程序地址产生逻辑使用的硬件器件功能程序计数器(PC)对内部和外部程序存储器寻址程序地址寄存器(PAR)驱动程序地址总线,提供程序的读、写地址堆栈保存返回地址微堆栈(MATACK)保存返回地址重复计数器(RPTC)与重复指令(RPT)一起,用来 确定RPT

2、后的一条指令重复执行的次数。程序地址产生源程序地址产生源操作程序地址来源顺序操作程序计数器PC(程序地址+1)空周期程序地址寄存器PAR(程序地址+1)从子程序返回堆栈栈顶(TOS)从表传送或块传送返回微堆栈(MSTACK)转移到或调用指令中指定的地址转移到或调用累加器低半部分指定的地址转移到中断服务程序转移或调用指令,即利用程序读总线(PRDB)的方式获取程序地址。累加器的低半部分,即利用数据读总线(DRDB)的方式获取程序地址中断矢量单元,即利用程序读总线(PRDB)的方式获取程序地址。3.1.1程序计数器程序计数器程序地址产生逻辑使用程序地址产生逻辑使用16位程序计数器(位程序计数器(P

3、C)对内部和)对内部和外部程序存储器寻址,外部程序存储器寻址,PC中存放将被执行的下一条指令的地中存放将被执行的下一条指令的地址。通过程序地址总线(址。通过程序地址总线(PAB),从程序存储器该地址处取),从程序存储器该地址处取出指令并装入指令寄存器,当装载入指令寄存器时,出指令并装入指令寄存器,当装载入指令寄存器时,PC中保中保存下一个地址。存下一个地址。装入装入PC中的地址中的地址将累加器低16位加载到PC。利用BACC(转移到累加器中的地址)或CALA(调用累加器指令单元的子程序)指令可实现计算转移操作加载到PC的地址顺序执行若当前指令字是一个字,则将PC+1加载到PC若当前指令字是两个

4、字,则将PC+2加载到PC转移转移指令后的长立即数直接加载到PC子程序调用和返回调用指令:将PC中的下一条指令的地址压入堆栈, 然后将调用的指令后的长立即数加载到PC返回指令:将返回地址从堆栈中弹回PC软件或硬件中断将相应的中断矢量地址装入PC。在该矢量单元,通常有一条转移指令,又将相应的中断服务程序的地址加载到PC计算转移代码操作3.1.2堆栈堆栈 16位宽、位宽、8级深的硬件堆栈。当调用子程序或发生中断时,级深的硬件堆栈。当调用子程序或发生中断时,程序地址产生逻辑用其保存返回地址。程序地址产生逻辑用其保存返回地址。当当CPU进入子程序或中断服务程序时,返回地址自动装进入子程序或中断服务程序

5、时,返回地址自动装入该堆栈的栈顶,这一操作不需附加周期。入该堆栈的栈顶,这一操作不需附加周期。当子程序或中断服务程序完成时,返回指令将返回地址当子程序或中断服务程序完成时,返回指令将返回地址从栈顶传送到程序计数器。从栈顶传送到程序计数器。当不需要用当不需要用8级返回地址时,该堆栈也可用来保存子程序级返回地址时,该堆栈也可用来保存子程序或中断服务程序的有关数据或用于其他目的。或中断服务程序的有关数据或用于其他目的。访问堆栈的指令:访问堆栈的指令:PUSH(压入)和(压入)和POP(弹出)(弹出) PUSH:把累加器的低:把累加器的低16位拷贝到栈顶位拷贝到栈顶 POP: 把栈顶值拷贝到累加器低把

6、栈顶值拷贝到累加器低16位位PSHD和和POPD 当子程序或中断嵌套超过当子程序或中断嵌套超过8级时,利用此指令在数据存级时,利用此指令在数据存储区中建立一个堆栈。储区中建立一个堆栈。PSHD把数据存储器中的值压入栈把数据存储器中的值压入栈顶,顶,POPD将栈顶值弹出到数据存储器。将栈顶值弹出到数据存储器。3.1.3微堆栈微堆栈微堆栈只有微堆栈只有1级深、级深、16位宽,没有可以使用微堆栈保存信位宽,没有可以使用微堆栈保存信息的指令,只有程序地址产生逻辑才能够使用微堆栈。息的指令,只有程序地址产生逻辑才能够使用微堆栈。 程序地址产生逻辑在执行程序地址产生逻辑在执行BLDD、BLPD、MAC、T

7、BLR及及TBLW指令时,用微堆栈保存返回地址。执行这些指令时,指令时,用微堆栈保存返回地址。执行这些指令时,首先把首先把PC+1的地址送到微堆栈保存,然后用的地址送到微堆栈保存,然后用PC存放第一个存放第一个操作数的地址,用辅助寄存器算术单元操作数的地址,用辅助寄存器算术单元ARAU产生第二个操产生第二个操作数的地址,当这些指令重复执行时,作数的地址,当这些指令重复执行时,PC可使第一个操作数可使第一个操作数的地址自动增量,的地址自动增量,ARAU使第二个操作数的地址改变,到所使第二个操作数的地址改变,到所重复的指令完成时再将微堆栈弹回到程序地址产生逻辑。重复的指令完成时再将微堆栈弹回到程序

8、地址产生逻辑。3.1.4流水线操作流水线操作 指令流水线包括执行时发生的一系列总线操作。指令流水线包括执行时发生的一系列总线操作。LF240x的的流水线有流水线有4个独立的阶段:取指令、指令译码、取操作数和执行个独立的阶段:取指令、指令译码、取操作数和执行指令。指令。4个操作阶段是独立的,在任意的指定周期内,个操作阶段是独立的,在任意的指定周期内,14个不个不同的指令都被激活,每一条被激活的指令都处于不同的完成阶段。同的指令都被激活,每一条被激活的指令都处于不同的完成阶段。4级流水线的操作级流水线的操作 流水线操作一般是不可见的,但下列情况例外:流水线操作一般是不可见的,但下列情况例外: (1

9、)紧跟在修改全局存储器分配寄存器()紧跟在修改全局存储器分配寄存器(GREG)后的单字、)后的单字、单周期指令使用先前的全局映射。单周期指令使用先前的全局映射。 (2)在流水线操作的执行阶段,)在流水线操作的执行阶段,NORM指令修改指令修改ARP,并使,并使用当前辅助寄存器,如果随后的两个指令要改变当前辅助寄存用当前辅助寄存器,如果随后的两个指令要改变当前辅助寄存器的内容或器的内容或ARP,则它们将在流水线的译码阶段进行,这将导,则它们将在流水线的译码阶段进行,这将导致致NORM指令使用错误的辅助寄存器值,并导致随后的指令使指令使用错误的辅助寄存器值,并导致随后的指令使用错误的用错误的ARP

10、值。所以在值。所以在NORM后不要安排改变当前辅助寄存后不要安排改变当前辅助寄存器和器和ARP内容的指令。内容的指令。转移、调用和返回改变指令流的顺序,转到新的地址转移、调用和返回改变指令流的顺序,转到新的地址单元去执行指令。单元去执行指令。转移仅使控制转换到新的地址单元;调用要将返回地转移仅使控制转换到新的地址单元;调用要将返回地址保存到硬件堆栈的栈顶;返回指令将堆栈中的返回地址址保存到硬件堆栈的栈顶;返回指令将堆栈中的返回地址弹到程序计数器。弹到程序计数器。3.2 转移、调用和返回转移、调用和返回3.2.1 无条件指令无条件指令n无条件转移无条件转移 执行无条件转移时,将指定的程序存储器的

11、地址加载执行无条件转移时,将指定的程序存储器的地址加载到到PC上,并从该地址开始执行程序。加载到上,并从该地址开始执行程序。加载到PC的地址可的地址可以来自转移指令的第二个操作数,也可能是累加器的低以来自转移指令的第二个操作数,也可能是累加器的低16位。位。无条件转移指令有无条件转移指令有B(转移)和(转移)和BACC(转移到累加(转移到累加器指定的地址)。器指定的地址)。n无条件调用无条件调用 执行无条件调用时,将指定的程序存储器的地址加载执行无条件调用时,将指定的程序存储器的地址加载到到PC上,并从该地址开始执行程序。加载到上,并从该地址开始执行程序。加载到PC的地址可的地址可以来自转移指

12、令的第二个操作数,也可能是累加器的低以来自转移指令的第二个操作数,也可能是累加器的低16位。加载位。加载PC 之前将返回地址保存到堆栈。子程序或函数之前将返回地址保存到堆栈。子程序或函数执行之后,返回指令将返回地址从堆栈加载到执行之后,返回指令将返回地址从堆栈加载到PC,从调,从调用指令后的那条指令开始执行。用指令后的那条指令开始执行。无条件转移指令有无条件转移指令有CALL 、CALA(调用累加器指定(调用累加器指定单元处的子程序)。单元处的子程序)。n无条件返回无条件返回 执行无条件返回指令(执行无条件返回指令(RET)时,将栈顶的值加载)时,将栈顶的值加载到到PC,并从该地址继续执行程序

13、。,并从该地址继续执行程序。3.2.2 有条件指令有条件指令操作符号条件描述EQNEQLTLEQGTGEQCNCOVNOVBIOTCNTCACC=0ACC0ACC0ACC0C=1C=0OV=1OV=0BIO低TC=1TC=0累加器的值等于0累加器的值不等于0累加器的值小于0累加器的值不小于0累加器的值大于0累加器的值不大于0进位位置1进位位清0检测到累加器溢出检测到累加器不溢出BIO引脚为低电平测试/控制位置1测试/控制位清0使用多个条件使用多个条件组1组2A类B类B类A类C类EQNEQLTLEQGTGEQOVNOVNTCTCCNCBIO 在条件指令的操作数中可以列出多个条件,必须所有条件都满

14、足才是条件满足。在条件指令的操作数中可以列出多个条件,必须所有条件都满足才是条件满足。 对于每一种组合,必须按如下规则从组对于每一种组合,必须按如下规则从组1组组2中选择条件。中选择条件。组组1:最多可选两个条件。每个条件来自不同的类。:最多可选两个条件。每个条件来自不同的类。组组2:最多可选:最多可选3个条件。每个条件来自不同的类,不能有两个条件来自同一类。个条件。每个条件来自不同的类,不能有两个条件来自同一类。条件指令必须能测试到状态位的最新值。直到流水线条件指令必须能测试到状态位的最新值。直到流水线的执行阶段,即前一条指令执行后一个周期才能认为条件的执行阶段,即前一条指令执行后一个周期才

15、能认为条件稳定。流水线控制器在条件稳定之前停止对条件指令后的稳定。流水线控制器在条件稳定之前停止对条件指令后的任何指令译码。任何指令译码。条件的稳定性条件的稳定性n条件转移(条件转移(BCND、BANZ):):该指令使程序转移到程序存储器的任何地址,只有满该指令使程序转移到程序存储器的任何地址,只有满足一个或多个由用户指定的条件时,才能实现转移。此时,足一个或多个由用户指定的条件时,才能实现转移。此时,PC装载转移指令的第装载转移指令的第2个字,并从该地址开始继续执行此个字,并从该地址开始继续执行此指令。指令。无条件转移指令有无条件转移指令有BCND(条件转移)和(条件转移)和BAND(若(若

16、当前辅助寄存器不为当前辅助寄存器不为0,则转移)。,则转移)。条件指令的执行条件指令的执行n 条件调用(条件调用(CC):): 该指令可使程序根据处理数据的不同在多个子程序间进该指令可使程序根据处理数据的不同在多个子程序间进行选择,只有当用户指定的一个或多个特定条件满足时才行选择,只有当用户指定的一个或多个特定条件满足时才能调用。此时,能调用。此时,PC装载调用指令的第装载调用指令的第2个字,并将返回地个字,并将返回地址保存在堆栈中,然后执行子程序。址保存在堆栈中,然后执行子程序。n 条件返回条件返回 返回指令(返回指令(RET):):与调用或中断配合使用。调用或中断把返回指令保存与调用或中断

17、配合使用。调用或中断把返回指令保存到堆栈里,被调用的子程序或中断服务程序以返回指令到堆栈里,被调用的子程序或中断服务程序以返回指令结束,该指令将返回地址从堆栈弹到结束,该指令将返回地址从堆栈弹到PC。 条件返回指令(条件返回指令(RETC):): 当用户指定的一个或多个条件满足时才执行。利用该当用户指定的一个或多个条件满足时才执行。利用该指令可使子程序或中断服务程序有多种返回路径。指令可使子程序或中断服务程序有多种返回路径。3.3重复指令重复指令重复指令(重复指令(RPT):将单条指令重复执行):将单条指令重复执行N+1次。次。N为指令的操作数。为指令的操作数。执行执行RPT时,时,N装入重复

18、计数器装入重复计数器RPTC,每执行一次,每执行一次,RPTC减减1,直至,直至RPTC为为0。如果。如果N是从一个数据存储单是从一个数据存储单元读取,元读取,RPTC为为16位计数器;如果位计数器;如果N为一操作常数,为一操作常数,RPTC为为8位计数器。位计数器。3.4中断中断 中断是计算机的一种特殊的运行方式。在正常情况下,中断是计算机的一种特殊的运行方式。在正常情况下,CPU按照程序预定的路线进行,当外围设备有事件产生需要按照程序预定的路线进行,当外围设备有事件产生需要CUP来处来处理,即发出中断请求信号,理,即发出中断请求信号,CPU暂停工作,保存好现场,然后转暂停工作,保存好现场,

19、然后转到该中断请求对应的服务子程序的入口处,待服务子程序运行完到该中断请求对应的服务子程序的入口处,待服务子程序运行完毕,毕,CPU自动恢复现场,从原停顿点继续往下运行。自动恢复现场,从原停顿点继续往下运行。 计算机采用中断方式,可以节省计算机采用中断方式,可以节省CPU资源,资源,CPU可以不花可以不花时间去轮寻外围设备是否需要服务。每一种计算机都有多个中时间去轮寻外围设备是否需要服务。每一种计算机都有多个中断源,断源,CPU对中断的响应需要按序进行,需要一个中断管理系对中断的响应需要按序进行,需要一个中断管理系统模块对中断源进行管理控制。统模块对中断源进行管理控制。3.4.1 中断的分类中

20、断的分类n软件中断软件中断由指令由指令INTR、NMI和和TRAP产生。产生。n硬件中断硬件中断由来自物理设备的信号产生,包括复位由来自物理设备的信号产生,包括复位 、非屏蔽中、非屏蔽中断断NMI和可屏蔽中断和可屏蔽中断INT1、 INT2、 INT3、 INT4、 INT5、 INT6。n 可屏蔽中断可屏蔽中断 可以通过软件将它们禁止或允许的中断。均为硬件中断。可以通过软件将它们禁止或允许的中断。均为硬件中断。当硬件设备或外部引脚成功地请求了可屏蔽中断时,与其对当硬件设备或外部引脚成功地请求了可屏蔽中断时,与其对应的一个或几个标志被激活,无论是否响应此中断,这些标应的一个或几个标志被激活,无

21、论是否响应此中断,这些标志均被设置为志均被设置为1。n 不可屏蔽中断不可屏蔽中断不能通过软件将其禁止或允许的中断。包括所有软件中不能通过软件将其禁止或允许的中断。包括所有软件中断和两种外部硬件中断断和两种外部硬件中断 和和 。 外设事件要引起中断,必须保证:外设事件的中断使能外设事件要引起中断,必须保证:外设事件的中断使能位被使能,位被使能,CPU内核级的内核级的6个可屏蔽中断中,能控制该外设个可屏蔽中断中,能控制该外设事件高级中断至少有一个被使能。在外设事件发生时,首先事件高级中断至少有一个被使能。在外设事件发生时,首先将其在外设中断控制器中的标志位置将其在外设中断控制器中的标志位置1,然后

22、会在中断标志,然后会在中断标志寄存器寄存器IFR中的中的INTx位由硬件置位由硬件置1,表明正在等待,表明正在等待CPU响应,响应,从而引起从而引起CPU内核的内核的INT1INT6中的一个产生中断。中的一个产生中断。中断响应的延时中断响应的延时 从发出中断请求到得到服务之间的延迟时间,与很多因从发出中断请求到得到服务之间的延迟时间,与很多因素有关:素有关:(1)软件中断最少要延时)软件中断最少要延时4个个CPU时钟周期。时钟周期。(2)外部可屏蔽中断最少要延时)外部可屏蔽中断最少要延时8个个CPU时钟周期。时钟周期。(3)若在使用)若在使用RPT重复时发生中断,为了保证指令流水线的完重复时发

23、生中断,为了保证指令流水线的完整,需等到该重复循环完才响应中断。但复位中断例外。整,需等到该重复循环完才响应中断。但复位中断例外。(4)为使)为使CPU能完成返回,在能完成返回,在RET指令后中断被禁止,直至在指令后中断被禁止,直至在返回指令上至少执行一条指令。返回指令上至少执行一条指令。(5)读写速度慢的外部存储器需要等待延时,如果中断向量存)读写速度慢的外部存储器需要等待延时,如果中断向量存放在外部存储器,等待状态会影响中断的响应时间。放在外部存储器,等待状态会影响中断的响应时间。 当当CPU接受中断请求时,并不知道是哪一个外设事件引起的接受中断请求时,并不知道是哪一个外设事件引起的中断请

24、求。为了让中断请求。为了让CPU能够区别这些引起中断的外设事件,能够区别这些引起中断的外设事件,DSP控制器给每个中断分配了一个特定的入口地址,称为中断向量。控制器给每个中断分配了一个特定的入口地址,称为中断向量。 在每个外设中断请求有效时都会产生一个唯一的外设中断向在每个外设中断请求有效时都会产生一个唯一的外设中断向量,这个外设中断向量被装载到外设中断向量寄存器(量,这个外设中断向量被装载到外设中断向量寄存器(PIVR)中。)中。CPU应答外设中断时,从应答外设中断时,从PIVR中读取相应中断的向量,并产生一中读取相应中断的向量,并产生一个转到该中断服务程序入口的向量。当某个中断发出请求,而

25、且个转到该中断服务程序入口的向量。当某个中断发出请求,而且允许中断,则允许中断,则CPU先将当前的先将当前的PC加加1压入堆栈,即保护返回地址;压入堆栈,即保护返回地址;然后,然后,CPU自动地将该请求中断的向量地址送入自动地将该请求中断的向量地址送入PC,CPU便转入便转入该请求中断的服务子程序运行;当碰到服务子程序的返回指令该请求中断的服务子程序运行;当碰到服务子程序的返回指令RET时,时,CPU自动将堆栈中的返回地址弹出到自动将堆栈中的返回地址弹出到PC中,恢复中断前中,恢复中断前的程序继续进行。的程序继续进行。3.4.2 中断向量中断向量 为了更好地管理中断复用情况,为了更好地管理中断

26、复用情况,DSP控制器为事件管理模块控制器为事件管理模块的每一个中断分配了一个偏移向量地址,并且当某个事件管理模的每一个中断分配了一个偏移向量地址,并且当某个事件管理模块发出了请求信号,会自动地将该中断的偏移向量地址写入到对块发出了请求信号,会自动地将该中断的偏移向量地址写入到对应的事件中断向量寄存器中。当进入应的事件中断向量寄存器中。当进入DSP内核中断的服务子程序内核中断的服务子程序GISR后,将事件中断向量寄存器的内容送到累加器,然后经分后,将事件中断向量寄存器的内容送到累加器,然后经分支指令便可转入到专为某个事件管理模块中断所写的中断服务子支指令便可转入到专为某个事件管理模块中断所写的

27、中断服务子程序程序SISR的入口。的入口。n在程序存储器的在程序存储器的0000h003FH单元。单元。n每个中断有两个地址单元。存放一条两个字的分支指令(如每个中断有两个地址单元。存放一条两个字的分支指令(如B指指令)。这样,可以在较大的程序存储空间中开辟出一块存放中断令)。这样,可以在较大的程序存储空间中开辟出一块存放中断服务子程序的空间,通过中断向量处的分支指令转入到真正的中服务子程序的空间,通过中断向量处的分支指令转入到真正的中断服务子程序空间的入口处。断服务子程序空间的入口处。中断优先级和中断矢量表中断优先级和中断矢量表 TMS320LF240xCPU提供了提供了6个可屏蔽中断:个可

28、屏蔽中断:INT1INT6,INT1优先级最高,优先级最高, INT1最低。利用最低。利用6个中断级,个中断级,采用中断扩展设计可以使芯片能够管理采用中断扩展设计可以使芯片能够管理46个可屏蔽中断请求。个可屏蔽中断请求。3.4.3 TMS320LF240x的可屏蔽中断的可屏蔽中断(1)中断标志寄存器()中断标志寄存器(IFR):): 位于数据存储器的位于数据存储器的0060H,用于识别和清除挂起的中断。,用于识别和清除挂起的中断。当中断源当中断源INT1INT6中某一级向中某一级向CPU发出可屏蔽中断请求发出可屏蔽中断请求 时,控制寄存器中响应的标志位被置时,控制寄存器中响应的标志位被置1。如

29、果该中断未被屏蔽,。如果该中断未被屏蔽, 则中断请求被送到则中断请求被送到CPU,表明该中断正被挂起或等待响应。,表明该中断正被挂起或等待响应。读取读取IFR可以识别挂起的中断,向可以识别挂起的中断,向IFR相应的位写相应的位写1则清除已则清除已 挂起的中断。把挂起的中断。把IFR中当前的内容写回中当前的内容写回IFR则可清除所有挂起的则可清除所有挂起的 中断中断CPU响应中断或器件复位则将响应中断或器件复位则将IFR标志清除。标志清除。3.4.3.1 CPU中断管理寄存器中断管理寄存器IFRINT1 flagINT2 flagINT3 flagINT4 flagINT5 flagINT6 f

30、lagReservedD15D6D0D1D2D3D4D5D15D6 Reserved -保留位。D5 INT6 flag -中断6标志位。作为连至INT6的所有外部中断的标志。D4 INT5 flag -中断5标志位。作为连至INT5的所有外部中断的标志。D3 INT4 flag -中断4标志位。作为连至INT4的所有外部中断的标志。D2 INT3 flag -中断3标志位。作为连至INT3的所有外部中断的标志。D1 INT2 flag -中断2标志位。作为连至INT2的所有外部中断的标志。D0 INT1 flag -中断1标志位。作为连至INT1的所有外部中断的标志。(2)中断屏蔽寄存器()

31、中断屏蔽寄存器(IMR):):位于数据存储器的位于数据存储器的0004H,包含所有中断级,包含所有中断级(INT1INT6)的屏蔽位。的屏蔽位。读读IMR可以识别以被屏蔽或被使能的中断,向可以识别以被屏蔽或被使能的中断,向IMR中某位中某位写写0则屏蔽相应的中断级;写则屏蔽相应的中断级;写1则使能该中断级。则使能该中断级。IMRINT1 maskINT2 maskINT3 maskINT4 maskINT5 maskINT6 maskReservedD15D6D0D1D2D3D4D5D15D6 Reserved -保留位。D5 INT6 mask -中断6屏蔽位。D4 INT5 mask -中

32、断5屏蔽位。D3 INT4 mask -中断4屏蔽位。D2 INT3 mask -中断3屏蔽位。D1 INT2 mask -中断2屏蔽位。D0 INT1 mask -中断1屏蔽位。3.4.3.2 外设中断寄存器外设中断寄存器外设中断寄存器包括:外设中断寄存器包括:1个外设中断矢量寄存器(个外设中断矢量寄存器(PIVR,地址地址701Eh););3个外设中断请求寄存器个外设中断请求寄存器0/1/2(PIRQR0/1/2,地地址址7010h/ 7011h/ 7012h ););3个外设中断应答寄存器个外设中断应答寄存器0/1/2(PIACK0/1/2,地址地址7014h/ 7015h/ 7016h

33、 )。)。外设中断请求寄存器外设中断请求寄存器0/1/2和外设中断应答寄存器和外设中断应答寄存器0/1/2是外是外设中断扩展模块用来向设中断扩展模块用来向CPU产生产生INT1INT6中断请求的内部寄中断请求的内部寄存器。只能对其测试(可读),不能对其编程(不可写)。存器。只能对其测试(可读),不能对其编程(不可写)。外设中断请求寄存器外设中断请求寄存器0/1/2的某位为的某位为1,表明相应的中断请,表明相应的中断请求被挂起;为求被挂起;为0,未被挂起。向某位写,未被挂起。向某位写1将发出一个中断请求到将发出一个中断请求到CPU,写入,写入0没影响。向外设中断应答寄存器的某位为没影响。向外设中

34、断应答寄存器的某位为1,将引,将引起相应的外设中断应答被插入,从而将相应的外设中断请求位起相应的外设中断应答被插入,从而将相应的外设中断请求位清清0,但不改变外设中断矢量寄存器的内容。,但不改变外设中断矢量寄存器的内容。3.4.3.3 外设中断控制寄存器外设中断控制寄存器(1)外设中断)外设中断1控制寄存器(控制寄存器(XINT1CR)XINT1 flagReservedXINT1 polarityXINT1 priorityXINT1 enableD14D3D0D1D2D15D15 XINT1 flag - XINT1标志位。指示在XINT1引脚上是否检测到一个跳变,无论外部中断1是否使能,

35、XINT1引脚中跳变时该位总被置 位。当相应的中断被应答时,该位被自动清0,通过软件向该位写1 或复位是该位被清0。0-未检测到跳变;1-检测到跳变。D14 D3 Reserved -保留位。D2 XINT1 polarity -XINT1极性。 0-在下降沿产生中断;1-在上升沿产生中断D1 XINT1 polarity - XINT1优先级。0-高优先级;1-低优先级D0 XINT1 enable - XINT1使能位。 0-屏蔽中断; 1-使能中断(2)外设中断)外设中断2控制寄存器(控制寄存器(XINT2CR)XINT2 flagReservedXINT2 polarityXINT2

36、priorityXINT2 enableD14D3D0D1D2D15D15 XINT2 flag - XINT2标志位。指示在XINT1引脚上是否检测到一个跳变,无论外部中断1是否使能,XINT2引脚中跳变时该位总被置 位。当相应的中断被应答时,该位被自动清0,通过软件向该位写1 或复位是该位被清0。0-未检测到跳变;1-检测到跳变。D14 D3 Reserved -保留位。D2 XINT2 polarity -XINT2极性。 0-在下降沿产生中断;1-在上 升沿产生中断D1 XINT2 polarity - XINT2优先级。0-高优先级;1-低优先级D0 XINT2 enable - X

37、INT2使能位。 0-屏蔽中断; 1-使能中断3.4.4 不可屏蔽中断不可屏蔽中断(1)硬件非屏蔽中断)硬件非屏蔽中断 :TMS320LF240x有两个复位源:一个外部复位引脚复位和一个有两个复位源:一个外部复位引脚复位和一个程序监视定时器(看门狗)复位。程序监视定时器(看门狗)复位。 复位引脚为一个复位引脚为一个I/O脚,如果有内部复位事件(程序监视定时器复脚,如果有内部复位事件(程序监视定时器复位)发生,则该引脚被设置为输出方式,并且为低电平,向外部电路位)发生,则该引脚被设置为输出方式,并且为低电平,向外部电路表明器件正在自己复位。表明器件正在自己复位。 外部复位引脚信号和程序监视定时器

38、复位信号相或后一起驱动外部复位引脚信号和程序监视定时器复位信号相或后一起驱动CPU的复位信号。的复位信号。 当复位信号有效后,当复位信号有效后,CPU将终止一切工作,把系统复位到缺省状态将终止一切工作,把系统复位到缺省状态上,同时,自动转到复位中断向量上,同时,自动转到复位中断向量0000h处开始程序的运行,因此在处开始程序的运行,因此在程序存储器的首地址程序存储器的首地址0000h必须安排一个分支到主程序入口的指令。必须安排一个分支到主程序入口的指令。 :TMS320LF240x无该引脚,当器件访问一个无效地址时,将产生无该引脚,当器件访问一个无效地址时,将产生非屏蔽中断请求非屏蔽中断请求

39、,程序则转移到非屏蔽中断矢量地址,程序则转移到非屏蔽中断矢量地址0024h处,从处,从中取出一条转移指令,然后转向非屏蔽中断的入口,执行相应的中断服中取出一条转移指令,然后转向非屏蔽中断的入口,执行相应的中断服务程序。务程序。 无效地址检测:系统和外设模块控制寄存器地址映射中包含不可实现单无效地址检测:系统和外设模块控制寄存器地址映射中包含不可实现单元,译码逻辑能够检测任何对于这些无效地址的访问。一旦检测到对无元,译码逻辑能够检测任何对于这些无效地址的访问。一旦检测到对无效地址的访问,就将系统控制和状态寄存器(效地址的访问,就将系统控制和状态寄存器(SCSR1)中的无效地址标)中的无效地址标志

40、位(志位(ILLADR)置)置1,从而产生一个不可屏蔽中断,从而产生一个不可屏蔽中断NMI。无论何时检测。无论何时检测到访问无效地址都会产生插入一个无效地址条件,无效地址标志位在无到访问无效地址都会产生插入一个无效地址条件,无效地址标志位在无效地址条件发生之后被置效地址条件发生之后被置1,并保持直到软件将其清除。,并保持直到软件将其清除。(2)软件非屏蔽中断)软件非屏蔽中断 INTR K 该指令允许启动任何中断,指令操作数该指令允许启动任何中断,指令操作数K表示表示CPU将转移到哪个中断将转移到哪个中断矢量单元,当响应矢量单元,当响应INTR中断时,中断时,ST0中的中的INTM位置位置1,禁

41、止可屏蔽中断。,禁止可屏蔽中断。 NMI该指令允许转移到中断矢量地址该指令允许转移到中断矢量地址24h,与不可屏蔽中断,与不可屏蔽中断 使用同一单使用同一单元。即元。即 引脚为低或执行引脚为低或执行NMI均可启动均可启动 中断。当执行中断。当执行NMI指令时,指令时,INTM置置1以禁止可屏蔽中断。以禁止可屏蔽中断。 TRAP该指令使该指令使CPU转移到中断矢量地址转移到中断矢量地址22h,TRAP不禁止任何不可屏蔽中不禁止任何不可屏蔽中断。当断。当CPU转移到中断服务程序时,该中断服务程序可以被可屏蔽硬件中转移到中断服务程序时,该中断服务程序可以被可屏蔽硬件中断所中断。断所中断。3.4.5

42、中断服务程序(中断服务程序(ISR) CPU得到中断请求并响应之后,根据中断矢量转移到相得到中断请求并响应之后,根据中断矢量转移到相应的中断服务程序应的中断服务程序ISR中,中,ISR在为中断所要求的任务前需要在为中断所要求的任务前需要保存和恢复寄存器的值,并且还要管理中断嵌套。保存和恢复寄存器的值,并且还要管理中断嵌套。 2 2 中断服务程序嵌套的管理中断服务程序嵌套的管理 考虑中断嵌套时,需注意:考虑中断嵌套时,需注意:(1)若希望一个可屏蔽中断能够中断)若希望一个可屏蔽中断能够中断ISR,那么,该,那么,该ISR必须不屏蔽该中断,必须不屏蔽该中断, 可在中断服务程序中,对可在中断服务程序

43、中,对IMR中的相应位设置和执行允许中断指令(中的相应位设置和执行允许中断指令(CLRC INTM)来解除该中断屏蔽。)来解除该中断屏蔽。(2)8级硬件堆栈。如果软件需要的堆栈超过级硬件堆栈。如果软件需要的堆栈超过8级,可以使用级,可以使用POPD和和PSHD指指令将堆栈有效地扩展到数据存储空间。令将堆栈有效地扩展到数据存储空间。(3)防止意外嵌套功能。在返回指令)防止意外嵌套功能。在返回指令RET前至少两条指令的位置上插入前至少两条指令的位置上插入CLRC INTM指令。指令。1 1保存和恢复寄存器值保存和恢复寄存器值 CPU进入中断服务程序(进入中断服务程序(ISR)之前,硬件只将增量后的

44、程序计数器)之前,硬件只将增量后的程序计数器的值自动保存起来,所以在中断服务程序中要用软件对一些重要寄存器的的值自动保存起来,所以在中断服务程序中要用软件对一些重要寄存器的值进行保存和恢复。值进行保存和恢复。3.5 复位操作复位操作 复位是优先级最高的中断。属于不可屏蔽中断。复位复位是优先级最高的中断。属于不可屏蔽中断。复位可以在任何时候将器件设置为一个已知状态。复位通常在可以在任何时候将器件设置为一个已知状态。复位通常在电源打开之后被启动。由于复位可终止存储器操作并初始电源打开之后被启动。由于复位可终止存储器操作并初始化状态位,因此每次复位后必须重新初始化系统。化状态位,因此每次复位后必须重

45、新初始化系统。进行复位时,自动对以下几部分进行如下工作:进行复位时,自动对以下几部分进行如下工作:(1)控制部分)控制部分 在控制部分将在控制部分将PC,IFR、IMR、ICR、RPTC全部清全部清0。 将将ST0、ST1中的各状态位加载为复位值:中的各状态位加载为复位值:OV=1,INTM=1,CNF=0,SXM=1,C=1,XF=1,PM=00。(2)存储器和)存储器和I/O空间空间 ST1中中CNF=0,DRAM中中B0被影射到数据存储空间。被影射到数据存储空间。 全局存储器分配寄存器全局存储器分配寄存器GREG清为清为0,全部存储器为局部存储器。,全部存储器为局部存储器。(3)片内外设

46、)片内外设3.6低功耗模式低功耗模式(1)进入低功耗模式)进入低功耗模式 TMS320LF240x有三种低功耗模式:有三种低功耗模式:IDLE1、IDLE2、HALT。有。有SCSR1指定。指定。 所有所有240x器件有两个时钟:器件有两个时钟:CPU时钟(时钟( 为大部分为大部分CPU逻辑提供时钟)逻辑提供时钟)和系统时钟(从和系统时钟(从CPU的的CLKOUT引出,提供外部时钟与引出,提供外部时钟与CPU中断逻辑时中断逻辑时钟。)钟。) 当当CPU进入进入IDLE1模式时,模式时,CPU时钟停止工作而系统时钟继续工作。时钟停止工作而系统时钟继续工作。 执行执行IDLE可进入低功耗模式。当执

47、行可进入低功耗模式。当执行IDLE指令时,程序计数器加指令时,程序计数器加1,CPU停止所有操作,器件处于低功耗模式。此时,内部寄存器内容停止所有操作,器件处于低功耗模式。此时,内部寄存器内容全部保持,片内全部保持,片内RAM的内容保持不变。的内容保持不变。 当当CPU进入进入IDLE2模式时,模式时,CPU时钟系统时钟都停止工作。时钟系统时钟都停止工作。 当当CPU进入进入HALT模式时,模式时,CPU时钟系统时钟都停止工作。且振荡时钟系统时钟都停止工作。且振荡器、器、WDCLK、PLL的时钟输入均被关断。的时钟输入均被关断。(2)结束低功耗模式)结束低功耗模式 如果低功耗模式已经启动,则任

48、何硬件中断都可以使处理器脱离如果低功耗模式已经启动,则任何硬件中断都可以使处理器脱离IDLE状态。状态。 若使用若使用NMI和复位引脚,和复位引脚,CPU将立即执行相应的中断服务程序,如将立即执行相应的中断服务程序,如果是复位,则寄存器将被设置为复位值。果是复位,则寄存器将被设置为复位值。 若使用可屏蔽中断源唤醒处理器,该中断源必须没有被中断屏蔽寄若使用可屏蔽中断源唤醒处理器,该中断源必须没有被中断屏蔽寄存器所屏蔽。此时存器所屏蔽。此时INTM的值将决定结束低功耗模式后的值将决定结束低功耗模式后CPU的动作。的动作。INTM=0,中断被允许,中断被允许,CPU执行相应的中断服务程序,执行相应的中断服务程序, INTM=1,中断被禁止,中断被禁止,CPU将继续执行将继续执行IDLE后的程序。后的程序。

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

最新文档


当前位置:首页 > 办公文档 > 工作计划

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