




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、复习提纲 考试时间:18周周二(12.29日)9:00-12:00 考试地点:弘B201,弘B202 考试内容:DSP技术,DSP技术实验A2.1 C55x 的CPU体系结构 TMS320C55x CPU结构图结构图 地址总线与数据总线lC55x的CPU总线u1组32位程序总线:PBu5组16位数据总线: BB、CB、DB、EB、FBu6组24位地址总线:PAB、BAB、CAB、DAB、EAB、FABl特点: 这种总线并行机构使CPU在一个机器周期内,能够读1次32位程序代码、读3次16位数据、写2次16位地址表2-4 地址总线和数据总线的功能指令缓冲单元(I单元)程序读数据总线PB(4字节代
2、码)M单元指令缓冲队列(64字节)指令解码器P 单元A 单元D 单元I单元图图2-4 I单元结构框图单元结构框图每个机器周期,PB从程序空间传送32位的程序代码至I单元的指令缓冲队列;最大可以存放64个字节的待译码指令,可以执行块循环指令,具有对于分支、调用和返回指令的随机处理能力当CPU准备译码时,6个字节的代码从队列发送到I单元的指令译码器;能够识别指令边界, 译码8、16、24、32、40和48位的指令,决定2条指令是否并行执行,将译码结果和立即数送至P单元、A单元、D单元程序流单元(P单元)图2-5 P单元结构框图数据读数据总线CB,DB (每组16位数据)M单元程序地址产生器和程序控
3、制逻辑P单元寄存器I单元A单元D单元数据写数据总线EB,FB (每组16位数据)程序读地址总线PAB (24位地址)P单元程序地址产生逻辑:产生24位的程序空间取指的地址;可产生顺序地址;也可以I单元的立即数或D单元的寄存器值作为地址程序控制逻辑: 接收来自I单元的立即数,并测试来自A单元或D单元的结果从而执行如下动作: 测试条件执行指令的条件是否成立,把测试结果送程序地址发生器; 当中断被请求或使能时,初始化中断服务程序; 控制单一指令重复或块指令重复;管理并行执行的指令P单元的作用:产生程序空间地址,并加载地址到PAB;控制指令流顺序地址数据流单元(A单元)图2-6 A单元结构框图数据读数
4、据总线 CB,DB(每组16位数据)M单元数据地址产生器单元(DAGEN)A单元寄存器A单元ALU D单元P单元数据写数据总线 EB,FB(每组16位数据)I单元数据写地址总线 EAB,FAB(每组24位地址)数据读地址总线 BAB,CAB,DAB(每组24位地址)A单元 DAGEN产生所有读写数据空间的地址。 可接收来自I单元的立即数或来自A单元的寄存器值; 根据P单元指示,对间接寻址方式时选择使用线性寻址还是循环寻址。 ALU可接收来自I单元的立即数或与存储器、I/O空间、A单元寄存器、D单元寄存器和P单元寄存器进行双向通信。可完成如下动作: 加法、减法、比较、布尔逻辑、符号移位、逻辑移位
5、和绝对值计算; 测试、设置、清空、求补A单元寄存器位或存储器位域; 改变或转移寄存器值,循环移位寄存器值,从移位器向一个A单元寄存器送特定值。数据计算单元(D单元)图2-7 D单元结构框图数据读数据总线BB,CB,DB(每组16位数据)数据写数据总线 EB,FB(每组16位数据)M单元I单元D单元寄存器D单元ALU 移位器两个MACA单元P单元D单元 接收来自I单元的立即数, 与存储器、I/O空间、D单元寄存器、P单元寄存器、A单元寄存器进行双向通信; 把移位结果送至D单元的ALU或A单元的ALU; 实现40位累加器值最大左移31位或最大右移32位; 实现16位寄存器、存储器或I/O空间数据最
6、大左移31位或最大右移32位; 实现16位立即数最大左移15位; 提取或扩张位域,执行位计数; 对寄存器值进行循环移位; 在累加器的值存入数据空间之前,对它们进行取整/饱和处理。 可从I单元接收立即数,或与存储器、I/O空间、D单元寄存器、P单元寄存器、A单元寄存器进行双向通信,还可接收移位器的结果; 加法、减法、比较、取整、饱和、布尔逻辑以及绝对值运算; 在执行一条双16位算术指令时,同时进行两个算术操作; 测试、设置、清除以及求D单元寄存器的补码; 对寄存器的值进行移动。 可支持乘法和加/减法。在单个机器周期内,每个MAC可以进行一次1717位小数或整数乘法运算和一次带有可选的32或40位
7、饱和处理的40位加/减法运算。MAC的结果送累加器; MAC接收来自I单元的立即数,或来自存储器、I/O空间、A单元寄存器的数据,和D单元寄存器、P单元寄存器进行双向通信; MAC的操作会影响P单元状态寄存器的某些位。TMS320C55x的CPU寄存器 一、累加器AC0AC3 二、变换寄存器 三、T寄存器 四、用于寻址数据地址空间和I/O空间的寄存器 五、程序流寄存器 六、中断管理寄存器 七、循环控制寄存器 八、状态寄存器 表2-8 寄存器总表(1)缩 写名 称大小AC0AC3累加器0340位AR0AR7辅助寄存器0716位BK03,BK47,BKC循环缓冲区大小寄存器16位BRC0,BRC1
8、块循环计数器0和116位BRS1BRC1保存寄存器16位BSA01,BSA23,BSA45,BSA67,BSAC循环缓冲区起始地址寄存器16位CDP系数数据指针(XCDP的低位部分)16位CDPHXCDP的高位部分7位CFCT控制流关系寄存器8位CSR计算单循环寄存器16位DBIER0,DBIER1调试中断使能寄存器0和116位DP数据页寄存器(XDP的低位部分)16位DPHXDP的高位部分7位IER0,IER1中断使能寄存器0和116位IFR0,IFR1中断标志寄存器0和116位IVPD,IVPH中断向量指针16位表2-8 寄存器总表(2)PC程序计数器24位PDP外设数据页寄存器9位REA
9、0,REA1块循环结束地址寄存器0和124位RETA返回地址寄存器24位RPTC单循环计数器16位RSA0,RSA1块循环起始地址寄存器0和124位SP数据堆栈指针16位SPHXSP和XSSP的高位7位SSP系统堆栈指针16位ST0_55ST3_55状态寄存器0316位T0T3暂时寄存器16位TRN0TRN1变换寄存器0和116位XAR0XAR7扩展辅助寄存器0723位XCDP扩展系数数据指针23位XDP扩展数据页寄存器23位XSP扩展数据堆栈指针23位XSSP扩展系统堆栈指针23位2.2 TMS320VC5509A的主要特性 CPU 两个乘法累加单元(MAC) 40位的算术逻辑单元(ALU)
10、和一个16位的算术逻辑单元 采用先进的多总线结构 存储器存储器 128K x 16位的片上RAM【64KB的DARAM和192KB的SARAM】 8M x 16位的最大可访问外部寻址空间(同步DRAM) 外部存储器接口(EMIF)与通用输入/输出(GPIO)共用引脚 片上外设片上外设 两个20位的定时器 一个看门狗定时器 6通道直接存储器存取控制器(DMA) 三个串口支持最多三个多通道缓冲串口(McBSP) 增强型主机接口(EHPI) 可编程锁相环(DPLL)时钟发生器 USB全速(12Mbps)从端口 I2C主从接口 一个实时时钟 第三章 TMS320C55x的指令系统 3.1 寻址方式 C
11、55x DSP支持三种寻址模式 : 绝对寻址模式: 指令里有一个地址的全部或者部分,指示目的地址; 直接寻址模式: 使用偏移地址指示目的地址; 间接寻址模式: 使用指针指示目的地址。 3.2 TMS320C55x的指令系统 3.1.1 绝对寻址模式 k16绝对寻址绝对寻址程序执行的结果是: T2= 。 例3-1:汇编语言k16绝对寻址程序阅读与分析 .def start .mmregs .text start: MOV #03H , DPH MOV #24 , *abs16(#2002h) MOV *abs16(#2002h) , T2here: b here操作数*abs16(#2002h)
12、的寻址地址 : 。 032002H0018H3.1.2 直接寻址模式 直接寻址直接寻址 的分类见下表 : DP 直接寻址直接寻址偏移量(Doffset)的计算 Doffset数据存储器Doffset =(Daddr-.dp) & 7FhDaddr是读/写操作的16bit地址,.dp是利用汇编伪指令分配的数值(一般DP的匹配),&表示按位“与”Doffset = Daddr & 7FhDaddr是读/写操作的16bit地址,&表示按位“与”,mmap( )迫使CPU把数据页视为0来操作。Doffset的计算有两种情况:表2-1 DP 直接寻址直接寻址Doffset
13、的计算一、 DP 直接寻址 DP 直接寻址偏移量(直接寻址偏移量(Doffset)的计算)的计算 DP 直接寻址直接寻址 Doffset 的计算代码示例:的计算代码示例:The assembler calculates Doffset: Doffset =(1) 寻址数据存储器寻址数据存储器 At run time, the 23-bit data-space address is generated: 23-bit address =(Daddr .dp) & 7Fh = (FFF4h FFF0h) & 7Fh = 04hDPH:(DP + Doffset) = 03:(FF
14、F0h + 0004h) = 03 FFF4hAMOV #03FFF0h, XDP.dp #0FFF0hMOV 0FFF4h, T2指令实例:指令实例:; Main data page is 03. For run-time, ;DP is FFF0h.; For assembly time, .dp is FFF0h.;Load T2 with the value at local ;address FFF4h.分析:分析:一、 DP 直接寻址 DP 直接寻址偏移量(直接寻址偏移量(Doffset)的计算)的计算 DP 直接寻址直接寻址 Doffset 的计算代码示例:的计算代码示例:汇编器
15、计算偏移量: Doffset =(2) 寻址寻址 程序运行时: ( CPU : DPH = DP = 0) 23-bit 地址产生如下: 23-bit address =Daddr & 7Fh = 0010h & 7Fh = 10hDPH:(DP + Doffset) = 00:(0000h + 0010h) = 00 0010hMOV mmap(AR0), T2 ; Load T2 with the value in AR0. ; mmap( ) qualifier indicates access to MMR. ; AR0 is mapped to address 000
16、010h in data space指令实例:指令实例:分析:分析:一、 DP 直接寻址3.1.3 间接寻址模式间接寻址模式CPU支持的间接寻址模式见下表: 221) 1) 循环寻址循环寻址 循环缓冲区的长度值存放在循环缓冲循环缓冲区的长度值存放在循环缓冲区长度寄存器区长度寄存器BKBK中,中,BKBK中的数值由指令设定。长度为中的数值由指令设定。长度为R R的循环缓冲器必须从一个的循环缓冲器必须从一个N N位地址的边界开始,即循环位地址的边界开始,即循环缓冲器基地址的最低缓冲器基地址的最低N N位必须为位必须为0 0。N N是满足是满足2 2N NR R的最的最小整数。小整数。R R的值必须
17、装入的值必须装入BKBK。例如,含有例如,含有3131个字的循环缓冲器必须从最低个字的循环缓冲器必须从最低5 5位为位为0 0的的地址开始,即地址开始,即xxxx xxxx xxx0 0000 xxxx xxxx xxx0 00002 2,N=5N=5,2 2N N=2=25 5R=31R=31,且,且3131必须装入必须装入BKBK。如:。如:MOV #1FMOV #1F,BKBK如果如果R=32R=32,则最小的,则最小的N N值为值为6 6,循环缓冲区的起始地址,循环缓冲区的起始地址必须有必须有6 6个最低有效位为个最低有效位为0 0,即,即 00 000000 00002 2。补充23
18、2) 2) 位倒序寻址位倒序寻址 在这种寻址方式中,用在这种寻址方式中,用AR0AR0存放存放FFTFFT点数的一半整数点数的一半整数N N,用另一辅助寄存器指向一数据,用另一辅助寄存器指向一数据存放的物理单元。当使用位倒序寻址把存放的物理单元。当使用位倒序寻址把AR0AR0加到辅助寄加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是从右向左进位。向右,而不是从右向左进位。 例如:例如: 0110 10000110 1000 + 0000 1000 + 0000 1000 0110 01000110 0100以以8 8位辅助寄存器
19、为例,位辅助寄存器为例,AR1AR1表示了在存储器中数表示了在存储器中数据的基地址(据的基地址(0110 00000110 0000)2 2,AR0AR0的值为(的值为(0000 10000000 1000)2 2。利用以下两条语句可以向外设口(口地址为。利用以下两条语句可以向外设口(口地址为PAPA)输)输出整序后的出整序后的FFTFFT变换结果:变换结果:RPT #15 RPT #15 重复执行下条指令重复执行下条指令15+115+1次次MOV MOV * *AR1+AR0BAR1+AR0B,PA PA 向外设口向外设口PAPA输出整结果输出整结果24AR1修改修改循环值循环值存储单存储单
20、元地址元地址整序前整序前FFT 变变换结果换结果位倒序位倒序AR1更新的地址值更新的地址值AR0=0000 10002整序后整序后PA输出的输出的FFT变换结果变换结果00000X(0)00000110 0000X(0)10001X(8)10000110 1000X(1)20010X(4)01000110 0100X(2)30011X(12)11000110 1100X(3)40100X(2)00100110 0010X(4)50101X(10)10100110 1010X(5)60110X(6)01100110 0110X(6)70111X(14)11100110 1110X(7)81000
21、X(1)00010110 0001X(8)91001X(9)10010110 1001X(9)101010X(5)01010110 0101X(10)111011X(13)11010110 1101X(11)121100X(3)00110110 0011X(12)131101X(11)10110110 1011X(13)141110X(7)01110110 0111X(14)151111X(15)11110110 1111X(15)位倒序对位倒序对FFTFFT变换结果的序号调整变换结果的序号调整 32位操作数寻址 在32位数寻址时,先处理高有效字,再处理低有效字。 如果寻址的第一个字处于偶地址
22、,那么第二个字就处于下一个(较高的)地址;如果第一个字处在奇地址,那么第二个字就处在前一个(较低的)地址。(1)偶地址排列法 指令中给出的地址为偶地址,存储器中低地址存放高16位操作数。如: MOV dbl(*AR3+) ,AC0执行前:AC0=00 0000 0000 执行后:ACO=00 6CAC BD90 AR3=0100 AR3=0102 (0100h)=6CAC(高字) (0100h)=6CAC (0101h)=BD90(低字) (0101h)=BD90 算术运算指令 位操作指令 扩展辅助寄存器操作指令 逻辑运算指令 移动指令 程序控制指令 3.2 TMS320C55X的指令系统二、
23、TMS320C55XDSP的汇编指令第4章 TMS320C55x汇编语言编程内容提要:TMS320C55x软件开发流程TMS320C55x目标文件格式TMS320C55x汇编器TMS320C55x汇编伪指令TMS320C55x汇编语言源文件的书写格式TMS320C55x链接器4.2.2 汇编器对段的处理l汇编器通过段伪指令自动识别各个段,并将段名相同的语句汇编在一起l汇编器有5条伪指令可以识别汇编语言程序的各个不同段u.text、.data、.sect创建初始化段u.bss和.usect创建未初始化段u.sect与.usect创建自定义段和子段4.6.3 链接器命令文件的编写与使用链接命令文件
24、的作用和主要指令1、链接命令文件用来为链接器提供链接信息,可将链接操作所需的信息放在一个文件中,这在多次使用同样的链接信息时,可以方便地调用2、在链接命令文件中,可使用MEMORY和SECTIONS伪指令,为实际应用指定存储器结构和地址的映射uMEMORY:用来指定目标存储器结构uSECTIONS:用来控制段的构成与地址分配 第五章、TMS320C55X的片内集成外设开发及测试 C55x片内外设与芯片支持库简介 时钟发生器 通用定时器 外部存储器接口 主机接口(EHPI) 多通道缓冲串口McBSP 通用输入/输出端口GPIO DMA控制器 I2C总线 多媒体卡控制器 通用串行总线(USB) 模
25、/数转换器(ADC) 实时时钟(RTC) 看门狗定时器(Watchdog) 异步串口(UART) l饱和方式位SATD和SATAuSATD控制D单元的操作,SATA控制A单元的操作。u如果SATD=1,当D单元发生溢出时,对D单元的结果进行饱和处理。不管饱和方式位的值是什么,当累加器发生溢出时,相应的溢出标志位都会被置位uA单元没有溢出标志位,但如果SATA=1,发生溢出时,结果也会进行饱和处理 饱和处理是用最近的边界值代替溢出结果。饱和处理是用最近的边界值代替溢出结果。例如,例如,1616位寄存器的范围是位寄存器的范围是8000h8000h(最小负数)(最小负数)7FFFh7FFFh(最大正
26、数),饱和处理就是用(最大正数),饱和处理就是用7FFFh7FFFh代替比代替比7FFFh7FFFh大的大的结果;用结果;用8000h8000h代替比代替比8000h8000h小的结果。小的结果。堆栈配置中快返回与慢返回过程的区别l快返回与慢返回过程的区别在于CPU怎样保存和恢复两个内部存储器(即程序计数器PC和一个循环现场寄存器)的值。l在快返回过程里l返回地址保存在寄存器RETA中l循环现场保存在寄存器CFCT中l用专门的32位装入和存储指令可同时读/写RETA 和CFCTl在慢返回过程里,返回地址和循环现场保存在堆栈里(在存储器里),当CPU从子程序返回时,这些数据的恢复速度取决于访问存
27、储器的速度 DSP处理中断的步骤1)接收中断请求。软件和硬件都要求DSP将当前程序挂起。2)响应中断请求。CPU必须响应中断。如果是可屏蔽中断,响应必须满足某些条件。如果是不可屏蔽中断,则CPU立即响应。3)准备进入中断服务子程序。保护现场,保存寄存器中的值。4)执行中断服务子程序。CPU执行用户编写的ISR。ISR以一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值。4.7 一个完整的TMS320C55x汇编程序 例4-20,这是一个完整的C55x 汇编程序,其功能计算:y = x0 + x3 + x1 + x2。通过该例程可以加深对C55x 汇编程序的了解,熟悉C55x 的寻址方
28、式和开发调试方法。(1)汇编源程序(test.asm)* Step 1: 定义有关代码段和数据段 .title “test.asm”.def x,y,initx .bss x,4 ; 为变量x保留4个未初始化16位存储单元y .bss y,1 ; 为变量y保留1个未初始化16位存储单元.data; 创建初始化段”.data”,存储x的初始化值init .word 1,2,3,4 .text ; 创建代码段(.text).global start ; 定义代码段的起始标号start* Step 2: 处理器模式初始化BCLR C54CM ; 设置处理器为55x模式BCLR AR0LC ;设置AR0为线性模式BCLR AR6LC ;设置AR6为线性模式* Step 3a: 采用间接寻址方法复制x的初始化值到xcopyAMOV #x,XAR0 ; XAR0 指向变量xAMOV #init,AR6 ; XAR6指向初始化表table RPT #3 ; 复制开始MOV *AR6+,*AR0+* Step 3b: 采用直接寻址方法将x的值相加addAMOV #x,XDP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆企业安全员培训课件
- 民法总则相关课件
- 初中生中考试题及答案
- 财务室职责考试题及答案
- 广州:新质生产力发展探析
- 民族风少女课件教学
- 网络热词新质生产力解析
- 新华社新质生产力要素
- 《统计学-SPSS和Excel实现》(第9版)课件 第6章 假设检验
- 新质生产力十问十答
- 中建八局《建筑工程质量管理口袋书~基础、主体结构、装饰分册》
- 智能矿山技术在硬岩铀矿山的应用实例与挑战
- 畜禽疫病防控技术课件教学
- 2025静脉输液规范
- 大学英语 专升本 课件 第十节 定语从句
- 瑜伽急救知识培训课件
- 2《中国人首次进入自己的空间站》课件【知识精研】统编版语文八年级上册
- 切口妊娠介入治疗
- 2024年高校红十字应急救护大赛理论考试题库(含答案)
- 2024年福建省公务员录用考试《行测》真题及答案解析
- c02激光治疗皮肤病
评论
0/150
提交评论