第一章1. TI公司的DSP芯片概况1. TMS320C2000系列:称为DSP控制器适用于数字化控制的领域2. TMS320C5000系列: 16位定点DSP主要用于通信领域3. TMS320C6000系列:每秒执行90亿条指令,应用于数字通信和音视频技术 第二章1. TMS320C55x的总体结构(填空题) P10 C55x芯片由CPU、存储空间、片内外设组成不同芯片体系结构相同,具有相同的CPU,片上存储器和外围电路配置有所不同2. C55x CPU内部总线结构内部独立总线:12组程序地址总线(PAB):1组,24位程序数据总线(PB):1组,32位数据读地址总线(BAB、CAB、DAB):3组,24位数据读总线(BB、CB、DB):3组,16位数据写地址总线(EAB、FAB):2组,24位数据写总线(EB、FB):2组,16位3. C55x的CPU组成(基本功能)1.指令缓冲单元(I单元)组成: 32×16位指令缓冲队列和指令译码器 功能:接收程序代码并放入指令缓冲队列; 由指令译码器解释指令,再把指令流传给其它的工作单元2.程序流单元(P单元)组成: 程序地址发生器和程序控制逻辑 功能: 产生所有程序空间地址,并送到PAB总线3.地址-数据流单元(A单元)组成:数据地址产生电路 (DAGEN);附加16位ALU和1组寄存器功能: 产生读/写数据空间地址,并送到BAB、CAB、DAB总线4.数据运算单元(D单元)组成: 1个40位的筒形移位寄存器(barrel shifter); 2个乘加单元 (MAC);1个40位的ALU; 若干寄存器。
功能: CPU中最主要的部分,是主要的数据处理部件5.存储器接口单元(M单元)是CPU和数据空间或I/O空间之间传输所有数据的中间媒介4. C55x存储器配置存储空间:片内存储空间共有352KB(176K字);外部存储空间共有16MB (8M字)支持的存储器类型:异步SRAM、EPROM;同步DRAM;同步突发SRAM特点 :采用统一的程序/地址空间存储空间; I/O空间与程序/地址空间分开 5. C55x的CPU结构 存储器接口单元(M单元); 指令缓冲单元(I单元);程序流单元(P单元);地址数据流单元(A单元);数据计算单元(D单元);内部地址总线与数据总线6. 地址总线与数据总线C55x的CPU总线1组32位程序总线:PB5组16位数据总线: BB、CB、DB、EB、FB6组24位地址总线:PAB、BAB、CAB、DAB、EAB、FAB特点: 这种总线并行机构使CPU在一个机器周期内,能够读1次32位程序代码、读3次16位数据、写2次16位地址7. 指令流水线(简答题)P23 C55x的指令流水线分为两个阶段:第一阶段——取指阶段:从存储器取来32位指令包,将其存入指令缓冲队列(IBQ)中,并送48位指令包给第二流水阶段第二阶段——执行阶段:对指令进行译码,并完成数据访问和计算。
8. CPU寄存器p25 1.ST0_55、ST1_55和ST3_55都有两个访问地址; 2. T3、RSA0L、REA0L和SP有两个访问地址; 3.任何装入BRC1的指令将相同的值装入BRS19. 中断向量指针(IVPD,IVPH)p36DSP中断向量指针(IVPD):16位,指向256字节的程序空间中的中断向量表(IV0~IV15和IV24~IV31),这些中断向量供DSP专用.主机中断向量指针(IVPH):16位,指向256字节的程序空间中的中断向量表(IV16~ IV23),这些中断向量供DSP和主机共享使用如果IVPD和IVPH的值相同,所有中断向量可能占有相同的256字节大小的程序空间;DSP硬件复位时,IVPD和IVPH都被装入到FFFFH地址处;IVPD和IVPH均不受软复位的影响 在修改IVP之前应确保:INTM=1,即所有可屏蔽中断不能响应每个硬件不可屏蔽中断对于原来的IVPD和修改后的IVPD都有一个中断向量和中断服务程序10. 调试中断使能寄存器(DBIER0,DBIER1)仅当CPU工作在 实时 仿真模式 调试 暂停 时,这两个16位的调试中断使能寄存器才会使用11. 保护地址(作用) p40为了支持把C54x的代码写入ST0、ST1和PMST12. 存储器映射(访问格式、外扩空间)p51C55x的存储(数据/程序)空间采用统一编址的访问方法CPU读取程序代码时,使用24位地址访问相关字节;CPU读写数据时,使用23位地址访问相关字。
两种情况下地址总线上均为24位,只是数据寻址时地址总线上的最低位强制填充0C55x存储空间(总共为16M字节或8M字)的划分:128个主页面(0~127),每个主页面为64K字主页面0的前192个字节或96个字(00 0000h~00 00BFh)被MMR所占用外部扩展存储空间由CE[3:0]分为4个部分,每部分都可以支持同步或异步存储器类型13. DARAM与SARAM区别 p51DARAM:双存取RAM,分为8个8K字节或4K字的块,每个8K字节的块每周期可以访问两次(两次读或一次读、一次写)DARAM可被内部程序总线、数据总线或DMA访问前4块DARAM可以被HPI访问SARAM:单存取RAM,分为24个8K字节或4K字的块,每个8K字节的块每周期只能访问一次(一次读或一次写)14. 程序空间(读写) P53CPU使用24位宽的字节寻址从程序存储器读取指令地址总线是24位的,通过程序读数据总线一次可以读取32位的指令,指令中每8位占有一个字节地址15. I/O空间 P55I/O空间和程序/数据空间是分开的,只能用来访问DSP外设上的寄存器对于I/O空间的读写是通过数据读总线DAB和数据写总线EAB进行的。
读写时要在16位地址前补016. 堆栈操作(哪几种堆栈)C55x支持两个16位堆栈,即数据堆栈和系统堆栈17. 堆栈配置p56C55x提供了3种可能的堆栈配置一种配置使用快返回过程,另外两种使用慢返回过程(稍微看下其区别)18. 快返回与慢返回过程的区别 p57在于CPU怎样保存和恢复两个内部存储器(即程序计数器PC和一个循环现场寄存器的值在慢返回过程里,返回地址和循环现场保存在堆栈里(在存储器里),当CPU从子程序返回时,这些数据的恢复速度取决于访问存储器的速度在快返回过程里,返回地址保存在寄存器RETA中,循环现场保存在寄存器CFCT中用专门的32位装入和存储指令可同时读/写RETA 和CFCT.19. DSP处理中断的步骤(简答)(1)接收中断请求软件和硬件都要求DSP将当前程序挂起2)响应中断请求CPU必须响应中断如果是可屏蔽中断,响应必须满足某些条件如果是不可屏蔽中断,则CPU立即响应3)准备进入中断服务子程序CPU要执行的主要任务有:完成当前指令的执行,并冲掉流水线上还未解码的指令;自动将某些必要的寄存器的值保存到数据堆栈和系统堆栈;从用户实现设置好的向量地址获取中断向量,该中断向量指向中断服务子程序。
4)执行中断服务子程序CPU执行用户编写的ISRISR以一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值注意:1.外部中断只能发生在CPU退出复位后的至少3个周期后,否则无效;2.在硬件复位后,不论INTM位的设置和寄存器IER0、IER1的值如何,所有的中断都被禁止,直到通过软件初始化堆栈后才开放中断20. 可屏蔽中断 p60所有的可屏蔽中断都是硬件中断无论硬件何时请求一个可屏蔽中断,在一个中断标志寄存器里就有相应的中断标志置位该标志一旦置位,相应的中断还必须使能,否则不会得到处理21. 不可屏蔽中断(有哪些) P63硬件中断/RESET;硬件中断/NMI;软件中断 第三章1. 寻址方式(填空题)1.绝对寻址方式:通过在指令中指定一个常数地址完成寻址2.直接寻址方式:使用地址偏移量寻址3.间接寻址方式:使用指针完成寻址2. 绝对寻址方式 p70 自己瞄书3直接寻址方式 p71DP直接寻址方式和SP直接寻址方式是相互排斥的,只能有一种方式存在通过设置ST1_55的CPL位选择寄存器位直接寻址方式和PDP直接寻址方式不受CPL位的影响4. 间接寻址方式p74 。
自己瞄书5.数据存储器的寻址(看书上例子)p81三种寻址方式(绝对、直接、间接)都可以用于对数据存储器的寻址6. I/O空间的寻址(选择or 填空)P83 第四章1.COFF文件的基本单元—段段(section)是COFF文件的基本单元一个段是一个占据存储器里连续地址的代码或者数据块,COFF目标文件的每个段都是分开和不同的COFF目标文件通常包括3个默认段,即.text段,通常包含可执行代码.data段,通常包含初始化数据.bss段,通常为未初始化变量保留存储空间2. 汇编器对段的处理汇编器有5条伪指令可以识别汇编语言程序的各个不同段.text、.data、.sect创建初始化段.bss和.usect创建未初始化段.sect与.usect创建自定义段和子段3. 例4-1,段伪指令的使用描述开辟的空间以及后面的图,一定要看哪!!!!)P1374. MEMORY指令与SECTIONS指令 p158MEMORY指令允许用户定义一个目标系统的存储器映射,可以命名存储器的各个部分,并且指定开始地址和大小SECTIONS指令告诉链接器合成输入段为输出段,并且告诉链接器把这些输出段放在存储器的某个位置。
5. 例4-19,链接器的使用P162a.obj b.obj /*输入文件 */-o prog.out /* 用-o参数指定输出文件名 */SECTIONS{ .text: load =ROM, run=800h .const: load=ROM .bss : load=RAM .vectors: load=FF80h .data: align = 16}图4—5显示了这个例子的存储器映射情况 图4-5 段在存储器里的分配 第六章1. 定义各种数据类型时应注意如下规则:1.避免设int和long为相同大小2.对定点算法(特别是是乘法)尽量使用int数据类型用long类型作乘法操作数会导致调用运行时间库(run-time library)的程序3.使用int或unsigned int类型而非long类型来循环计数4.避免设char为8位或long为64位5.当所写代码用于多DSP目标系统中时,宜定义genetic类型。