寄存器中断逻辑和定时器.ppt
《寄存器中断逻辑和定时器.ppt》由会员分享,可在线阅读,更多相关《寄存器中断逻辑和定时器.ppt(104页珍藏版)》请在三一办公上搜索。
1、ADSP21160寄存器,ADSP21160寄存器分类:1)运算单元寄存器2)系统控制和状态寄存器 3)程序控制寄存器4)数据地址产生寄存器(DAG1,DAG2)5)I/O处理器寄存器,运算单元寄存器,运算单元寄存器主要为运算单元的ALU、乘法器、移位器保存输入、输出数据,主要包括:(1)通用数据寄存器Rx,Sx,Fx(x=015);(2)乘法结果寄存器MRFx,MRBx(x=02);其中MRFx称为前台寄存器;MRBx称为后台寄存器;主要用于存放80位定点乘法结果;注:通常也把总线交换寄存器PX,算作运算单元寄存器;,系统控制和状态寄存器,主要功能是配置处理器核的操作模式,同时标识处理器核的
2、工作状态,作为条件程序执行的判别条件。对系统控制类寄存器的写入操作有1个周期的延迟,在写入后的第二个周期才有效。,系统控制和状态寄存器续,MODE1寄存器的位定义表,MODE1寄存器的位定义表续,MODE2寄存器位定义表,IRQ0触发方式选择,1下降沿触发;0低电平触发,IRQ1触发方式选择,1下降沿触发;0低电平触发,IRQ2触发方式选择,1下降沿触发;0低电平触发,MODE2寄存器位定义表续,ASTATx运算状态寄存器表,ASTATx运算状态寄存器表续,3)程序控制寄存器(如下页图),ADSP程序控制寄存器引导指令的执行,主要实现以下操作:1.指令流水2.程序和循环堆栈3.定时器操作4.中
3、断锁存与屏蔽,程序控制寄存器表,4)数据地址产生器(DAG1,DAG2),数据地址产生寄存器主要为访问数据和指令产生地址,并自动修改地址,实现连续的地址空间访问,同时也能实现环形缓冲寻址等操作,但它们不参与数值运算。,(DAG1,DAG2)寄存器说明表,环形缓冲区操作,MODE1寄存器的位定义表续,M为正时环形缓冲区计算方法,环形缓冲区操作注意事项1,地址修改只能采用后修改方式,即可用M寄存器(与I寄存器在相同DAG中,但不必同号数,如I0和M3),也可采用立即数;但不管修改值是来自M寄存器还是立即数,其修改值大小不能超出循环缓冲区的长度(L寄存器值)。3.循环缓冲区的长度(L寄存器值)必须是
4、正值且不能超过2311,如循环缓冲区长度为零,则循环缓冲区操作被DISABLE。,环形缓冲区操作注意事项2,4.B寄存器被装入某个值时,同时I寄存器被装入相同的值。但I寄存器被装入某个值时,B寄存器的值不变。5.M寄存器既可以是正值,也可以是负值。注:在上个例子中意味着 B00 x55000,M10 x4,M寄存器可以是负值,初始时I寄存器中的值等于B寄存器的值;在第一次环形缓冲区访问时,I寄存器的值更新为B+L;然后开始递减访问缓冲区。,5.I/O处理器寄存器,I/O处理器寄存器组列表,I/O处理器寄存器组列表续,I/O处理器寄存器分为以下几组:系统控制寄存器组;DMA缓冲寄存器组;链路和串
5、行口寄存器组;,I/O处理器寄存器控制如下操作,External port DMA;Link port DMA;Serial port DMA;,I/O处理器寄存器访问方法,除DMA操作外,ADSP结构不支持在I/O寄存器与内部存储器地址单元间传递数据,要读写I/O处理器,必须要用处理器核寄存器作为中介。例如要向WAIT寄存器赋值情况如下:USTAT10 x08421;DM(WAIT)USTAT1;下面我们就一些重要的IO寄存器进行详细的讲解,SYSCON-系统控制寄存器位定义表,系统控制寄存器位定义表续1,系统控制寄存器位定义表续2,系统控制寄存器位定义表续3,3123位保留未用,SYSCO
6、N寄存器的位定义,1.SRST(位0):软件复位,通过软件将该位置1,DSP响应不可屏蔽中断RSTI,并将该位清0。2.BSO(位1):引导方式选择重载,1DSP使用BMS有效,从片外存储器空间加载程序。,3IIVT(位3):内部中断向量表,对于ADSP21160来说1不管加载任何模式配置,强制将中断向量表放到0 x40000地址(基地址);0根据加载模式选择放置。4.IMDW0(位9):片内存储器块0数据宽度设置,140位,032位。,SYSCON寄存器的位定义续,IMDW1(位10):片内存储器块1数据宽度设置,140位,032位。MSIZE(位1512):外部存储器块大小设置 MSIZE
7、log2(块大小)13。,SYSCON寄存器的位定义续,ADSP21160中断逻辑与定时器,1.中断逻辑 ADSP21160内部提供了丰富的中断资源。a.在外部中断方面:复位中断;仿真器中断;三个外部输入中断。,b.在内部中断方面有:非法输入中断;运算错误中断;链路服务请求中断;定时器中断;堆栈溢出中断;多处理器中断;环形缓冲区溢出中断;DMA控制中断;用户自定义软件中断等。,ADSP SHARC系列处理器的三个外部中断输入方式有两种:,电平触发方式和沿触发方式。触发方式的选择通过设置MODE2寄存器来完成,其定义方式如下表:,使用内外部中断时应注意的几点:,1.对上述内、外部中断,除了仿真器
8、中断和复位中断不可以屏蔽外,其余中断都是可以屏蔽的。2.除了不可屏蔽中断和引导加载中断EP0I或者LP4I外,所有中断在系统复位时都默认被屏蔽。3.当我们要使用某种中断时,必须具备以下条件:4.通常,当一个中断正在执行服务期间,ADSP系列处理器在每个周期都会对该中断锁存寄存器的相应中断标志位进行清零,以禁止在执行该中断服务的过程中再次允许该中断锁存。,下面介绍IRPTL、IMASK和IMASKP,使用某种中断时,必须具备的条件:,1)将系统寄存器MODE1中全局中断使能位 IRPTEN置1;2)将IMASK寄存器中相应的中断屏蔽位置1;3)中断请求到达后,中断锁存寄存器IRPTL的相应位置1
9、,并且中断所存寄存器中没有优先级更高的中断标志位被置1;,满足上述三个条件的中断发生时DSP将执行以下操作,(1)输出相应的中断向量地址;(2)将当前的程序计数器PC值压入PC堆栈;(3)如果中断源是外部中断、内部定时器中断或者多 处理器向量中断,程序控制器还要将ASTAT和 MODE1寄存器中的当前值压入状态堆栈中。(4)设置中断锁存寄存器IRPTL的相应标志位;(5)改变中断屏蔽指针寄存器IMASKP的相应位,反 映当前的中断嵌套状态。(6)DSP运行中断向量地址指示的中断服务程序,完成中断处理任务,最后执行RTI指令。,Instr1;/中断程序入口JUMP(PC,3)(DB,CI);/清
10、除中断状态,/跳转到PC3地址单/元(instr5)顺序执行Inst r3;/在延迟分支里执行Instr4;/在延迟分支里执行Instr5;RTS(LR);,采用RTS(LR)指令返回到程序举例,RTI指令将完成的操作,(1)返回到PC堆栈顶部的地址;(2)弹出PC堆栈栈顶中的值;(3)如果ASTAT和MODE1寄存器压栈了,则弹 出ASTAT寄存器和MODE1寄存器中的值;(4)清除中断锁存寄存器中的相应位,并将中断屏蔽指针寄存器的相应位清零;,返回1,IRPTL、IMASK和IMASKP,IRPTL中断锁存寄存器指示中断锁存状态,在上电复位后,其初始值为0 x0000 0000。IMASK
11、中断屏蔽寄存器除仿真器中断和复位中断不可以屏蔽外,其余中断都是可以屏蔽的,在上电复位后,其初始值为0 x0000 0003,相应位定义同IRPTL。IMASKP中断屏蔽指针寄存器反映当前中断嵌套情况,在上电复位后,其初始值为0 x0000 0000,相应位定义同IRPTL。IRPTL、IMASK和IMASKP寄存器的未位义如下图:,IRPTL、IMASK和IMASKP,IRPTL位定义表续,IRPTL位定义表续,IRPTL位定义表续,IRPTL位定义表续,2.中断嵌套,ADSP处理器支持多级中断嵌套;中断嵌套由MODE1,IRPTL,IMASKP寄存器的相关位控制;设置MODE1寄存器的NES
12、TM嵌套模式位为1,就可以使能中断嵌套;反之NESTM位清零,禁止中断嵌套。,2.中断嵌套(续),注意NESTM1时,允许在中断服务过程中处理高优先级的中断,但对同级或者低优先级的中断请求不予处理。,3.多处理器向量中断,在多处理器系统中,ADSPSHARC系列处理器支持多处理器向量中断,通过向量中断寄存器(VIRPT)的设置,允许外部主机或者其它主机向VIRPT寄存器中写入一个新的向量地址。注:多处理器向量中断不作为本课程讲解的重点,大家了解就可以了。,4.定时器,在ADSP21160内部只有一个可编程定时器,用来实现以下功能:1.产生定时事件2.实现计数事件3.产生标准脉冲4.中断处理器5
13、.测量输入脉冲,定时器的使用和设置方法,ADSP21160通过对内部寄存器:TCOUNT(计数寄存器)TPERIOD(周期寄存器)两个寄存器进行编程,从而在TIMEXP引脚 产生定时脉冲输出;同时产生两个定时中断:TMZHI(高优)和TMZLI(低优)。,定时器的使用和设置方法(续),定时器的启动和禁止:是通过设置MODE2的TIMEN位来完成;如果该位被置1,启动定时器;如果该位被清零,禁止定时器。,注意:在启动定时器之前,应该先将TCOUNT和TPERIOD寄存器设置好。例如:,TPERIODN1;/间隔周期数TCOUNTPERIOD;/初始化TCOUNTBIT SET IMASK 0 x
14、10;/允许定时中断BIT SET MODE1 0 x1000;/全局中断使能BIT SET MODE2 0 x20;/定时器使能 INTW:IDEL;/程序在本条语句和下条语句JUMP INTW;/之间循环等待中断产生,ADSP21160中断向量表,ADSP21160中断向量表续,ADSP21160中断向量表续,中断向量编程示例,.section/pm seg_rth;_lib_ EMUI:NOP;NOP;NOP;NOP;/对于ADSP2106该位保留_lib_RSTI:NOP;jump start_ID2;NOP;NOP;_lib_ IICD:NOP;NOP;NOP;NOP;/对于ADSP
15、2106该位保留_lib_SOVFI:RTI;RTI;RTI;RTI;_lib_TMZHI:NOP;JUMP timer_int;NOP;NOP;_lib_VIRPTI:RTI;RTI;RTI;RTI;_lib_IRQ2I:RTI;RTI;RTI;RTI;_lib_IRQ1I:RTI;RTI;RTI;RTI;_lib_IRQ0I:RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;/该位保留_lib_SPR0I:RTI;RTI;RTI;RTI;_lib_SPR1I:RTI;RTI;RTI;RTI;,中断向量编程示例续,_lib_SPT0I:NOP;JUMP STx0_int;NOP
16、;NOP;_lib_SPT1I:NOP;JUMP STx1_int;NOP;NOP;_lib_LP2I:RTI;RTI;RTI;RTI;_lib_LP3I:RTI;RTI;RTI;RTI;_lib_EP0I:RTI;RTI;RTI;RTI;_lib_EP1I:RTI;RTI;RTI;RTI;_lib_EP2I:RTI;RTI;RTI;RTI;_lib_EP3I:RTI;RTI;RTI;RTI;_lib_LSRQ:RTI;RTI;RTI;RTI;_lib_CB7I:RTI;RTI;RTI;RTI;_lib_CB15I:RTI;RTI;RTI;RTI;_lib_TMZLI:RTI;RTI;RTI;
17、RTI;.ENDSEG;,中断向量表在存储区中的存放位置,中断向量表可以放在DSP内部存储区,也可以放在DSP外部存储区,随DSP芯片型号的不同而不同;ADSP21160M内部存储区中断向量表的基地址为0 x00040000,而外部存储区基地址为0 x00800000;,DMA(Direct Memory Accessing),利用DMA控制器,可以实现以下几种类型的数据传输,ADSP21160内部结构图,ADSP21160的I/O处理器结构图,IOP内部结构框图,ADSP21160的DMA通道与数据缓冲区,DMA传输的优先级,由于ADSP SHARC系列处理器提供了多个DMA通道,在某一个时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 寄存器 中断 逻辑 定时器
链接地址:https://www.31ppt.com/p-6158164.html