数字信号处理课件:第2章 TMS320C55x的硬件结构修改)

上传人:新** 文档编号:568573155 上传时间:2024-07-25 格式:PPT 页数:185 大小:3.06MB
返回 下载 相关 举报
数字信号处理课件:第2章 TMS320C55x的硬件结构修改)_第1页
第1页 / 共185页
数字信号处理课件:第2章 TMS320C55x的硬件结构修改)_第2页
第2页 / 共185页
数字信号处理课件:第2章 TMS320C55x的硬件结构修改)_第3页
第3页 / 共185页
数字信号处理课件:第2章 TMS320C55x的硬件结构修改)_第4页
第4页 / 共185页
数字信号处理课件:第2章 TMS320C55x的硬件结构修改)_第5页
第5页 / 共185页
点击查看更多>>
资源描述

《数字信号处理课件:第2章 TMS320C55x的硬件结构修改)》由会员分享,可在线阅读,更多相关《数字信号处理课件:第2章 TMS320C55x的硬件结构修改)(185页珍藏版)》请在金锄头文库上搜索。

1、本本 章章 主主 要要 内内 容容 nTMS320C55x的总体结构的总体结构n封装和引脚功能封装和引脚功能nCPU结构结构nCPU寄存器寄存器 n存储空间和存储空间和I/O空间空间 n堆栈操作堆栈操作 n中断和复位操作中断和复位操作 第第2章章 TMS320C55x的硬件结构的硬件结构2.1 TMS320C55x的总体结构的总体结构lC55x芯片由芯片由CPU、存储空间、片内、存储空间、片内外设组成外设组成l不同芯片体系结构相同,具有相同不同芯片体系结构相同,具有相同的的CPU,片上存储器和外围电路配,片上存储器和外围电路配置有所不同置有所不同图图2-1 TMS320VC5509A框框图图

2、在通用计算机(在通用计算机(在通用计算机(在通用计算机(在通用计算机(在通用计算机(PCPCPC机)上用软件(如机)上用软件(如机)上用软件(如机)上用软件(如机)上用软件(如机)上用软件(如FortranFortranFortran、C CC语言)语言)语言)语言)语言)语言)实现,但速度慢,不适合实时数字信号处理,只用于算法的模实现,但速度慢,不适合实时数字信号处理,只用于算法的模实现,但速度慢,不适合实时数字信号处理,只用于算法的模实现,但速度慢,不适合实时数字信号处理,只用于算法的模实现,但速度慢,不适合实时数字信号处理,只用于算法的模实现,但速度慢,不适合实时数字信号处理,只用于算法

3、的模拟;拟;拟;拟;拟;拟; 在通用计算机系统中加入专用的加速处理机实现,用在通用计算机系统中加入专用的加速处理机实现,用在通用计算机系统中加入专用的加速处理机实现,用以增强运算能力和提高运算速度。不适合于嵌入式应用,专用以增强运算能力和提高运算速度。不适合于嵌入式应用,专用以增强运算能力和提高运算速度。不适合于嵌入式应用,专用性强,应用受到限制;性强,应用受到限制;性强,应用受到限制; 用单片机实现,用于不太复杂的数字信号处理。不适用单片机实现,用于不太复杂的数字信号处理。不适用单片机实现,用于不太复杂的数字信号处理。不适用单片机实现,用于不太复杂的数字信号处理。不适合于以乘法合于以乘法合于

4、以乘法合于以乘法- -累加运算为主的密集型累加运算为主的密集型累加运算为主的密集型累加运算为主的密集型DSPDSP算法;算法;算法;算法; 用通用的可编程用通用的可编程用通用的可编程用通用的可编程DSPDSP芯片实现,具有可编程性和强大芯片实现,具有可编程性和强大芯片实现,具有可编程性和强大芯片实现,具有可编程性和强大的处理能力,可完成复杂的数字信号处理的算法,在实时的处理能力,可完成复杂的数字信号处理的算法,在实时的处理能力,可完成复杂的数字信号处理的算法,在实时的处理能力,可完成复杂的数字信号处理的算法,在实时DSPDSP领域中处于主导地位;领域中处于主导地位;领域中处于主导地位;领域中处

5、于主导地位; C55xC55x有有有有1 1条条条条3232位的程序数据总线(位的程序数据总线(位的程序数据总线(位的程序数据总线(PBPB),),),),5 5条条条条1616位数据总位数据总位数据总位数据总线(线(线(线(BBBB、CBCB、DBDB、EBEB、FBFB)和)和)和)和1 1条条条条2424位的程序地址总线及位的程序地址总线及位的程序地址总线及位的程序地址总线及5 5条条条条2323位的数据地址总线,这些总线分别与位的数据地址总线,这些总线分别与位的数据地址总线,这些总线分别与位的数据地址总线,这些总线分别与CPUCPU相连。总线通过相连。总线通过相连。总线通过相连。总线通

6、过存储器接口单元(存储器接口单元(存储器接口单元(存储器接口单元(MM)与外部程序总线和数据总线相连,实现)与外部程序总线和数据总线相连,实现)与外部程序总线和数据总线相连,实现)与外部程序总线和数据总线相连,实现CPUCPU对外部存储器的访问。这种并行的多总线结构,使对外部存储器的访问。这种并行的多总线结构,使对外部存储器的访问。这种并行的多总线结构,使对外部存储器的访问。这种并行的多总线结构,使CPUCPU能能能能在一个在一个在一个在一个CPUCPU周期内完成周期内完成周期内完成周期内完成1 1次次次次3232位程序代码读、位程序代码读、位程序代码读、位程序代码读、3 3次次次次1616位

7、数据读和位数据读和位数据读和位数据读和两次两次两次两次1616位数据写。位数据写。位数据写。位数据写。C55xC55x根据功能的不同将根据功能的不同将根据功能的不同将根据功能的不同将CPUCPU分为分为分为分为4 4个单元,个单元,个单元,个单元,即指令缓冲单元(即指令缓冲单元(即指令缓冲单元(即指令缓冲单元(I I)、程序流程单元()、程序流程单元()、程序流程单元()、程序流程单元(P P)、地址流程单元)、地址流程单元)、地址流程单元)、地址流程单元(A A)和数据计算单元()和数据计算单元()和数据计算单元()和数据计算单元(D D)。)。)。)。TMS320C55x CPU结构图结构

8、图 2.1.1 C55x的CPU组成组成组成: : 32 321616位指令缓冲队列位指令缓冲队列; ; 指令译码器。指令译码器。功能功能: : 接收程序代码并放入指接收程序代码并放入指令缓冲队列令缓冲队列; ; 由指令译码器解释指令,由指令译码器解释指令,再把指令流传给其它的工作单元再把指令流传给其它的工作单元l指令缓冲单元(指令缓冲单元(I单元)单元)l程序流单元(程序流单元(P单元)单元)l地址地址-数据流单元(数据流单元(A单元)单元)l数据运算单元(数据运算单元(D单元)单元)l存储器接口单元(存储器接口单元(M单元)单元)组成组成: : 程序地址发生器; 程序控制逻辑功能功能: :

9、 产生所有程序空间地址,并送到PAB总线组成组成: 数据地址产生电路数据地址产生电路 (DAGEN);附加附加16位位ALU和和1组寄存器组寄存器功能功能: 产生读产生读/写数据空间地址,并写数据空间地址,并送到送到BAB、CAB、DAB总线总线组成组成: 1个40位的筒形移位寄存器(barrel shifter); 2个乘加单元(MAC); 1个40位的ALU; 若干寄存器。功能功能: CPU中最主要的部分,是主要的数据处理部件 是是CPU和数据空间或和数据空间或I/O空间空间之间传输所有数据的中间媒介之间传输所有数据的中间媒介 图图2-3 C55x的的CPU结构框图结构框图指令缓冲单元(指

10、令缓冲单元(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单元结构框图单元结构框图程序地址产生逻辑:程序地址产生逻辑:产生24位的程序空间取指的地址;可产生顺序地址;也可

11、以I单元的立即数或D单元的寄存器值作为地址程序控制逻辑程序控制逻辑: 接收来自I单元的立即数,并测试来自A单元或D单元的结果从而执行如下动作: 测试条件执行指令的条件是否成立,把测试结果送程序地址发生器; 当中断被请求或使能时,初始化中断服务程序; 控制单一指令重复或块指令重复;管理并行执行的指令P单元的作用:单元的作用:产生程序空间地址,并加载地址到PAB;控制指令流顺序地址数据流单元(地址数据流单元(A单元)单元)图图2-6 A单元结构框图单元结构框图 DAGEN产生所有读写数据空产生所有读写数据空间的地址。间的地址。 可接收来自I单元的立即数或来自A单元的寄存器值; 根据P单元指示,对间

12、接寻址方式时选择使用线性寻址还是循环寻址。 ALU可接收来自可接收来自I单元的立即数单元的立即数或与存储器、或与存储器、I/O空间、空间、A单元寄存单元寄存器、器、D单元寄存器和单元寄存器和P单元寄存器进单元寄存器进行双向通信。可完成如下动作:行双向通信。可完成如下动作: 加法、减法、比较、布尔逻辑、加法、减法、比较、布尔逻辑、符号移位、逻辑移位和绝对值计算;符号移位、逻辑移位和绝对值计算; 测试、设置、清空、求补测试、设置、清空、求补A单单元寄存器位或存储器位域;元寄存器位或存储器位域; 改变或转移寄存器值,循环移改变或转移寄存器值,循环移位寄存器值,从移位器向一个位寄存器值,从移位器向一个

13、A单单元寄存器送特定值。元寄存器送特定值。数据计算单元(数据计算单元(D单元单元)图图2-7 D2-7 D单元结构框图单元结构框图 接收来自接收来自I单元的立即数,单元的立即数, 与存储器、与存储器、I/O空间、空间、D单元寄存器、单元寄存器、P单元寄存器、单元寄存器、A单元寄存器进行双向通信;单元寄存器进行双向通信; 把移位结果送至把移位结果送至D单元的单元的ALU或或A单单元的元的ALU; 实现实现40位累加器值最大左移位累加器值最大左移31位或最位或最大右移大右移32位;位; 实现实现16位寄存器、存储器或位寄存器、存储器或I/O空间空间数据最大左移数据最大左移31位或最大右移位或最大右

14、移32位;位; 实现实现16位立即数最大左移位立即数最大左移15位;位; 提取或扩张位域,执行位计数;提取或扩张位域,执行位计数; 对寄存器值进行循环移位对寄存器值进行循环移位; 在累加器的值存入数据空间之前,对在累加器的值存入数据空间之前,对它们进行取整它们进行取整/饱和处理。饱和处理。 可从可从I单元接收立即数,或与存储器、单元接收立即数,或与存储器、I/O空间、空间、D单元寄存器、单元寄存器、P单元寄存器、单元寄存器、A单元寄存器进行双向通信单元寄存器进行双向通信,还可接收移还可接收移位器的结果;位器的结果; 加法、减法、比较、取整、饱和、加法、减法、比较、取整、饱和、布尔逻辑以及绝对值

15、运算;布尔逻辑以及绝对值运算; 在执行一条双在执行一条双16位算术指令时,同位算术指令时,同时进行两个算术操作;时进行两个算术操作; 测试、设置、清除以及求测试、设置、清除以及求D单元寄存单元寄存器的补码;器的补码; 对寄存器的值进行移动。对寄存器的值进行移动。 可支持乘法和加可支持乘法和加/减法。在单个机减法。在单个机器周期内,每个器周期内,每个MAC可以进行一次可以进行一次1717位小数或整数乘法运算和一次带位小数或整数乘法运算和一次带有可选的有可选的32或或40位饱和处理的位饱和处理的40位加位加/减法运算。减法运算。MAC的结果送累加器;的结果送累加器; MAC接收来自接收来自I单元的

16、立即数,或单元的立即数,或来自存储器、来自存储器、I/O空间、空间、A单元寄存器的单元寄存器的数据,和数据,和D单元寄存器、单元寄存器、P单元寄存器单元寄存器进行双向通信;进行双向通信; MAC的操作会影响的操作会影响P单元状态寄存单元状态寄存器的某些位。器的某些位。2.1.2 指令流水线指令流水线 C55x的指令流水线分为两个阶段的指令流水线分为两个阶段:第一阶段第一阶段取指阶段取指阶段:从存储器取来从存储器取来32位指位指令包,将其存入指令缓冲队列(令包,将其存入指令缓冲队列(IBQ)中,)中,并送并送48位指令包给第二流水阶段位指令包给第二流水阶段第二阶段第二阶段执行阶段执行阶段:对指令

17、进行译码,并对指令进行译码,并完成数据访问和计算。完成数据访问和计算。1.1.概况:概况:表表2-6 取指阶段流水线的意义取指阶段流水线的意义图图2-8 指令流水线(取指阶段)指令流水线(取指阶段)2.2.取指阶段取指阶段图图2-9 指令流水线(执行阶段)指令流水线(执行阶段)3.3.执行阶段执行阶段表表2-7 执行阶段流水线的意义(执行阶段流水线的意义(1)表表2-7 执行阶段流水线的意义(执行阶段流水线的意义(2)2.1.3 C55x存储器配置l存储空间存储空间l支持的存储器类型支持的存储器类型l特点特点 片内存储空间共有片内存储空间共有352KB(176K字)字);外部存储空间共有外部存

18、储空间共有16MB (8M字)字)异步异步SRAM、EPROM;同步同步DRAM;同步突发同步突发SRAM采用统一的程序采用统一的程序/地址空间存储地址空间存储空间空间; I/O空间与程序空间与程序/地址空间分开地址空间分开存储器存储器5501550255035506550755095510ROM(KB)32326464646432RAM(KB)326464128128256320表2-1 C55x片内存储器配置lC55x的存储(数据的存储(数据/程序)空间统一编址程序)空间统一编址uCPU读取程序代码时,使用读取程序代码时,使用24位地址访问相关字节位地址访问相关字节uCPU读写数据时,使用

19、读写数据时,使用23位地址访问相关字位地址访问相关字u两种情况下地址总线上均为两种情况下地址总线上均为24位,只是数据寻址时地址总位,只是数据寻址时地址总线上的最低位强制填充线上的最低位强制填充0lC55x存储空间存储空间(总共为总共为16M字节或字节或8M字字)的划分:的划分:u128个主页面(个主页面(0127),每个主页面为),每个主页面为64K字字u主页面主页面0的前的前192个字节或个字节或96个字(个字(00 0000h00 00BFh)被)被MMR所占用所占用2.5.1 存储器映射存储器映射lC55x的外部扩展存储空间由的外部扩展存储空间由CE3:0分为分为4个部个部分,每部分都

20、可以支持同步或异步存储器类型分,每部分都可以支持同步或异步存储器类型lC55x的片内存储器资源(以的片内存储器资源(以VC5509A为例)为例)u128K字字RAMDARAM为为32K字字SARAM为为96K字字u32K字字ROM表表2-26 TMS320VC5509A PGE存贮器映射存贮器映射lDARAM (以(以VC5509A为例)为例)u双存取双存取RAM,分为,分为8个个8K字节或字节或4K字的块,每个字的块,每个8K字节的块每周期可以访问两次(两次读或一次读、一字节的块每周期可以访问两次(两次读或一次读、一次写)次写)uDARAM可被内部程序总线、数据总线或可被内部程序总线、数据总

21、线或DMA访问。访问。前前4块块DARAM可以被可以被HPI访问访问nSARAM (以(以VC5509A为例)为例)u单存取单存取RAM,分为,分为24个个8K字节或字节或4K字的块,每个字的块,每个8K字节的块每周期只能访问一次(一次读或一次写)字节的块每周期只能访问一次(一次读或一次写)表表2-27 TMS320VC5509A 的的DARAM块块表表2-28 TMS320VC5509A 的的SARAM块块程序空间程序空间lCPU使用使用24位宽的字节寻址从程序存储器读取指令位宽的字节寻址从程序存储器读取指令 地址总线是地址总线是24位的,通过程序读数据总线一次可以读取位的,通过程序读数据总

22、线一次可以读取32位的指令,指令中每位的指令,指令中每8位占有一个字节地址位占有一个字节地址图图2-29 字节地址字节地址 例:若指令字节例:若指令字节0占用地址占用地址00 0100h,则指令字节,则指令字节2占用占用地址地址00 0102h。数据空间数据空间lCPU使用字地址访问数据空间使用字地址访问数据空间u字地址为字地址为23位的,寻址位的,寻址16位的数据位的数据u地址线为地址线为24位的,当位的,当CPU读读/写数据空间时,写数据空间时,23位的字位的字地址最低位补一个地址最低位补一个0成为总地址成为总地址例:例:字地址:字地址: 000 0000 00000001 0000 00

23、10地址总线:地址总线:0000 0000 00000010 0000 0100I/O空间空间lI/O空间和程序空间和程序/数据空间是分开的,数据空间是分开的,只能用来访问只能用来访问DSP外外设上的寄存器设上的寄存器lI/O空间里的字地址宽度是空间里的字地址宽度是16位,可以访问位,可以访问64K个地址个地址l对于对于I/O空间的读写是通过数据空间的读写是通过数据读读总线总线DAB和数据和数据写写总线总线EAB进行的进行的u读写时要在读写时要在16位地址前补位地址前补0例。设一条指令从例。设一条指令从16位地址位地址0102h处读取一个字,则处读取一个字,则DAB传输的传输的24位地址为位地

24、址为00 0102h。2.1.4 C55x外设配置外设配置l模数转换器(模数转换器(ADC)l可编程数字锁相环时钟发生器(可编程数字锁相环时钟发生器(DPLL)l指令高速缓存(指令高速缓存(I-Cache)l外部存储器接口(外部存储器接口(EMIF)l直接存储器访问控制器(直接存储器访问控制器(DMA)l多通道串行缓冲口(多通道串行缓冲口(McBSP)1010位,用于采集电压、面位,用于采集电压、面板旋钮的输入值板旋钮的输入值VC5509A的时钟频率可的时钟频率可达达200MHz,最小机器,最小机器周期为周期为5ns1个可配置的个可配置的24KB的存的存储器,可最小化对外部储器,可最小化对外部

25、存储区的访问存储区的访问可以实现与各种存储器可以实现与各种存储器件无缝连接件无缝连接在无在无CPU涉入的情况下,涉入的情况下,允许数据在内部存储器和允许数据在内部存储器和外部存储器、增强型主机外部存储器、增强型主机接口接口(EHPI) 之间传输之间传输为全双工串口,为全双工串口,VC5509设设有有3个个McBSPl增强型主机接口增强型主机接口(EHPI)l2个个16位的通用定时位的通用定时/计计数器数器l8个可配置的通用个可配置的通用I/O引引脚(脚(GPIO)l实时时钟(实时时钟(Real Time Clock,RTC)l看门狗定时器看门狗定时器(Watchdog Timer) lUSB

26、为为16位并行接口,用于位并行接口,用于提供主处理器对提供主处理器对DSP上上的内部存储器的访问,的内部存储器的访问,可被配置成复用或非复可被配置成复用或非复用形式用形式提供一个时间参考,并提供一个时间参考,并能产生基于时间的报警能产生基于时间的报警来中断来中断DSP可以在软件陷入循环有没可以在软件陷入循环有没有受控退出的情况下,防有受控退出的情况下,防止止 系统死锁系统死锁目前目前VC5506、VC5507、 VC5509各提供了各提供了1个个USB接接口口表2-2 C55x片内外设配置 2.2 C55x的封装和引脚功能的封装和引脚功能 n不同不同C55x芯片通常有不同封装芯片通常有不同封装

27、n为满足不同用途需求,为满足不同用途需求,C55x同一个芯片也往往同一个芯片也往往有多种封装有多种封装n 本节以本节以TMS320VC5509A PGE 封装为例讲述封装为例讲述引脚配置及功能引脚配置及功能n只给出只给出VC5509A PGE引脚的定义和简要描述,引脚的定义和简要描述,详细描述请参考文献详细描述请参考文献SPRS205J图图2-2 TMS320VC5509A的封装的封装(a) 179脚脚BGA封封装装(底底视视图图) (b) 144脚脚PGE封封装装(顶顶视视图图)2.2.1 引脚属性引脚属性表表2-3 VC5509A PGE信号引脚对应图信号引脚对应图(1)表表2-3 VC5

28、509A PGE信号引脚对应图(信号引脚对应图(2)表表2-3 VC5509A PGE信号引脚对应图(信号引脚对应图(3)表表2-3 VC5509A PGE信号引脚对应图(信号引脚对应图(4)2.2.2 引脚信号定义与描述引脚信号定义与描述n并行总线引脚并行总线引脚n初始化、中断和复位初始化、中断和复位引脚引脚n位输入位输入/输出信号输出信号n振荡器振荡器/时钟信号时钟信号n实时时钟实时时钟nI2C总线总线nMcBSP接口接口nUSB接口接口nA/D接口接口n测试测试/仿真引脚仿真引脚n电源引脚电源引脚1. 并行总线引脚并行总线引脚lA13:0uC55x 内核的并行内核的并行地址总线地址总线A

29、13A0的外部引脚。的外部引脚。u3种功能:种功能:HPI地址线地址线HPI.HA13:0EMIF地址总线地址总线EMIF.A 13:0通用输入输出通用输入输出GPIO.A 13:0 lD15:0uC55x 内核的并行双向内核的并行双向数据总线数据总线D31D0u2种功能:种功能:EMIF 数据总线数据总线 (EMIF. D15:0) HPI数据总线数据总线(HPI.HD15:0)lC0:EMIF异步存储器读选通异步存储器读选通(EMIF. ) 或通用输入输出口或通用输入输出口8 (GPIO.8)lC1:EMIF异步输出使能(异步输出使能(EMIF. ) 或或HPI中断输出(中断输出(HPI.

30、 )lC2:EMIF异步存储器写选通异步存储器写选通 (EMIF. ) 或或HPI读读/写写(HPI. )lC3:EMIF数据输入准备就绪数据输入准备就绪(EMIF.ARDY) 或或HPI输出准备就绪输出准备就绪(HPI.HRDY)lC4:存储空间:存储空间CE0的的EMIF片选信号片选信号(EMIF. ) 或通用输入输出口或通用输入输出口9(GPIO.9)lC5:存储空间:存储空间CE1的的EMIF片选信号片选信号(EMIF. ) 或通用输入输出口或通用输入输出口10(GPIO.10)lC6:存储空间:存储空间CE2的的EMIF片选信号片选信号(EMIF. ) 或或HPI访问控制信号访问控制

31、信号0 (HPI.HCNTL0)lC7:存储空间存储空间CE3的的EMIF片选信号片选信号(EMIF. ) 或通用输入输出口或通用输入输出口11(GPIO.11) 或或HPI访问控制信号访问控制信号1 (HPI.HCNTL1)lC8: EMIF字节使能控制字节使能控制0 (EMIF. ) 或或HPI 字节字节 辨识辨识(HPI. )lC9: EMIF字节使能控制字节使能控制1 (EMIF. ) 或或HPI 字节字节 辨识辨识(HPI. )lC10: EMIF SDRAM行选通信号行选通信号(EMIF. ) 或或HPI地址选通信号地址选通信号(HPI. ) 或通用输入输出口或通用输入输出口12(

32、GPIO.12)lC11: EMIF SDRAM列选通信号列选通信号(EMIF. ) 或或HPI片选输入信号片选输入信号(HPI. )lC12: EMIF SDRAM写使能信号写使能信号(EMIF. ) 或或HPI数据选通信号数据选通信号 1 (HPI. )lC13: SDRAM A10地址线地址线 (EMIF.SDA10) 或通用输入输出口或通用输入输出口13 (GPIO.13)lC14:SDRAM存储器时钟信号存储器时钟信号(EMIF.CLKMEM) 或或HPI数据选通信号数据选通信号2(HPI. )2. 初始化、中断和复位引脚初始化、中断和复位引脚l l 外部中断请求信号;外部中断请求信

33、号;为可屏蔽中断,并且可为可屏蔽中断,并且可由中断使能寄存器由中断使能寄存器(IER)和中断方式位屏和中断方式位屏蔽;蔽;可以通过中断标志寄存可以通过中断标志寄存器器(IFR)进行查询和复进行查询和复位位复位信号,低电平有效;复位信号,低电平有效;使使DSP终止程序执行并且使程序计终止程序执行并且使程序计数器指向数器指向FF8000h处。当引脚电平处。当引脚电平为高时,从程序存储器为高时,从程序存储器FF8000h地地址处开始执行;址处开始执行;影响寄存器和状态位;影响寄存器和状态位;此引脚需要外接上拉电阻此引脚需要外接上拉电阻3. 位输入位输入/输出信号输出信号lGPIO7:6,4:0lXF

34、可以配置为输入口或输出口;可以配置为输入口或输出口;当配置为输出引脚时,可以单独当配置为输出引脚时,可以单独置位或者复位;置位或者复位;在复位时,被配置为输入引脚;在复位时,被配置为输入引脚;复位完成后,在片复位完成后,在片bootloader采样采样GPIO3:0 决定启动方式。决定启动方式。为输出信号,用于配置其它处理器的复用为输出信号,用于配置其它处理器的复用状态或者作为通用输出引脚;状态或者作为通用输出引脚;指令指令BSET XF可以使可以使XF输出电平为高;输出电平为高;指令指令BCLR XF 可以使可以使XF输出电平为低;输出电平为低;加载加载ST1. XF位可以控制位可以控制XF

35、输出电平。输出电平。4.振荡器振荡器/时钟信号时钟信号lCLKOUTlX2/CLKINl X1l TIN/TOUT0 时钟输出引脚;时钟输出引脚;CLKOUT 周期为周期为CPU的机的机器周期;器周期;当当/OFF为低电平时,为低电平时,CLKOUT呈高阻状态呈高阻状态时钟振荡器输入引脚;时钟振荡器输入引脚;若使用内部时钟,用来外接若使用内部时钟,用来外接晶体电路;晶体电路;若使用外部时钟,该引脚接若使用外部时钟,该引脚接外部时钟输入。外部时钟输入。由内部系统振荡器到晶体的输出引脚;由内部系统振荡器到晶体的输出引脚;若不使用内部振荡器时,若不使用内部振荡器时,X1引脚悬空;引脚悬空;当当/OF

36、F为低,为低,X1不会处于高阻状态不会处于高阻状态定时器定时器T0 输入输入/输出;输出;当作为定时器当作为定时器T0的输出时的输出时, 计数器减计数器减少到少到0,TIN/TOUT0 信号输出一个脉信号输出一个脉冲或者状态发生改变;冲或者状态发生改变;当作为输入时,当作为输入时,TIN/TOUT0为内部定为内部定时器模块提供时钟;时器模块提供时钟;复位时,此引脚配置为输入引脚。复位时,此引脚配置为输入引脚。 只有定时器只有定时器0 信号可以输出。信号可以输出。定时器定时器T1信号不能提供输出。信号不能提供输出。5.实时时钟实时时钟lRTCINX1u实时时钟振荡器输入。实时时钟振荡器输入。lR

37、TCINX2u实时时钟振荡器输出。实时时钟振荡器输出。6. I2C总线总线lSDAuI2C (双向双向) 数据信号数据信号u复位时,此引脚处于高阻状态。复位时,此引脚处于高阻状态。lSCLuI2C (双向双向) 时钟信号时钟信号u复位时,此引脚处于高阻状态。复位时,此引脚处于高阻状态。7. McBSP接口接口 VC5509A共有共有3个个McBSP接口,其中接口,其中McBSP1与与McBSP2为为多功能口。多功能口。lCLKR0lDR0lFSR0lCLKX0lDX0lFSX0McBSP0串行接收器的串行移位时钟串行接收器的串行移位时钟McBSP0数据接收信号数据接收信号McBSP0接收帧同步

38、信号,初始化接收帧同步信号,初始化DR0的数据接收的数据接收McBSP0发送时钟信号,为串行发送器的发送时钟信号,为串行发送器的串行发送时钟。串行发送时钟。McBSP0数据发送信号。数据发送信号。McBSP0发送帧同步信号,初始化发送帧同步信号,初始化DX0的的数据发送。数据发送。lS10lS11lS12lS13lS14lS15McBSP1 接收时钟信号或者接收时钟信号或者MMC/SD1的命令的命令/响响应信号应信号; 复位时被配置为复位时被配置为McBSP1.CLKRMcBSP1 数据接收信号或者数据接收信号或者SD1的数据信号的数据信号1;复位时被配置为复位时被配置为McBSP1.DRMc

39、BSP1接收帧同步信号或者接收帧同步信号或者SD1的数据信号的数据信号2;复位时被配置为复位时被配置为McBSP1.FSRMcBSP1数据发送信号或者数据发送信号或者MMC/SD1串行时串行时钟信号钟信号; 复位时被配置为复位时被配置为McBSP1.DXMcBSP1发送时钟信号或发送时钟信号或MMC/SD1数据信号数据信号0; 复位时被配置为复位时被配置为McBSP1.CLKXMcBSP1发送帧同步信号或者发送帧同步信号或者SD1数据信号数据信号3;复位时被配置为复位时被配置为McBSP1.FSXlS20lS21lS22lS23lS24lS25McBSP2 接收时钟信号或者接收时钟信号或者MM

40、C/SD2的命令的命令/响响应信号应信号; 复位时被配置为复位时被配置为McBSP2.CLKRMcBSP2 数据接收信号或者数据接收信号或者SD2的数据信号的数据信号1;复位时被配置为复位时被配置为McBSP2.DRMcBSP2接收帧同步信号或者接收帧同步信号或者SD2的数据信号的数据信号2;复位时被配置为复位时被配置为McBSP2.FSRMcBSP2McBSP2数据发送信号或者数据发送信号或者MMC/SD2MMC/SD2串行时钟信串行时钟信号号; ; 复位时被配置为复位时被配置为McBSP2.DXMcBSP2.DXMcBSP2发送时钟信号或发送时钟信号或MMC/SD2数据信号数据信号0; 复

41、位时被配置为复位时被配置为McBSP2.CLKXMcBSP2发送帧同步信号或者发送帧同步信号或者SD2数据信号数据信号3;复位时被配置为复位时被配置为McBSP2.FSX8. USB接口接口lDPu差分数据接收差分数据接收/发送发送(正向正向)u复位时,此引脚配置为输入端复位时,此引脚配置为输入端lDNu差分数据接收差分数据接收/发送发送(负向负向)u复位时,此引脚配置为输入端复位时,此引脚配置为输入端lPU:上拉输出:上拉输出u用于上拉用于上拉USB模块需要的检测电阻模块需要的检测电阻u通过一个软件控制开关通过一个软件控制开关(USBCTL寄存器的寄存器的CONN位位),此引脚在,此引脚在V

42、C5509内部与内部与USBVDD连接连接9. A/D接口接口lAIN0:模拟输入通道模拟输入通道0lAIN1:模拟输入通道模拟输入通道1 注意:注意: VC5509A PGE有有2个个 10位位 A/D 接口接口; VC5509A BGA有有4个个 10位位 A/D 接口接口.10.测试测试/仿真引脚仿真引脚lTCK:IEEE 标准标准 1149.1 测试测试时钟时钟输入输入引脚。引脚。lTDI:IEEE 标准标准1149.1测试测试数据数据输入输入信号。信号。lTDO:IEEE 标准标准1149.1测试测试数据数据输出输出信号。信号。lTMS:IEEE 标准标准1149.1测试测试方式方式

43、选择选择信号。信号。l/TRST:IEEE 标准标准1149.1测试复位信号。测试复位信号。lEMU0: 仿真器中断仿真器中断0引脚。引脚。lEMU1/OFF11.电源引脚电源引脚l 数字电源,数字电源,+1.6V,专为,专为CPU内核提供电源。内核提供电源。l 数字电源,数字电源,+3.3V,为,为I/O引脚提供电源。引脚提供电源。l 数字电源,数字电源,+3.3V,专为,专为USB 模块的模块的I/O引脚引脚(DP, DN和和PU)提供电源。)提供电源。l 数字电源,数字电源,+1.6V。专为。专为USB PLL提供电源。提供电源。l 数字电源,数字电源,+ 3.3V。专为。专为RTC模块

44、的模块的I/O引脚提供电引脚提供电源。源。l 数字电源,数字电源,+ 1.6V。专为。专为RTC模块提供电源。模块提供电源。l 数字地。数字地。l 模拟电源,专为模拟电源,专为10位位 A/D模块提供电源。模块提供电源。l 模拟地,模拟地,10位位 A/D内核部分接地引脚。内核部分接地引脚。l 模拟数字地,模拟数字地,10位位 A/D模块的数字部分接地引脚。模块的数字部分接地引脚。l 数字地,用于数字地,用于USB PLL。2.4 CPU寄存器寄存器lC55x的寄存器(见表的寄存器(见表2-8 )lC55x寄存器的映射地址及描述(见表寄存器的映射地址及描述(见表2-9 )2.4.1 概况概况

45、注意事项:注意事项: ST0_55、ST1_55和和ST3_55都有两个访问地址;都有两个访问地址; T3、RSA0L、REA0L和和SP有两个访问地址;有两个访问地址; 任何装入任何装入BRC1的指令将相同的值装入的指令将相同的值装入BRS1。 对于对于ST0_55、ST1_55和和ST3_55,对于其中一个地址,所有的对于其中一个地址,所有的C55x位均可位均可访问;在另外一个地址(称为保护地址)访问;在另外一个地址(称为保护地址),某些保护位不能被修改。保护地址是,某些保护位不能被修改。保护地址是为了提供对为了提供对C54x代码的支持,以便写入代码的支持,以便写入ST0、ST1以及以及P

46、MST(C54x对应对应ST3_55) 对于对于T3、RSA0L、REA0L和和SP,当使用当使用DP直接寻址方式访问存储器映直接寻址方式访问存储器映射寄存器时,将访问两个地址中更高的射寄存器时,将访问两个地址中更高的地址,即地址,即 T3=23H(不是(不是0EH);); RSA0L=3DH(不是(不是1BH);); REA0L=3FH(不是(不是1CH);); SP=4DH(不是(不是18H)表表2-8 寄存器总表(寄存器总表(1)缩 写名 称大小AC0AC3累加器0340位AR0AR7辅助寄存器0716位BK03,BK47,BKC循环缓冲区大小寄存器16位BRC0,BRC1块循环计数器0

47、和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

48、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-9 存储器映射寄存器(存储器映射寄存器(1) 表表2-9 存储器映射寄存器(存储器映射寄存器(2) 表表

49、2-9 存储器映射寄存器(存储器映射寄存器(3) 表表2-9 存储器映射寄存器(存储器映射寄存器(4) 表表2-9 存储器映射寄存器(存储器映射寄存器(5) 表表2-9 存储器映射寄存器(存储器映射寄存器(6) 表表2-9 存储器映射寄存器(存储器映射寄存器(7) 表表2-9 存储器映射寄存器(存储器映射寄存器(8) 表表2-9 存储器映射寄存器(存储器映射寄存器(9) 2.4.2 累加器(累加器(AC0AC3)lC55x的的CPU包括包括4个个40位的累加器位的累加器AC0、AC1、AC2、AC3lAC0、AC1、AC2、AC3等价。任何一条使用一个累加等价。任何一条使用一个累加器的指令,都

50、可以通过编程来使用器的指令,都可以通过编程来使用4个累加器中的任何一个累加器中的任何一个个l在在C54x兼容模式(兼容模式(C54CM=1)下,累加器)下,累加器AC0、AC1分分别对应于别对应于C54x里的累加器里的累加器A、B l 每个累加器分为低字(每个累加器分为低字(ACxL)、高字()、高字(ACxH) 和和8个个保护位(保护位(ACxG),用户可以使用访问存储器映射寄存器用户可以使用访问存储器映射寄存器的寻址方式,分别访问这的寻址方式,分别访问这3部分部分 2.4.3 变换寄存器变换寄存器TRN0、TRN1lC55x有有2个变换寄存器个变换寄存器TRN0、TRN1l用途:在用途:在

51、比较比较-选择选择-极值极值指令里使用指令里使用u比较两个累加器的高段字和低段字后,执行选择两比较两个累加器的高段字和低段字后,执行选择两个个16位极值的指令,以更新位极值的指令,以更新TRN0和和TRN1。比较累。比较累加器的高段字后更新加器的高段字后更新TRN0,比较累加器的低段字后,比较累加器的低段字后更新更新TRN1u在比较完两个累加器的全部在比较完两个累加器的全部40位后,执行选择一个位后,执行选择一个40位极值的指令,以更新被选中的变换寄存器位极值的指令,以更新被选中的变换寄存器(TRN0或或TRN1) 2.4.4 T寄存器(寄存器(T0-T3) l用途用途u存放乘法、乘加以及乘减

52、运算里的一个乘数存放乘法、乘加以及乘减运算里的一个乘数u存放存放D单元里加法、减法和装入运算的移位数单元里加法、减法和装入运算的移位数u用交换指令交换辅助寄存器(用交换指令交换辅助寄存器(AR0-AR7)和)和T寄存器寄存器中的内容时,跟踪多个指针值中的内容时,跟踪多个指针值u在在D单元单元ALU里作双里作双16位运算时,存放位运算时,存放Viterbi蝶形的蝶形的变换尺度变换尺度l CPU包括包括4个个16位通用位通用T寄寄存器:存器:T0、T1、T2、T32.4.5 用作数据地址空间和用作数据地址空间和I/O空间的寄存器空间的寄存器 表表2-10 用作数据地址空间和用作数据地址空间和I/O

53、空间的寄存器空间的寄存器1. 辅助寄存器(辅助寄存器(XAR0XAR7/AR0AR7)低字的作用:低字的作用: 用于用于ARAR间接寻址模间接寻址模式,以及双式,以及双ARAR间接寻址模式。间接寻址模式。 提供提供7 7位数据页内位数据页内的的1616位偏移量(形成一个位偏移量(形成一个2323位地址)位地址); ; 存放位地址存放位地址; ; 作为通用寄存作为通用寄存器或计数器。器或计数器。高高7 7位用于指定要访问数据位用于指定要访问数据空间的数据页空间的数据页访问属性:访问属性: XARn只能用专用指令访问; ARn可用专用指令访问,也可以作为存储器映射寄存器访问; ARnH不能单独访问

54、,必须通过访问XARn来访问ARnHlCPU在存储器中映射了一个系数数据指针(在存储器中映射了一个系数数据指针(CDP)和)和一个相关的扩展寄存器(一个相关的扩展寄存器(CDPH):):2. 系数数据指针(系数数据指针(XCDP/CDP)lCPU可以连接这个寄存器形成一个扩展系数数据指针可以连接这个寄存器形成一个扩展系数数据指针(XCDP)u高高7位(位(CDPH)用于指定要访问数据空间的数据页)用于指定要访问数据空间的数据页u低字(低字(CDP)用来作为)用来作为16位偏移量与位偏移量与7位数据页形成位数据页形成一个一个23位地址位地址 lXCDP或或CDP用在用在CDP间接寻址方式和系数间

55、接寻间接寻址方式和系数间接寻址方式中,址方式中,CDP可用于任何指令中访问一个单数据可用于任何指令中访问一个单数据空间值,在双空间值,在双MAC指令中,它还可以独立地提供第指令中,它还可以独立地提供第三个操作数。三个操作数。 表表2-12 XCDP的访问属性的访问属性 3. 循环缓冲区首地址寄存器循环缓冲区首地址寄存器lCPU有有5个个16位的循环缓冲区首地址寄存器:位的循环缓冲区首地址寄存器:BSA01,BSA23,BSA45,BSA67,BSACl作用:定义循环的首地址作用:定义循环的首地址l每个循环缓冲区首地址寄存器与一个或两个特殊的指每个循环缓冲区首地址寄存器与一个或两个特殊的指针相关

56、联针相关联4. 循环缓冲区大小寄存器循环缓冲区大小寄存器l三个三个16位的循环缓冲区大小寄存器(位的循环缓冲区大小寄存器(BK03,BK47,BKC)l 用途:指定循环缓冲区大小(最大为用途:指定循环缓冲区大小(最大为65535)l每个循环缓冲区大小寄存器与一个或四个特殊的指针相每个循环缓冲区大小寄存器与一个或四个特殊的指针相关联关联5.数据页寄存器(数据页寄存器(XDP/DP)lCPU在存储器中映射了一个数据页寄存器(在存储器中映射了一个数据页寄存器(DP)和一)和一个相关的扩展寄存器(个相关的扩展寄存器(DPH)lCPU连接这两个寄存器形成一个扩展数据页寄存器连接这两个寄存器形成一个扩展数

57、据页寄存器(XDP)uDPH指定要访问数据空间的指定要访问数据空间的7位数据页位数据页u低字(低字(DP)用来代表一个)用来代表一个16位偏移地址位偏移地址l用途:用途:u在基于在基于DP的直接寻址方式中,的直接寻址方式中,XDP指定指定23位地址位地址u在在k16绝对寻址方式中,绝对寻址方式中,DPH与一个与一个16位的立即数位的立即数连接形成连接形成23位地址位地址表表2-15 XDP寄存器的访问属性寄存器的访问属性6.外设数据页指针(外设数据页指针(PDP)l对于对于PDP直接寻址方式,直接寻址方式, 9位的外设数据页指针位的外设数据页指针(PDP)选择)选择64K字字I/O空间中的一个

58、空间中的一个128字页面字页面7.堆栈指针(堆栈指针(XSP/SP,XSSP/SSP)l有关堆栈指针有关堆栈指针u数据堆栈指针数据堆栈指针(SP)u系统堆栈指针系统堆栈指针(SSP)u相关扩展寄存器相关扩展寄存器(SPH)l当访问数据堆栈时,当访问数据堆栈时,CPU连接连接SPH和和SP形成一个扩展的形成一个扩展的堆栈指针(堆栈指针(XSP),指向最后压入数据堆栈的数据),指向最后压入数据堆栈的数据uSPH代表代表7位数据页位数据页uSP指向页中某个具体地址指向页中某个具体地址l当访问系统堆栈时,当访问系统堆栈时,CPU连接连接SPH和和SSP形成一个扩展形成一个扩展的堆栈指针(的堆栈指针(X

59、SSP),指向最后压入系统堆栈的数据),指向最后压入系统堆栈的数据表表2-16 堆栈指针的访问属性堆栈指针的访问属性2.4.6 程序流寄存器(程序流寄存器(PC、RETA、CFCT)l程序流寄存器(程序流寄存器(3个)个)寄存器描 述PC24位的程序计数器。存放I单元里解码的16字节代码的地址.当CPU执行中断或调用子程序时,当前的PC值(返回地址)存起来,然后把新的地址装入PC。当CPU从中断服务或子程序返回时,返回地址重新装入PCRETA返回地址寄存器。如果所选择的堆栈配置使用快速返回,则在执行子程序时,RETA就作为返回地址的暂存器。RETA和CFCT一起,高效执行多层嵌套的子程序。可用

60、专门的32位装入和存储指令,成对地读写RETA和CFCTCFCT控制流关系寄存器。CPU保存有激活的循环记录(循环的前后关系)。如果选择的堆栈配置使用快速返回,则在执行子程序时,CFCT就作为8位循环关系的暂存器。RETA和CFCT一起,高效执行多层嵌套的子程序。可用专门的32位 装入和存储指令,成对地读写RETA和CFCT lCFCT寄存器寄存器 CPU由内部位按照一定规则来存放循环的前后关系,即由内部位按照一定规则来存放循环的前后关系,即子程序里循环的状态(激活和未激活)子程序里循环的状态(激活和未激活)u当当CPU执行中断或调用子程序时,循环关系位就存执行中断或调用子程序时,循环关系位就

61、存放在放在CFCT里里u当当CPU从中断或调用子程序返回时,循环关系位就从中断或调用子程序返回时,循环关系位就从从CFCT恢复恢复表表2-18 CFCT各位的含义各位的含义2.4.7 中断管理寄存器中断管理寄存器表表2-19 中断管理寄存器中断管理寄存器 1.中断向量指针(中断向量指针(IVPD,IVPH)lDSP中断向量指针(中断向量指针(IVPD)l主机中断向量指针(主机中断向量指针(IVPH)16位,指向位,指向256字节的程序字节的程序空间中的中断向量表(空间中的中断向量表(IV0IV15和和IV24IV31),),这些中断向量供这些中断向量供DSP专用专用16位,指向位,指向256字

62、节的程序字节的程序空间中的中断向量表空间中的中断向量表(IV16 IV23),这些中),这些中断向量供断向量供DSP和主机共享使和主机共享使用用 说明明:如果如果IVPDIVPD和和IVPHIVPH的值相同,所有中断向量可能占有相同的的值相同,所有中断向量可能占有相同的256256字节大小的程序空间;字节大小的程序空间;DSPDSP硬件复位时,硬件复位时,IVPDIVPD和和IVPHIVPH都被装入到都被装入到FFFFHFFFFH地址处;地址处;IVPDIVPD和和IVPHIVPH均不受软复位的影响均不受软复位的影响 表表2-20 中断向量地址中断向量地址 在修改在修改IVPIVP之前应确保:

63、之前应确保:INTM=1INTM=1,即所有可屏蔽中断不能响应。,即所有可屏蔽中断不能响应。每个硬件不可屏蔽中断对于原来的每个硬件不可屏蔽中断对于原来的IVPDIVPD和修改后的和修改后的IVPDIVPD都有一个中断向量和中断服务程序。都有一个中断向量和中断服务程序。由由1616位的中断向量指针加上一个位的中断向量指针加上一个5 5位的中断编号后左移位的中断编号后左移3 3位组成一个位组成一个2424位的中断地址。位的中断地址。 2. 中断标志寄存器(中断标志寄存器(IFR0,IFR1)表表2-21 中断标志寄存器中断标志寄存器IFR1表表2-22 中断标志寄存器中断标志寄存器IFR0l16位

64、的中断标志寄存器IFR0和IFR1包括所有可屏蔽中断的标志位l当一个可屏蔽中断向CPU提出申请时,IFR中相应的标志位置1,等待CPU应答中断l可以通过读IFR标志已发送申请的中断,或写1到IFR相应的位撤销中断申请,即写入1清相应位为0l中断被响应后将相应位清0,器件复位将所有位清03.中断使能寄存器(中断使能寄存器(IER0,IER1)表表2-23 中断使能寄存器中断使能寄存器IER1表表2-24 中断使能寄存器中断使能寄存器IER0 l通过设置IER0、IER1的位为u 1 ,打开相应的可屏蔽中断u 0 ,关闭相应的可屏蔽l上电复位时,将所有IER位清0。lER0、IER1不受软件复位指

65、令和DSP热复位的影响,在全局可屏蔽中断使能(INTM=1)之前应初始化它们。4. 调试中断使能寄存器(调试中断使能寄存器(DBIER0,DBIER1)l仅当仅当CPU工作在工作在 实时实时 仿真模式仿真模式 调试调试 暂停暂停 时,这两个时,这两个16位的调试中断使能寄存器才会位的调试中断使能寄存器才会使用使用l如果如果CPU工作在实时方式下,工作在实时方式下,DBIER0、DBIER1将被忽略将被忽略2.4.8 循环控制寄存器循环控制寄存器l单循环指令可以重复执行一个单周期指令或并行执行单循环指令可以重复执行一个单周期指令或并行执行两个单周期指令,重复次数两个单周期指令,重复次数N被装在被

66、装在RPTC中,指令中,指令将被重复执行将被重复执行N+1次。次。l在一些无条件单指令循环操作中,可以使用在一些无条件单指令循环操作中,可以使用CSR设置设置重复次数。重复次数。1.1.单指令循环控制单指令循环控制寄存器(寄存器(RPTC,CSR)2.块循环寄存器(块循环寄存器(BRC0,BRC1,BRS1,RSA0,RSA1,REA0,REA1)l块循环指令可以实现块循环指令可以实现2级嵌套,一个块循环(级嵌套,一个块循环(1级)嵌套在另级)嵌套在另一个块循环(一个块循环(0级)内部级)内部l当当C54CM=0,即工作在,即工作在C55x方式下,才实现方式下,才实现2级嵌套级嵌套u当无循环嵌

67、套时,当无循环嵌套时,CPU使用使用0级寄存器级寄存器u当出现循环嵌套时,当出现循环嵌套时,CPU对于对于1级嵌套使用级嵌套使用1级寄存器级寄存器l当当C54CM=1,即工作在,即工作在C54x方式下方式下u只能使用只能使用0级寄存器,通过借助块重复标志寄存器级寄存器,通过借助块重复标志寄存器(BRAF)完成嵌套)完成嵌套表表2-25 块循环寄存器块循环寄存器2.4.9 状态寄存器状态寄存器ST0_55 ST0_55(以及(以及ST1_55和和ST3_55)有)有两个访问地址。两个访问地址。 所有位都可以由第一个地址访问,所有位都可以由第一个地址访问,而在另一个地址(保护地址)里,加而在另一个

68、地址(保护地址)里,加黑部分不能修改;黑部分不能修改; 保护地址是为了支持把保护地址是为了支持把C54x的代的代码写入码写入ST0、ST1和和PMST1.累加器溢出标志(累加器溢出标志(ACOV0,ACOV1,ACOV2,ACOV3)l当累加器当累加器AC0、AC1、AC2或或AC3有数据溢出时有数据溢出时,相应的相应的ACOV0、ACOV1、ACOV2或或ACOV3被置被置1,直到发生以,直到发生以下任一事件:下任一事件:u复位复位uCPU执行条件跳转、调用、返回,或执行一条测试执行条件跳转、调用、返回,或执行一条测试ACOVx状态的指令状态的指令u被指令清被指令清0l溢出方式受溢出方式受M

69、40位的影响位的影响u当当M40=0时,溢出检测在第时,溢出检测在第31位,与位,与C54x兼容兼容u当当M40=1时,溢出检测在第时,溢出检测在第39位位2. 进位位(进位位(CARRY)l进位进位/借位的检测取决于借位的检测取决于M40位位u当当M40=0时,由第时,由第31位检测进位位检测进位/借位借位u当当M40=1时,由第时,由第39位检测进位位检测进位/借位借位l当当D单元单元ALU做加法运算时,若产生进位,则置位做加法运算时,若产生进位,则置位CARRY;如果不产生进位时,则将;如果不产生进位时,则将CARRY清清0例外:例外:使用以下语句(将使用以下语句(将Smem移动移动16

70、位),有进位时置位),有进位时置位位CARRY,无进位时不清,无进位时不清0。ADD Smem#16,ACx,ACyl当当D单元单元ALU做减法运算时做减法运算时u若产生借位,将若产生借位,将CARRY清清0。u如果不产生借位,则置位如果不产生借位,则置位CARRY。 例外例外:使用以下语句(将:使用以下语句(将Smem移动移动16位),有借位时位),有借位时 CARRY 清清0,无借位时,无借位时CARRY不变。不变。SUB Smem#16,ACx,ACylCARRY位可以被逻辑移位指令修改。对带符号移位指令位可以被逻辑移位指令修改。对带符号移位指令和循环移位指令,可以选择和循环移位指令,可

71、以选择CARRY位是否需要修改位是否需要修改l目的寄存器是累加器时,用以下指令修改目的寄存器是累加器时,用以下指令修改CARRY位,位,以指示计算结果以指示计算结果MIN src,dstMAX src,dstABSsrc,dstNEGsrc,dstl可以通过下面两条指令对可以通过下面两条指令对CARRY清零和置位:清零和置位:BCLR CARRY ;清零清零BSET CARRY ;置位置位3. DP位域位域lDP位域位域u占据占据ST0_55的第的第80位位u提供与提供与C54x兼容的数据页指针兼容的数据页指针lC55x有一个独立的数据页指针有一个独立的数据页指针DPuDP(157)的任何变化

72、都会反映在)的任何变化都会反映在ST0_55的的DP位位域上。域上。u基于基于DP的直接寻址方式,的直接寻址方式,C55x使用完整的数据页指针使用完整的数据页指针DP(150),因此不需要使用),因此不需要使用ST0_55的的DP位域。位域。l如果想装入如果想装入ST0_55,但不想改变,但不想改变DP位域的值,可以用位域的值,可以用OR或或AND指令。指令。l所有能影响一个测试所有能影响一个测试/控制位的指令,都可以选择影响控制位的指令,都可以选择影响TC1还是还是TC2lTCx或关于或关于TCx的布尔表达式,都可以在任何条件指令的布尔表达式,都可以在任何条件指令里用作触发器里用作触发器l可

73、以通过下面指令对可以通过下面指令对TCx置位和清零:置位和清零:BCLR TC1 ;TC1清零清零BSET TC1 ;TC1置位置位BCLR TC2 ;TC2清零清零BSET TC2 ;TC2置位置位4. 测试测试/控制位(控制位(TC1,TC2) 测试测试/ /控制位用于保存一些特殊指令的测试结果,使用控制位用于保存一些特殊指令的测试结果,使用要点如下:要点如下:2.4.10 状态寄存器状态寄存器ST1_55l如果如果C54CM=0C55x忽略忽略ASM,C55x移位指令在暂存寄存(移位指令在暂存寄存(T0T3)里指定累加器的移位值,或者直接在指令里用)里指定累加器的移位值,或者直接在指令里

74、用常数指定移位值。常数指定移位值。l如果如果C54CM=1 C55x以兼容方式运行以兼容方式运行C54x代码,代码,ASM用于给出某用于给出某些些C54x移位指令的移位值,移位范围移位指令的移位值,移位范围-1615。1. ASM位位l如果如果C54CM=0,C55x不使用不使用BRAF。l如果如果C54CM=1,C55x以兼容方式运行以兼容方式运行C54x代码,代码,BRAF用于指定或控制一个块循环操作的状态。用于指定或控制一个块循环操作的状态。u在由调用、中断或返回引起的代码切换过程中,都要在由调用、中断或返回引起的代码切换过程中,都要保存和恢复保存和恢复BRAF的值。的值。u当执行远程跳

75、转(当执行远程跳转(FB)或远程调用()或远程调用(FCALL)指令时,)指令时,BRAF自动清零。自动清零。2. BRAF位位l如果如果C54CM=0,C55x忽略忽略C16 指令本身决定是用单指令本身决定是用单32位操作还是双位操作还是双16位操作。位操作。l如果如果C54CM=1,C55x以兼容方式运行以兼容方式运行C54x代码,代码,C16会会影响某些指令的执行。影响某些指令的执行。u当当C16=0时,关闭双时,关闭双16位模式,位模式,D单元单元ALU执行一条指执行一条指令是以单令是以单32位操作(双精度运算)形式位操作(双精度运算)形式u当当C16=1时,打开双时,打开双16位模式

76、,位模式, D单元单元ALU执行一条指执行一条指令是以两个并行的令是以两个并行的16位操作(双位操作(双16位运算)形式位运算)形式3. C16位位l如果如果C54CM0,C55x CPU不支持不支持C54x代码代码l如果如果C54CM1,C55x的的CPU支持支持C54x编写的代码编写的代码u在使用在使用C54x代码时就必须置位该模式,所有代码时就必须置位该模式,所有C55x CPU的资源都可以使用的资源都可以使用u在移植代码时,可以利用在移植代码时,可以利用C55x增加的特性优化代码增加的特性优化代码4. C54CM位位l可用以下指令或伪指令来改变模式:可用以下指令或伪指令来改变模式:BC

77、LR C54CM ;清零清零C54CM(运行时)(运行时).C54CM_off ;告知汇编器告知汇编器C54CM0BSET C54CM ;置位置位C54CM(运行时)(运行时).C54CM_on ;告知汇编器告知汇编器C54CM1l如果如果CPL0,CPL决定选择决定选择DP直接寻址模式直接寻址模式l如果如果CPL1,CPL决定选择决定选择SP直接寻址模式直接寻址模式l可用以下指令和伪指令来改变寻址模式:可用以下指令和伪指令来改变寻址模式:BCLR CPL ;清零清零CPL(运行时)(运行时).CPL_off ;告知汇编器告知汇编器CPL0BSET CPL ;置位置位CPL(运行时)(运行时)

78、.CPL_on;告知汇编器告知汇编器CPL15. CPL位位l如果如果FRCT0,C55x打开小数模式。打开小数模式。 乘法运算的结果左乘法运算的结果左移一位进行小数点调整。两个带符号的移一位进行小数点调整。两个带符号的Q15制数相乘,得制数相乘,得到一个到一个Q31制数时,就要进行小数点调整。制数时,就要进行小数点调整。l如果如果FRCT1,C55x关闭小数模式。乘法运算的结果不关闭小数模式。乘法运算的结果不移位。移位。l可用下面的指令清零和置位可用下面的指令清零和置位FRCT:BCLR FRCT ;清零清零FRCTBSET FRCT ;置位置位FRCT6. FRCT位位l如果如果HM0,C

79、55x继续继续执行内部程序存储器的指令。执行内部程序存储器的指令。l如果如果HM1,C55x停止停止执行内部程序存储器的指令。执行内部程序存储器的指令。l可用下面的指令清零和置位可用下面的指令清零和置位HM:BCLR HM ;清零清零HMBSET HM ;置位置位HM7. HM位位当当DSPDSP得到得到HOLDHOLD信号时,会将外部接口总线置于高阻态。信号时,会将外部接口总线置于高阻态。根据根据HMHM的值,的值,DSPDSP也可以停止内部程序执行。也可以停止内部程序执行。l如果如果INTM0,C55x使能所有可屏蔽中断使能所有可屏蔽中断l如果如果INTM1,C55x禁止所有可屏蔽中断禁止

80、所有可屏蔽中断l使用使用INTM位需要注意的要点:位需要注意的要点:uINTM位能够全局使能或禁止可屏蔽中断,但是位能够全局使能或禁止可屏蔽中断,但是它对不可屏蔽中断无效。在使用它对不可屏蔽中断无效。在使用INTM位时,要位时,要使用状态位清零和置位指令来修改使用状态位清零和置位指令来修改INTM位。其位。其它能影响它能影响INTM位的,只有软件中断指令和软件位的,只有软件中断指令和软件置位指令置位指令。8. INTM位位uCPU响应中断请求时,自动保存响应中断请求时,自动保存INTM位。特别地,位。特别地,CPU把把ST1_55保存到数据堆栈时,保存到数据堆栈时,INTM位也被保存位也被保存

81、起来。起来。u执行中断服务子程序(执行中断服务子程序(ISR)之前,)之前,CPU自动置位自动置位INTM位,禁止所有的可屏蔽中断。位,禁止所有的可屏蔽中断。ISR可以通过清零可以通过清零INTM位,来重新开放可屏蔽中断。位,来重新开放可屏蔽中断。u中断返回指令,从数据堆栈恢复中断返回指令,从数据堆栈恢复INTM位的值。位的值。u在调试器实时仿真模式下,在调试器实时仿真模式下,CPU暂停时,忽略暂停时,忽略INTM位,位,CPU只处理临界时间中断。只处理临界时间中断。 l如果如果M400,D单元的计算模式选择单元的计算模式选择32位模式:位模式:u第第31位是符号位位是符号位u计算过程中的进位

82、取决于第计算过程中的进位取决于第31位位u由第由第31位判断是否溢出位判断是否溢出u饱和过程,饱和值是饱和过程,饱和值是00 7FFF FFFFh(正溢出)或(正溢出)或FF 8000 0000h(负溢出)(负溢出)u累加器和累加器和0的比较,用第的比较,用第310位来进行位来进行u可对整个可对整个32位进行移位和循环操作位进行移位和循环操作9. M40位位u累加器左移或循环移位时,从第累加器左移或循环移位时,从第31位移出位移出u累加器右移或循环移位时,移入的位插入到第累加器右移或循环移位时,移入的位插入到第31位位上上u对于累加器带符号位的移位对于累加器带符号位的移位如果如果SXMD0,则

83、累加器的保护位值要设为,则累加器的保护位值要设为0如果如果SXMD1,累加器的保护位要设为第,累加器的保护位要设为第31位位的值;对于累加器的任何循环移位或逻辑移位,的值;对于累加器的任何循环移位或逻辑移位,都要清零目的累加器的保护位都要清零目的累加器的保护位l如果如果M401,D单元的计算模式选择单元的计算模式选择40位的带符号移位模位的带符号移位模式:式:u第第39位是符号位位是符号位u计算过程中的进位取决于第计算过程中的进位取决于第39位位u由第由第39位判断是否溢出位判断是否溢出u饱和过程,饱和值是饱和过程,饱和值是7F FFFF FFFFh(正溢出)或(正溢出)或80 0000 00

84、00h(负溢出)(负溢出)u累加器和累加器和0的比较,用第的比较,用第390位来进行位来进行u可对整个可对整个40位进行移位和循环操作位进行移位和循环操作u累加器左移或循环移位时,从第累加器左移或循环移位时,从第39位移出位移出u累加器右移或循环移位时,移入的位插入到第累加器右移或循环移位时,移入的位插入到第39位上位上l如果如果SATD0,关闭,关闭D单元的饱和模式,不执行饱和模式单元的饱和模式,不执行饱和模式l如果如果SATD1,打开,打开D单元的饱和模式单元的饱和模式u如果如果D单元内的运算产生溢出,则结果值饱和单元内的运算产生溢出,则结果值饱和u饱和值取决于饱和值取决于M40位位M40

85、0,CPU的饱和值为的饱和值为00 7FFF FFFFh(正溢出)(正溢出)或或FF 8000 0000h(负溢出)(负溢出)M401,CPU的饱和值为的饱和值为7F FFFF FFFFh(正溢出)(正溢出)或或80 0000 0000h(负溢出)(负溢出)10. SATD位位l如果如果SXMD0,关闭,关闭D单元的符号扩展模式单元的符号扩展模式u对于对于40位的运算,位的运算,16位或更小的操作数都要补位或更小的操作数都要补0,扩展,扩展至至40位位u对于条件减法指令,任何对于条件减法指令,任何16位的除数都可以得到理想的位的除数都可以得到理想的结果结果u当当D单元的单元的ALU被局部配置为

86、双被局部配置为双16位模式时,位模式时,D单元单元ALU的高的高16位补零扩展至位补零扩展至24位。累加器值右移时,高段和低位。累加器值右移时,高段和低段的段的16位补零扩展位补零扩展u累加器带符号移位时,如果是一个累加器带符号移位时,如果是一个32位操作(位操作(M40=0),),累加器的保护位(第累加器的保护位(第3932位)填零位)填零u累加器带符号右移时,移位值补零扩展累加器带符号右移时,移位值补零扩展11. SXMD位位l如果如果SXMD1时,打开符号扩展模式:时,打开符号扩展模式:u对于对于40位的运算,位的运算,16位或更小的操作数,都要符号扩展位或更小的操作数,都要符号扩展至至

87、40位位u对于条件减法指令,对于条件减法指令,16位的除数必须是正数,其最高位位的除数必须是正数,其最高位(MSB)必须是)必须是0u当当D单元的单元的ALU局部配置为双局部配置为双16位模式时,位模式时,D单元单元ALU的高的高16位值带符号扩展至位值带符号扩展至24位。累加器右移时,高段和位。累加器右移时,高段和低段的低段的16位都要带符号扩展位都要带符号扩展u累加器带符号移位时,其值带符号扩展累加器带符号移位时,其值带符号扩展如果是一个如果是一个32位操作(位操作(M40=0),则将第),则将第31位的值,位的值,复制到累加器的保护位(第复制到累加器的保护位(第3932位)位)u累加器带

88、符号右移时,除非有限定符累加器带符号右移时,除非有限定符uns()表明它是表明它是无符号的,否则移位值都要被带符号扩展。对于无无符号的,否则移位值都要被带符号扩展。对于无符号运算(布尔逻辑运算、循环移位和逻辑移位运符号运算(布尔逻辑运算、循环移位和逻辑移位运算),不管算),不管SXMD的值是什么,输入的操作数都要的值是什么,输入的操作数都要被补零扩展至被补零扩展至40位。对于乘加单元位。对于乘加单元MAC里的运算,里的运算,不管不管SXMD值是多少,输入的操作数都要带符号扩值是多少,输入的操作数都要带符号扩展至展至17位。如果指令里的操作数是在限定符位。如果指令里的操作数是在限定符uns()里

89、,里,则不管则不管SXMD值是多少,都视为无符号的值是多少,都视为无符号的用下面的指令清零和置位SXMD: BCLR SXMD ;清零SXMD BSET SXMD ;置位SXMDlXF是通用的输出位,能用软件处理且可输出至是通用的输出位,能用软件处理且可输出至DSP引脚引脚l用下面的指令清零和置位用下面的指令清零和置位XF:BCLR XF ;清零清零XFBSET XF ;置位置位XF12. XF位位2.4.11 状态寄存器状态寄存器ST2_55lARnLC (n0、1、2、3、4、5、6、7)位决定)位决定ARn用作线性寻址还是循环寻址。用作线性寻址还是循环寻址。ARnLC0:线性寻址:线性寻

90、址ARnLC1:循环寻址:循环寻址1. AR0LCAR7LC位域位域l 用状态位清零用状态位清零/置位置位 指令来清零指令来清零/置位置位ARnLC。例例: BCLR AR3LC ;清零清零AR3LC BSET AR3LC ;置位置位AR3LCl如果如果ARMS0,辅助寄存器(,辅助寄存器(AR)间接寻址的)间接寻址的CPU模模式采用式采用DSP模式操作数,该操作数能有效执行模式操作数,该操作数能有效执行DSP专用专用程序。这些操作数里,有的在指针加程序。这些操作数里,有的在指针加/减时使用反向操作减时使用反向操作数。短偏移操作数不可用。数。短偏移操作数不可用。l如果如果ARMS1,辅助寄存器

91、(,辅助寄存器(AR)间接寻址的)间接寻址的CPU模模式采用控制模式操作数,该操作数能为控制系统的应用式采用控制模式操作数,该操作数能为控制系统的应用优化代码的大小。短偏移操作数优化代码的大小。短偏移操作数*ARn(short(#k3)可用。可用。其它偏移需要在指令里进行其它偏移需要在指令里进行2字节扩展,而这些有扩展的字节扩展,而这些有扩展的指令不能和其他指令并行执行。指令不能和其他指令并行执行。2. ARMS位位l用下面的指令和伪指令来改变模式:用下面的指令和伪指令来改变模式:BCLR ARMS ;清零清零ARMS(运行时)(运行时).ARMS_off ;告知编译器告知编译器ARMS0BS

92、ET ARMS ;置位置位ARMS(运行时)(运行时).ARMS_on ;编译器编译器ARMS1lCDPLC位决定系数数据指针(位决定系数数据指针(CDP)是用线性寻址)是用线性寻址(CDPLC0),还是循环寻址(),还是循环寻址(CDPLC位位1)l用下面的指令清零和置位用下面的指令清零和置位CDPLC:BCLR CDPLC ;清零清零CDPLCBSET CDPLC ;置位置位CDPLC3. CDPLC位位lDBGM位用于调试程序里有严格时间要求的部分位用于调试程序里有严格时间要求的部分u 如果如果DBGM0,使能该位,使能该位u 如果如果DBGM1,禁止该位。仿真器不能访问,禁止该位。仿真

93、器不能访问存储器和寄存器。软件断点仍然可以使存储器和寄存器。软件断点仍然可以使CPU暂停,暂停,但不会影响硬件断点或暂停请求但不会影响硬件断点或暂停请求4. DBGM位位l 为了保护流水,只能由状态位清零为了保护流水,只能由状态位清零/置位指令修改置位指令修改DBGM,其它指令都不会影响,其它指令都不会影响DBGM位:位:BCLR DBGM ;清零清零DBGMBSET DBGM ;置位置位DBGMl当当CPU响应一个中断请求时,会自动保护响应一个中断请求时,会自动保护DBGM位的位的状态。确切地说,当状态。确切地说,当CPU把把ST2_55保存到数据堆栈时,保存到数据堆栈时,DGBM位就被保存

94、起来位就被保存起来l执行一个中断服务子程序执行一个中断服务子程序(ISR)前,前,CPU自动置位自动置位DBGM,禁止调试。,禁止调试。ISR可以通过清零可以通过清零DBGM位,重位,重新使能调试新使能调试lEALLOW使能(使能(EALLOW0)或禁止()或禁止(EALLOW1)对)对非非CPU仿真寄存器的写访问仿真寄存器的写访问l当当CPU响应一个中断请求时,自动保存响应一个中断请求时,自动保存EALLOW位的状态。位的状态。确切地说,当确切地说,当CPU把把ST2_55保存到数据堆栈时,也就是保保存到数据堆栈时,也就是保存了存了EALLOW位位l执行一个中断服务子程序(执行一个中断服务子

95、程序(ISR)前,)前,CPU自动清自动清EALLOW位,禁止访问仿真寄存器。位,禁止访问仿真寄存器。ISR通过置位通过置位EALLOW位,可以位,可以重新开放对仿真寄存器的访问重新开放对仿真寄存器的访问l中断返回指令,从数据堆栈恢复中断返回指令,从数据堆栈恢复EALLOW位位5.EALLOW位位 在在D单元执行的一些指令里,单元执行的一些指令里,CPU将将rnd()括号里的操作数括号里的操作数取整。取整操作的类型取决于取整。取整操作的类型取决于RDM的值的值l如果如果RDM=0,CPU给给40位的操作数加上位的操作数加上8000h(即(即215),然后),然后CPU清零第清零第150位,产生

96、一个位,产生一个24位或位或16位的取位的取整结果整结果u若结果是若结果是24位的整数,只有第位的整数,只有第3916位是有意义的位是有意义的u若结果是若结果是16位的整数,只有第位的整数,只有第3116位是有意义的位是有意义的6. RDM位位l如果如果RDM=1,取整至最接近的整数。取整结果取决于取整至最接近的整数。取整结果取决于40位操作数的第位操作数的第150位:位:If(0=(位(位15-0)8000h) CPU 清零第清零第150位位 If(8000h(位(位15-0)10000h) CPU给该操作数加上给该操作数加上8000h,再清零第,再清零第150位位 If ((位(位15-0

97、)= =8000h) If (位(位31-16)是奇数)是奇数 CPU给该操作数加上给该操作数加上8000h,再清零第,再清零第150位位2.4.12 状态寄存器状态寄存器ST3_55 说明:说明: ST3_55的第的第118位位总是写作总是写作1100b(Ch)l检查是否已完成程序检查是否已完成程序cache清零清零uCACLR0:已经完成。清零过程完成时:已经完成。清零过程完成时, cache硬件硬件清零清零CACLR位位uCACLR1:未完成。所有的:未完成。所有的cache块无效块无效l清零清零cache所需的时间周期数取决于存储器的结构所需的时间周期数取决于存储器的结构l当当cach

98、e清零后,指令缓冲器单元里的预取指令队列的内清零后,指令缓冲器单元里的预取指令队列的内容会自动清零容会自动清零1. CACLR位位l使能或禁止程序使能或禁止程序cacheuCAEN0:禁止。:禁止。cache控制器不接收任何程序要求控制器不接收任何程序要求,所有的程序要求都由片内存储器或片外存储器(根据解所有的程序要求都由片内存储器或片外存储器(根据解码的地址而定)来处理。码的地址而定)来处理。uCAEN1:使能。依据解码的地址,可以从:使能。依据解码的地址,可以从cache、片、片内存储器或片外存储器提取程序代码。内存储器或片外存储器提取程序代码。l当清零当清零CAEN位禁止位禁止cache

99、时,时,I单元的指令缓冲队列的内单元的指令缓冲队列的内容会自动清零容会自动清零2. CAEN位位lCAFRZ能锁定程序能锁定程序cacheuCAFRZ0 :cache工作在默认操作模式工作在默认操作模式uCAFRZ1 :cache被冻结(其内容被锁定)。没有访被冻结(其内容被锁定)。没有访问该问该cache时,它的内容不会更改,但被访问时仍然可时,它的内容不会更改,但被访问时仍然可用。用。cache内容一直保持不变,直到内容一直保持不变,直到CAFRZ位清零位清零3. CAFRZ位位l检测到一个内部总线错误时,置位检测到一个内部总线错误时,置位CBERR。该错误使。该错误使CPU在中断标志寄存

100、器在中断标志寄存器1(IFR1)里置位总线错误中断标志)里置位总线错误中断标志BERRINTFl对对CBERR位写位写1无效。该位只在发生内部总线错误时才为无效。该位只在发生内部总线错误时才为1。l总线错误的中断服务子程序,返回控制中断程序的代码以前,总线错误的中断服务子程序,返回控制中断程序的代码以前,必须清零必须清零CBERR。4. CBERR位位l当当CLKOFF1,CLKOUT引脚的输出被禁止,且引脚的输出被禁止,且保持高电平保持高电平l用下面的指令清零和置位用下面的指令清零和置位CLKOFF:BCLR CLKOFF ;清零清零CLKOFFBSET CLKOFF ;置位置位CLKOFF

101、5. CLKOFF位位l用用HINT位通过主机接口,发送一个中断请求给主机处理位通过主机接口,发送一个中断请求给主机处理器。器。l先清零,然后再给先清零,然后再给HINT置位,产生一个低电平有效的中置位,产生一个低电平有效的中断脉冲:断脉冲:BCLR HINT ;清零清零HINTBSET HINT ;置位置位HINT6. HINT位位lMPNMC位使能或禁止片上位使能或禁止片上ROMuMPNMC0:微计算机模式。使能片上:微计算机模式。使能片上ROM,可以在,可以在程序空间寻址。程序空间寻址。uMPNMC1:微处理器模式。禁止片上:微处理器模式。禁止片上ROM,不映射,不映射在程序空间里。在程

102、序空间里。lMPNMC的改变,反映复位过程中的改变,反映复位过程中MP/MC引脚的逻辑电平引脚的逻辑电平(高电平(高电平1,低电平,低电平0)u仅在复位时才对仅在复位时才对MP/MC引脚采样。引脚采样。u软件中断指令不影响软件中断指令不影响MPNMC7. MPNMC位位lSATA决定决定A单元单元ALU的溢出结果是否饱和的溢出结果是否饱和uSATA0:关闭。不执行饱和:关闭。不执行饱和uSATA1:打开。如果:打开。如果A单元的单元的ALU里的计算产生里的计算产生溢出,则结果饱和至溢出,则结果饱和至7FFFh(正向饱和)或(正向饱和)或8000h(负向饱和)(负向饱和)8. SATA位位lSM

103、UL位打开或关闭乘法的饱和模式位打开或关闭乘法的饱和模式u如果如果SMUL0:关闭。:关闭。u如果如果SMUL1:打开。:打开。在在SMUL1、FRCT1且且SATD1的情况下,的情况下,8000h与与8000h相乘的结果饱和至相乘的结果饱和至7FFF FFFFh(不受(不受M40位的影响)。这样,两个负数的乘积就位的影响)。这样,两个负数的乘积就是一个正数。是一个正数。对于乘加对于乘加/减指令,在乘法之后、加法减指令,在乘法之后、加法/减法以前,减法以前,执行饱和运算执行饱和运算9. SMUL位位lC54CM0,CPU忽略忽略SST,仅用指令判断是否产生饱和,仅用指令判断是否产生饱和lC54

104、CM1,在,在C54x兼容模式下,兼容模式下,SST打开或关闭饱和打开或关闭饱和-存储模式存储模式uSST将影响一些累加器将影响一些累加器-存储指令的执行。存储指令的执行。SST1时,时,在存储之前,在存储之前,40位的累加器值要饱和为一个位的累加器值要饱和为一个32位的值。位的值。如果累加器值要移位,则如果累加器值要移位,则CPU执行移位后饱和。执行移位后饱和。10. SST位位u对于受对于受SST位影响的指令,位影响的指令,CPU在存储一个移位后或在存储一个移位后或未移位的累积器值以前,对其进行饱和运算。是否饱和未移位的累积器值以前,对其进行饱和运算。是否饱和取决于符号扩展模式位(取决于符

105、号扩展模式位(SXMD):): SXMD0:一个:一个40位的数看作无符号数。如果该位的数看作无符号数。如果该数值大于数值大于00 7FFF FFFFh,则,则CPU对其进行饱和运算,对其进行饱和运算,结果为结果为7FFF FFFFh SXMD1:一个:一个40位的数看作有符号数。位的数看作有符号数。如果该数值小于如果该数值小于00 8000 0000h,则,则CPU产生一产生一个个32位的结果位的结果8000 0000h。如果该数大于如果该数大于00 7FFF FFFFh,则,则CPU产生的结产生的结果为果为7FFF FFFFh。2.6 堆栈操作堆栈操作n数据堆栈和系统堆栈数据堆栈和系统堆栈

106、n堆栈配置堆栈配置n快返回与慢返回快返回与慢返回lC55x支持两个支持两个16位堆栈,即数据堆栈和系统堆栈位堆栈,即数据堆栈和系统堆栈l访问数据堆栈时,访问数据堆栈时,CPU将将SPH和和SP连接成连接成XSPuXSP包含了一个最后推入数据堆栈的包含了一个最后推入数据堆栈的23位地址,其位地址,其中中SPH里是里是7位的主数据页,位的主数据页,SP指向该页上的一个指向该页上的一个字。字。uCPU在每推入一个值入堆栈前,减小在每推入一个值入堆栈前,减小SP值;从堆栈值;从堆栈弹出一个值以后,增加弹出一个值以后,增加SP值。在堆栈操作中,值。在堆栈操作中,SPH的值不变。的值不变。2.6.1 数据

107、堆栈和系统堆栈数据堆栈和系统堆栈图图2-34 XSP和和XSSPl访问系统堆栈时访问系统堆栈时CPU将将SPH和和SSP连接成连接成XSSP。uXSSP包含了一个最后推入系统堆栈的值的地址包含了一个最后推入系统堆栈的值的地址uCPU在每推入一个值进堆栈前,减小在每推入一个值进堆栈前,减小SSP值;从堆值;从堆栈弹出一个值以后,增加栈弹出一个值以后,增加SSP值。在堆栈操作中,值。在堆栈操作中,SPH的值不变的值不变表表2-29 堆栈指针寄存器堆栈指针寄存器lSSP可以与可以与SP关联,也可以独立于关联,也可以独立于SPu如果选择如果选择32位堆栈配置,则修改位堆栈配置,则修改SSP与与SP的方

108、法的方法一样一样u如果选择双如果选择双16位堆栈配置,则位堆栈配置,则SSP与与SP独立,独立,SSP只有在自动环境切换时才能被修改只有在自动环境切换时才能被修改2.6.2 堆栈配置堆栈配置lC55x提供了提供了3种可能的堆栈配置种可能的堆栈配置u一种配置使用快返回过程一种配置使用快返回过程u另外两种使用慢返回过程另外两种使用慢返回过程l通过给通过给32位复位向量的第位复位向量的第29、28位填入适当值,可以位填入适当值,可以选择一种堆栈配置方式选择一种堆栈配置方式l复位向量的低复位向量的低24位就是复位中断服务子程序(位就是复位中断服务子程序(ISR)的起始地址的起始地址表表2-30 堆栈配

109、置堆栈配置l快返回与慢返回过程的区别在于快返回与慢返回过程的区别在于CPU怎样保存和恢复两怎样保存和恢复两个内部存储器(即程序计数器个内部存储器(即程序计数器PC和一个循环现场寄存器)和一个循环现场寄存器)的值的值uPC装的是装的是I单元里单元里16个字节代码的个字节代码的24位地址位地址u一个一个8位的循环现场(位的循环现场(loop context)寄存器存放激)寄存器存放激活循环记录活循环记录CPU执行中断或调用时,保存当前的循环现场,然执行中断或调用时,保存当前的循环现场,然后清零该寄存器,为新的子程序创建循环现场。当后清零该寄存器,为新的子程序创建循环现场。当CPU从子程序返回时,再

110、在该寄存器恢复原来的循从子程序返回时,再在该寄存器恢复原来的循环现场。环现场。l在快返回过程里在快返回过程里u返回地址保存在寄存器返回地址保存在寄存器RETA中中u循环现场保存在寄存器循环现场保存在寄存器CFCT中中u用专门的用专门的32位装入和存储指令可同时读位装入和存储指令可同时读/写写RETA 和和CFCTl在慢返回过程里,返回地址和循环现场保存在堆栈里在慢返回过程里,返回地址和循环现场保存在堆栈里(在存储器里),当(在存储器里),当CPU从子程序返回时,这些数据从子程序返回时,这些数据的恢复速度取决于访问存储器的速度的恢复速度取决于访问存储器的速度图图2-35 返回地址和循环现场的慢返

111、回过程返回地址和循环现场的慢返回过程Routine 0是最高层子程序,是最高层子程序,Routine 1嵌套在嵌套在Routine 0里,里,Routine 2嵌套在嵌套在Routine 1里里图图2-36 快返回过程中快返回过程中RETA 和和CFCT的使用的使用2.7 中断和复位操作中断和复位操作n中断概述中断概述n中断向量与优先级中断向量与优先级n可屏蔽中断可屏蔽中断n不可屏蔽中断不可屏蔽中断n硬件复位硬件复位n软件复位软件复位l中断定义中断定义:由硬件或软件驱动的信号,使由硬件或软件驱动的信号,使DSP将将当前的程序挂起,执行另一个称为中断服务子当前的程序挂起,执行另一个称为中断服务子

112、程序(程序(ISR)的任务。)的任务。lC55x支持支持32个个ISR。有些。有些ISR可以由软件或硬可以由软件或硬件触发,有些只能由软件触发。件触发,有些只能由软件触发。l当当CPU同时收到多个硬件中断请求时,同时收到多个硬件中断请求时,CPU会会按照预先定义的优先级对它们做出响应和处理。按照预先定义的优先级对它们做出响应和处理。2.7.1 中断概述中断概述l中断的分类中断的分类u可屏蔽中断:可以通过软件来加以屏蔽可屏蔽中断:可以通过软件来加以屏蔽u不可屏蔽中断:不能被屏蔽不可屏蔽中断:不能被屏蔽u所有的软件中断都是不可屏蔽中断所有的软件中断都是不可屏蔽中断l DSP处理中断的步骤处理中断的

113、步骤(1)接收中断请求。软件和硬件都要求)接收中断请求。软件和硬件都要求DSP将当前将当前程序挂起。程序挂起。(2)响应中断请求。)响应中断请求。CPU必须响应中断。如果是可必须响应中断。如果是可屏蔽中断,响应必须满足某些条件。如果是不可屏屏蔽中断,响应必须满足某些条件。如果是不可屏蔽中断,则蔽中断,则CPU立即响应。立即响应。(3)准备进入中断服务子程序。)准备进入中断服务子程序。CPU要执行的主要任务有:要执行的主要任务有:n完成当前指令的执行,并冲掉流水线上还未解码完成当前指令的执行,并冲掉流水线上还未解码的指令的指令n自动将某些必要的寄存器的值保存到数据堆栈和自动将某些必要的寄存器的值

114、保存到数据堆栈和系统堆栈系统堆栈n从用户实现设置好的向量地址获取中断向量,该从用户实现设置好的向量地址获取中断向量,该中断向量指向中断服务子程序中断向量指向中断服务子程序(4)执行中断服务子程序。)执行中断服务子程序。CPU执行用户编写的执行用户编写的ISR。ISR以一条中断返回指令结束,以一条中断返回指令结束,自动恢复步骤(自动恢复步骤(3)中自动保存的寄存器值。)中自动保存的寄存器值。 注意:注意: 外部中断只能发生在外部中断只能发生在CPUCPU退出复位后的至少退出复位后的至少3 3个周期个周期后,否则无效;后,否则无效; 在硬件复位后,不论在硬件复位后,不论INTMINTM位的设置和寄

115、存器位的设置和寄存器IER0IER0、IER1IER1的值如何,所有的中断都被禁止,直到通过软件的值如何,所有的中断都被禁止,直到通过软件初始化堆栈后才开放中断。初始化堆栈后才开放中断。2.7.2 中断向量与优先级中断向量与优先级l表表2-31是按是按ISR序号分类的中断向量。序号分类的中断向量。该表是该表是C55x中断向量的一般表示式。中断向量的一般表示式。l表表2-32是是VC5509A中断向量表。中断向量表。表表2-31 按按ISR序号分序号分类的中断向量类的中断向量表表2-32 VC5509A中断向量表中断向量表2.7.3 可屏蔽中断可屏蔽中断l可屏蔽中断可屏蔽中断u所有的可屏蔽中断都

116、是硬件中断。所有的可屏蔽中断都是硬件中断。u无论硬件何时请求一个可屏蔽中断,在一个中断标志寄存器里就无论硬件何时请求一个可屏蔽中断,在一个中断标志寄存器里就有相应的中断标志置位。该标志一旦置位,相应的中断还必须使有相应的中断标志置位。该标志一旦置位,相应的中断还必须使能,否则不会得到处理。能,否则不会得到处理。表表2-33 可屏蔽中断可屏蔽中断l用来开放可屏蔽中断的位和寄存器(表用来开放可屏蔽中断的位和寄存器(表2-34 )l处理可屏蔽中断标准过程的基本模型(图处理可屏蔽中断标准过程的基本模型(图2-37、表、表2-35 )l当当CPU在实时硬件仿真模式下暂停时,只能处理时间在实时硬件仿真模式

117、下暂停时,只能处理时间临界中断。处理时间临界中断的基本模型见图临界中断。处理时间临界中断的基本模型见图2-38表表2-34 用来开放可屏蔽中断的位和寄存器用来开放可屏蔽中断的位和寄存器图图2-37 可屏蔽中断的标准处理流程可屏蔽中断的标准处理流程表表2-35 可屏蔽中断的标准处理流程中的步骤可屏蔽中断的标准处理流程中的步骤 表表2-36 时间临界中断处理流程中的步骤时间临界中断处理流程中的步骤 图图2-38 时间临界中断的标准处理流程时间临界中断的标准处理流程 2.7.4 不可屏蔽中断不可屏蔽中断l当当CPU接收到一个不可屏蔽中断请求时,立即无条件响应,接收到一个不可屏蔽中断请求时,立即无条件

118、响应,并很快跳转到相应的中断服务子程序(并很快跳转到相应的中断服务子程序(ISR)lC55x的不可屏蔽中断有:的不可屏蔽中断有:u硬件中断硬件中断/RESET。如果引脚。如果引脚/RESET为低电平,则触发了一为低电平,则触发了一个个DSP硬件复位和一个中断(迫使执行复位硬件复位和一个中断(迫使执行复位ISR)。)。u硬件中断硬件中断/NMI。如果引脚。如果引脚/NMI为低电平,则为低电平,则CPU必须执行必须执行相应的相应的ISR。 /NMI提供了一种通用的无条件中断提供了一种通用的无条件中断DSP的硬的硬件方法。件方法。u软件中断。所有软件中断可用表软件中断。所有软件中断可用表2-37所示

119、的指令初始化。所示的指令初始化。表表2-37 初始化软中断的指令初始化软中断的指令 图图2-39 不可屏蔽中断的标准处理流程不可屏蔽中断的标准处理流程 注意:注意:如果中断是由如果中断是由TRAPTRAP指令初始化的,则在跳转到中断服务子指令初始化的,则在跳转到中断服务子程序的过程中,程序的过程中,INTMINTM位不受影响位不受影响2.7.5 硬件复位硬件复位l硬件复位后,硬件复位后,DSP处于一个已知状态:处于一个已知状态: 所有当前指令全部终止,指令流水清空,所有当前指令全部终止,指令流水清空,CPU寄存器寄存器复位(见表复位(见表2-38)。)。l然后然后CPU执行中断服务子程序,读复

120、位中断向量时,执行中断服务子程序,读复位中断向量时,CPU用用32位复位向量的第位复位向量的第29、28位来确定堆栈配置位来确定堆栈配置模式模式表表2-38 硬件复位对硬件复位对CPU寄存器的影响(寄存器的影响(1) 表表2-38 硬件复位对硬件复位对CPU寄存器的影响(寄存器的影响(2) 表表2-38 硬件复位对硬件复位对CPU寄存器的影响(寄存器的影响(3) 表表2-38 硬件复位对硬件复位对CPU寄存器的影响(寄存器的影响(4) 表表2-38 硬件复位对硬件复位对CPU寄存器的影响(寄存器的影响(5) 2.7.6 软件复位软件复位l软件复位只影响软件复位只影响IFR0、IFR1、ST0_55、ST1_55和和ST3_55l不影响其它寄存器不影响其它寄存器表表2-39 软件复位对软件复位对CPU寄存器的影响(寄存器的影响(1)表表2-39 软件复位对软件复位对CPU寄存器的影响(寄存器的影响(2)表表2-39 软件复位对软件复位对CPU寄存器的影响(寄存器的影响(3)

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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