第二章 补充专题一TMS320C55x的CPU寄存器 n一、累加器AC0AC3 n二、变换寄存器n三、T寄存器n四、用于寻址数据地址空间和I/O空间的寄存器n五、程序流寄存器n六、中断管理寄存器n七、循环控制寄存器n八、状态寄存器 TMS320C55x的CPU寄存器 n一、累加器AC0AC3程序使用实例:n二、变换寄存器 用于Viterbi算法(比较-选择-极值算法)TMS320C55x的CPU寄存器 n三、T寄存器:TMS320C55x的CPU寄存器 n三、T寄存器:TMS320C55x的CPU寄存器 n四、用于寻址数据地址空间和I/O空间的寄存器1. 辅助寄存器(AR0AR7) 2. 系数数据指针寄存器(XCDP/CDP) 3. 循环缓冲器起始地址寄存器 4.循环缓冲器大小寄存器 5. 数据页寄存器(XDP/DP) 6. 外设数据页寄存器(PDP) 7. 数据堆栈指针寄存器(XSP/SP) 8. 系统堆栈指针寄存器(XSSP/SP)TMS320C55x的CPU寄存器 四、用于寻址数据地址空间和I/O空间的寄存器1. 辅助寄存器:2. 系数数据指针 寄存器:3. 循环缓冲器起始 地址寄存器:4. 循环缓冲器大小 寄存器:5. 数据页寄存器:6. 外设数据页寄存器:7. 数据堆栈指针寄存器: 8. 系统堆栈指针寄存器: 四、用于寻址数据地址空间和I/O空间的寄存器1. 辅助寄存器: 1. 辅助寄存器: 辅助寄存器的功用: (1)访问数据存储空间时,每个扩展辅助寄存器的高7位 (ARXH),用于指定所寻址数据空间的主要数据页。
(2)每个扩展辅助寄存器的低16位(ARX),作用如下:四、用于寻址数据地址空间和I/O空间的寄存器扩展辅助寄存器/辅助寄存器的寻址方式: 四、用于寻址数据地址空间和I/O空间的寄存器1. 辅助寄存器:1. 辅助寄存器: 辅助寄存器的功用: XAR0XAR7或者AR0AR7用于AR间接寻址模式,以及双AR间接寻址模式 AR间接寻址模式,以及双AR间接寻址模式,见44页表3-1、3-2 四、用于寻址数据地址空间和I/O空间的寄存器例子: MOV #k, *ARx+ ; 在W+节拍对存储器进行写操作;指令举例:nAMOV #k23, XARx ; 在AD节拍用一个23位的无符号 ;立即数对XARx初始化 nMOV #k4, ARx ;ARx 不是通过存储器映射方式寻 ;址的,在X节拍用一个4位长的无 ;符号立即数初始化ARx例子: AMOV #7FFFFFH , XAR0; MOV #2, AR0;AADD #k, ARx ; 对于这个特殊指令,在AD节拍用一个 ; 立即数对ARx初始化MOV *ARx+, AC0 ; 在AD节拍对ARx 进行读和更新操作 ; ,在X节拍载入AC0;ADD #k, ARx ; 在X节拍的开始时刻读ARx,在X节拍的 ; 结束时刻修改ARxADD ACy, ACx ; 在X节拍读/写ACx和ACy;MOV mmap(ARx) , ACx ; ARx是通过存储器映射方式寻址 ;的,在R节拍读取ARx,在X节拍 ;修改ACx ;指令举例:nMOV #k, mmap(ARx); ARx是通过存储器映射方式寻 ; 址的,在W节拍用一个立即数 ; 初始化Arxs。
nMOV ARx, ACx ;ARx 不是通过存储器映射方式寻 ;址的,在X节拍读取ARx,在X节 ; 拍修改ACx ;将ARx的内容复制到ACx中 指令举例:n2. 系数数据指针寄存器( XCDP/CDP)四、用于寻址数据地址空间和I/O空间的寄存器 CPU的存储器映射里有一个系数数据指针CDP寄存器,以及一个相关的扩展寄存器XCDP,CPU将二者连接起来,形成了一个扩展系数数据指针寄存器XCDP图 2-1 扩展系数数据指针寄存器 2. 系数数据指针寄存器( XCDP/CDP)四、用于寻址数据地址空间和I/O空间的寄存器 其高段(CDPH)用于指定数据空间的7-bit主数据空间页,低段部分(CDP)用于: (1)相对于7-bit主数据空间页的16位偏移量(形成23位地址); (2) bit寻址(用于单独访问bit或者bit对的指令中); (3) 通用寄存器或者计数器四、用于寻址数据地址空间和I/O空间的寄存器n2. 系数数据指针寄存器( XCDP/CDP)系数数据指针寄存器的寻址方式:寄存器名称可访问性XCDP 扩展的系数指针只能用专用指令访问,不是映射到存储器的寄存器CDP系数指针只能用专用指令访问,是映射到存储器的寄存器CDPHXCDP的高段部分没有专用的指令访问,是映射到存储器的寄存器,可以通过XCDP 访问n2. 系数数据指针寄存器( XCDP/CDP)四、用于寻址数据地址空间和I/O空间的寄存器小结:系数数据指针寄存器( XCDP/CDP)的功用: XCDP/CDP用于CDP间接寻址模式和系数间接寻址模式。
任何访问数据空间里单个数值的指令都可以使用CDP,但是由于CDP可以为D单元的双MAC提供第三个独立的操作数,因此用于MAC指令时,优点更加突出 CDP间接寻址模式和系数间接寻址模式见教材46页,表3-4、3-5MOV Smem, Cmem;例子指令: The content addressed by AR3 is copied in the location addressed by the coefficient data pointer register (CDP).MOV *AR3, *CDP;n5. 数据页寄存器( XDP/DP)四、用于寻址数据地址空间和I/O空间的寄存器 CPU的存储器映射里,有一个数据页寄存器DP,以及一个相关联的扩展寄存器DPH,CPU可以将两者连接成为一个扩展的DP,即XDP 高段DPH用来指定访问数据空间的7-bit主数据页地址,低段DP用来指定该数据页内的一个16-bit的偏移量,和主数据页地址连接,形成一个23位的数据空间地址图 2-2 扩展数据页寄存器 四、用于寻址数据地址空间和I/O空间的寄存器n5. 数据页寄存器( XDP/DP)数据页寄存器( XDP/DP)的寻址方式: 寄存器名称可访问性XDP 扩展数据页寄存器只能用专用指令访问,不是映射到存储器的寄存器DP数据页寄存器只能用专用指令访问,是映射到存储器的寄存器DPHXDP的高段部分有专用的指令访问,是映射到存储器的寄存器n5. 数据页寄存器( XDP/DP)四、用于寻址数据地址空间和I/O空间的寄存器数据页寄存器的功用: (1)在DP直接寻址模式下,XDP指定一个23位地址。
(2) 在k16绝对寻址模式下,DPH和一个16-bit的立即数构成一个23位的地址 直接寻址和绝对寻址模式见教材40页n6. 外设数据页寄存器( PDP)四、用于寻址数据地址空间和I/O空间的寄存器(2)外设数据页寄存器的功用: 在PDP直接寻址模式下,9bit的外设数据页寄存器PDP,在64KB的I/O空间里,选择一个128字的数据页 PDP直接寻址见教材43页图 2-3 外设数据页寄存器(9bit)(1)PDP在一个16bit的寄存器里只占有9bit,CPU忽略其余的7bitn7. 数据堆栈指针寄存器(XSP/SP)四、用于寻址数据地址空间和I/O空间的寄存器 CPU的存储器映射里包含一个数据堆栈指针寄存器SP,一个系统堆栈指针寄存器SSP和一个关联的扩展寄存器SPH 当访问数据堆栈时,CPU将SPH和SP连接,构成扩展的数据堆栈指针,即XSP XSP含有最后推入该数据堆栈的值的地址SPH里存放的是数据存储器的7-bit主数据页,SP指向该页里的某特定字 图 2-4 堆栈指针寄存器 n7. 数据堆栈指针寄存器(XSP/SP)四、用于寻址数据地址空间和I/O空间的寄存器思考题:什么是堆栈(stack)? A block of memory reserved for storing return addresses for subroutines and interrupt service routines. XXXX032006HXXXX032005HXXXX032004HXXXX032003HXXXX032002H 数 据 地 址2002H03H栈顶栈底SPHSPXSP四、用于寻址数据地址空间和I/O空间的寄存器n7. 数据堆栈指针寄存器(XSP/SP)思考题:什么是堆栈指针SP(stack pointer)? 答: 存放堆栈栈顶地址的一个16bit的寄存器。
思考题:堆栈的生成方向如何? 答:堆栈的生成方向是: The stacks grow from high addresses to low addresses. 即:CPU在每推入一个值到数据堆栈以前,减小SP的值;从数据堆栈弹出一个值以后,增加SP的值在堆栈操作中,SPH的值不变n7. 数据堆栈指针寄存器(XSP/SP)四、用于寻址数据地址空间和I/O空间的寄存器思考题:如何初始化堆栈指针(stack pointer)? It is necessary to initialize the stack pointers SP (primary stack) and SSP (secondary system stack). For example: stack_size .set0 x400 stack: .usect stack_section, stack_size sysstack: .usect stack_section, stack_size AMOV #(stack+stack_size), XSP MOV #(sysstack+stack_size), SSP The stacks grow from high addresses to low addresses, so the stack pointers must be initialized to the highest address. The primary stack and the secondary system stack must be within the same 64K word page of memory.n8. 系统堆栈指针寄存器(XSSP/SSP)四、用于寻址数据地址空间和I/O空间的寄存器 系统堆栈指针寄存器SSP的作用在于,SSP可以和SP关联构成 32-bit 的堆栈指针或者双16-bit堆栈指针。
图 2-2 扩展系统堆栈指针寄存器 与数据堆栈类似,CPU内部有一个系统堆栈指针寄存器SSP当访问系统堆栈时,CPU将SPH和SSP连接构成扩展系统堆栈指针XSSPn八、状态寄存器TMS320C55x的CPU寄存器 1. 状态寄存器(ST0-55) 2. 状态寄存器(ST1-55) 3. 状态寄存器(ST2-55) 4. 状态寄存器(ST3-55)n1. 状态寄存器 (ST0-55) ST0-55、 ST1-55、 ST3-55 都可以从两个地址访问TMS320C55X的所有bit都可以由第一个地址访问而在另一个地址,支持TMS320C54X的代码写入ST0、ST1、和PMST (ST3-55在MS320C54X里的对应寄存器)n八、状态寄存器TMS320C55XST0-55/000002hST1-55/000003hST3-55/000004hTMS320C54XST0/000006hST1/000007hPMST/00001DhDSP型号寄存器n状态寄存器 (ST0-55ST3-55) 的状态位含义见本书的附录Cn附录C :TMS320C55X的状态寄存器n八、状态寄存器第二章 补充专题二TMS320C55x的中断与复位操作 n一、中断概述n二、中断向量及优先级n三、中断标志寄存器n四、中断使能寄存器n五、可屏蔽中断响应流程n六、中断向量表的编写n七、硬件复位n一、中断概述 DSP处理中断的4个。