第二章DSP入门教程TMS320LF240x教程之内部资源介绍_第1页
第二章DSP入门教程TMS320LF240x教程之内部资源介绍_第2页
第二章DSP入门教程TMS320LF240x教程之内部资源介绍_第3页
第二章DSP入门教程TMS320LF240x教程之内部资源介绍_第4页
第二章DSP入门教程TMS320LF240x教程之内部资源介绍_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章:章: TMS320LF240 x DSP内部资源介绍内部资源介绍2.1 TMS320LF240 x DSP的的CPU内部功能模块内部功能模块介绍介绍2.2 存储器和存储器和I/O空间空间2.3 系统配置系统配置2.4 程序控制程序控制 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍中央处理单元中央处理单元(CPU)输入定标器输入定标器乘法单元乘法单元中央算术逻辑单元中央算术逻辑单元 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍1、输入定标移位器、输入定标移位器是一个是一个16位到位到32位的滚动式位的滚动式左向移位器;左向移位器;能将输入的能

2、将输入的16位数据的位数据的015位在本周期内向左移位以位在本周期内向左移位以得到得到32位的输出;位的输出;本操作不需要额外的周期。本操作不需要额外的周期。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍移位器的输入来源移位器的输入来源数据读总线数据读总线(DRDB),该输入值来自指令该输入值来自指令操作数据所引用的操作数据所引用的数据存储单元;数据存储单元;程序读总线程序读总线(PRDB),该输入是指令操作该输入是指令操作数给出的常数。数给出的常数。移位量的来源移位量的来源嵌在指令字中的常数。嵌在指令字中的常数。把移位量放在指令字中,把移位量放在指令字中,该程序代码使用

3、特定的该程序代码使用特定的数据比例;数据比例;临时寄存器临时寄存器TREG的低的低4位。根据位。根据TREG的值移的值移位,数据的定标因子是位,数据的定标因子是动态确定的,可适应不动态确定的,可适应不同的系统要求同的系统要求。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍输入移位器的输出值输入移位器的输出值最低有效位最低有效位LSBs段填段填0;未使用的最高有效位未使用的最高有效位MSBs填填0或者根据状态寄存器或者根据状态寄存器ST1的的SXM位的值来确定是否需要进行符号扩展位的值来确定是否需要进行符号扩展 2.1 TMS320LF240 x DSP的CPU内部功能模块

4、介绍2、乘法器、乘法器1616位的硬件乘法位的硬件乘法器,在单个周期内产器,在单个周期内产生一个生一个32位乘积结果位乘积结果的有符号或无符号数;的有符号或无符号数;除了除了MPYU指令,所指令,所有的乘法指令都执行有的乘法指令都执行有符号的乘法操作。有符号的乘法操作。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍乘法器的输入乘法器的输入1 6 位 临 时 寄 存 器位 临 时 寄 存 器(TREG),在乘法之,在乘法之前把数据读总线的前把数据读总线的值加载到值加载到TREG;数据读总线的数据数据读总线的数据存储器值和程序读存储器值和程序读总线的程序存储器总线的程序存储器

5、值。值。乘法器的输出乘法器的输出两个输入值相乘后的两个输入值相乘后的32位结果保存在乘积寄存位结果保存在乘积寄存器器(PREG)中;中;PREG的输出连接到的输出连接到32位的乘积定标移位器,位的乘积定标移位器,通过移位器将乘积结果通过移位器将乘积结果送到送到CALU或数据存储或数据存储器。器。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍乘法定标移位器乘法定标移位器(PSCALE)输入输入:该移位器的:该移位器的32位输入连到位输入连到PREG的输出。的输出。输出输出:完成移位后,全部:完成移位后,全部32位送到位送到CALU,或将结果的,或将结果的16位存到数位存到数

6、据存储器。据存储器。移位模式移位模式:该移位器可用:该移位器可用4种移位模式,这些模式由状态寄存器种移位模式,这些模式由状态寄存器ST1的乘积移位方式的乘积移位方式(PM)位确定。位确定。注:注:PREG的内容保持不变,其值被复制到的内容保持不变,其值被复制到PSCALE中,进行移位。中,进行移位。PM移位移位说明说明00不移位不移位乘积结果没有移位地送到乘积结果没有移位地送到CALU单元或数据总线单元或数据总线01左移左移1位位移去在一次移去在一次2的补码乘法运算中产生的的补码乘法运算中产生的1位附加符号位,以得到一个位附加符号位,以得到一个Q31的乘积的乘积10左移左移4位位当与一个当与一

7、个13位的常数相乘时,移去在位的常数相乘时,移去在1613位的位的2的补码乘法运算中产生的的补码乘法运算中产生的4位附加符位附加符号位,以生成一个号位,以生成一个Q31的乘积的乘积11右移右移6位位对乘积结果进行定标,以使得运行对乘积结果进行定标,以使得运行128次的乘积累加器不会溢出次的乘积累加器不会溢出 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍乘法器相关指令及操作乘法器相关指令及操作用用LT指令将数据从数据总线载入指令将数据从数据总线载入TREG提供提供1操作数,操作数,MPY指令提指令提供第供第2个操作数或从数据总线上得到。个操作数或从数据总线上得到。使用使用M

8、PY指令时,可以对一个指令时,可以对一个13位的立即数进行操作,每两个指位的立即数进行操作,每两个指令周期得到一个乘积。令周期得到一个乘积。代码执行多路乘法和乘积求和运算时,代码执行多路乘法和乘积求和运算时,CPU支持流水线操作。支持流水线操作。指令指令操作操作LT把通过把通过CALU得到的前次乘积结果装载到得到的前次乘积结果装载到TREG,p131LTP把把PREG的值装载入的值装载入ACCLTA把把PREG的值加载到的值加载到ACCDMOV,LTD把把PREG的值加到的值加到ACC,移位,移位TREG输入数据到数据存储器的下一地址输入数据到数据存储器的下一地址LTS从从ACC中减去中减去P

9、REG的值的值 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍乘法器相关指令及操作乘法器相关指令及操作乘且累加并带动数据移动指令乘且累加并带动数据移动指令MAC和和MACD充分利用了乘法器的充分利用了乘法器的计算宽度,允许两个操作数被同时处理。计算宽度,允许两个操作数被同时处理。P146无符号乘法运算无符号乘法运算MPYU指令执行大大方便了用于扩展精度的算术运指令执行大大方便了用于扩展精度的算术运算。算。平行并累加前次乘积指令平行并累加前次乘积指令SQRA和平方并减去前次乘积指令和平方并减去前次乘积指令SQRS传送相同的数到乘法器的两个输入端,以对一个数据存储器单元的传送相

10、同的数到乘法器的两个输入端,以对一个数据存储器单元的值进行平方运算。值进行平方运算。p150存储乘积的高字节指令存储乘积的高字节指令SPH和低字节指令和低字节指令SPL,可将装入,可将装入PREG的的32位乘积结果传送到位乘积结果传送到CALU单元或数据存储器。单元或数据存储器。在执行中断服务程序前必须对在执行中断服务程序前必须对PREG的值进行保存。的值进行保存。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍3、中央算术逻辑部分、中央算术逻辑部分中 央 算 术 逻 辑 单 元中 央 算 术 逻 辑 单 元(CALU):实现各种算术、:实现各种算术、逻辑功能;逻辑功能;3

11、2位累加器位累加器(ACC):接收:接收来自来自CALU的输出,并可的输出,并可以根据进位位以根据进位位(C)的值来的值来实现移位;实现移位;输出移位器输出移位器:将:将ACC的高的高位字和低位字在送入数据位字和低位字在送入数据存储器之前进行移位。存储器之前进行移位。MUXACCHACCLCOutput shifter(32bits)CALUCentral arithmetic logicsection32321632323232输入移位器乘积移位器数据存储器 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍中央算术逻辑单元中央算术逻辑单元(CALU) 运算功能运算功能:16

12、位加、位加、16位减、布尔逻辑操作、位测试、移动位减、布尔逻辑操作、位测试、移动和循环。和循环。输入输入:一个由累加器提供,另一个由乘积定标移位器或输入:一个由累加器提供,另一个由乘积定标移位器或输入数据定标移位器提供。数据定标移位器提供。输出输出:其结果送至:其结果送至32位累加器,进行移位。位累加器,进行移位。相关状态位相关状态位:符号扩展模式位:符号扩展模式位SXM(ST1第第10位位)确定确定CALU是是否进行符号扩展。否进行符号扩展。SXM=0,抑制符号扩展;,抑制符号扩展;SXM=1,进行符,进行符号扩展。号扩展。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍

13、累加器累加器(ACC) 功能功能:对送到:对送到ACC的的CALU的运算结果进行单个移位和循环操作。的运算结果进行单个移位和循环操作。输入输入:CALU的运算结果。的运算结果。输出输出:ACC的高的高16位和低位和低16位中任何一个都可送到输出定标移位器,经位中任何一个都可送到输出定标移位器,经定标移位后存入数据存储器。定标移位后存入数据存储器。相关状态位相关状态位状态位状态位状态寄存器状态寄存器说明说明进位位进位位CST1第第9位位C=0:减结果产生借位减结果产生借位/加结果未产生进位;加结果未产生进位;C=1:加结果产生进位加结果产生进位/减结减结果未产生借位;左移或左循环,果未产生借位;

14、左移或左循环,ACC最高位送至最高位送至C,否则最低位送至,否则最低位送至C。溢出方式位溢出方式位OVMST0第第11位位决定决定ACC如何反映算术运算的溢出。如何反映算术运算的溢出。OVM=1:正溢出,正溢出,ACC填充最大填充最大正数,否则填充最大负数;正数,否则填充最大负数;OVM=0:正常溢出。正常溢出。溢出标志位溢出标志位OVST0第第12位位ACC未发生溢出时,未发生溢出时,OV=0;否则;否则OV=1且被莎存。且被莎存。测试测试/控制标志位控制标志位TCST1第第11位位根据被测试位的值,该位被置根据被测试位的值,该位被置0或或1。 2.1 TMS320LF240 x DSP的C

15、PU内部功能模块介绍输出定标移位器输出定标移位器 将累加器输出的内容左移将累加器输出的内容左移07位,移动位数由存位,移动位数由存储器指令指定,然后用储器指令指定,然后用SACH或或SACL指令将移位器中指令将移位器中的高位字或低位字保存到数据存储器中,的高位字或低位字保存到数据存储器中,ACC的内容的内容不变。不变。00F0F0A10F0F0F0F0A103216累加器输出移位器(左移4位)数据存储器位置00F0F0A128403C3C28403216累加器输出移位器(左移6位)数据存储器位置(b)(a) 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍4、辅助寄存器算术逻

16、辑单元、辅助寄存器算术逻辑单元(ARAU)在在CALU操作的同时执行操作的同时执行8个辅助寄存器个辅助寄存器(AR7AR0)上的算术运算。上的算术运算。8个辅助寄存器提供了灵活而有效的间接寻址。个辅助寄存器提供了灵活而有效的间接寻址。通过把数值通过把数值07写入状态寄存器写入状态寄存器ST0高高3位的辅助寄存位的辅助寄存器指针器指针(ARP),选择一个辅助寄存器作为当前,选择一个辅助寄存器作为当前AR。当前当前AR存放被访问的数据存储器的地址,根据指令存放被访问的数据存储器的地址,根据指令的需要分别向数据读的需要分别向数据读/写地址总线读写地址总线读/写数据,使用完写数据,使用完该数据后,当前

17、该数据后,当前AR的内容可以被的内容可以被ARAU增减,可实增减,可实现无符号现无符号16位算术运算。位算术运算。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍ARAU可执行的操作可执行的操作将辅助寄存器值增、减将辅助寄存器值增、减1,或者增、,或者增、减一个变址量减一个变址量(借助任何支持间接借助任何支持间接寻址的指令寻址的指令)。使辅助寄存器的值加使辅助寄存器的值加/减一个常数减一个常数(ADRK/SBRK指令指令),该常数是指,该常数是指令字的低令字的低8位。位。将将AR0的内容与当前的内容与当前AR的内容进的内容进行比较,并把结果放入状态寄存行比较,并把结果放入状

18、态寄存器器ST1的测试的测试/控制位控制位TC(CMPR指指令令)。结果经数据写总线。结果经数据写总线DWEB传传送到送到TC。辅助寄存器的用途辅助寄存器的用途数据存储器地址存储器;数据存储器地址存储器;通过通过CMPR指令,使辅指令,使辅助寄存器支持条件分支、助寄存器支持条件分支、调用及返回;调用及返回;用作暂存单元;用作暂存单元;用作软件计数器,按需用作软件计数器,按需要对其进行加、减。要对其进行加、减。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍5、状态寄存器、状态寄存器两个状态寄存器两个状态寄存器ST0和和ST1,含有各种状态和控制位;,含有各种状态和控制位;可

19、保存在数据存储器,也可从数据存储器加载,可可保存在数据存储器,也可从数据存储器加载,可以保存和恢复子程序的机器状态;以保存和恢复子程序的机器状态;加载状态寄存器加载状态寄存器LST指令写指令写ST0和和ST1,保存状态寄,保存状态寄存器存器SST指令读指令读ST0和和ST1;INTM位不受位不受LST指令的影响;指令的影响;寄存器中每一位均可由寄存器中每一位均可由SETC和和CLRC指令单独置位指令单独置位和清和清0。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍ARB辅助寄存器指针缓冲器辅助寄存器指针缓冲器:当:当ARP被加载到被加载到ST0,除了使用,除了使用LST指

20、令外,原有的指令外,原有的ARP值被复制到值被复制到ARB中;当通过中;当通过LST #1指令指令加载加载ARB时,把相同的值复制到时,把相同的值复制到ARP。ARP辅助寄存器指针辅助寄存器指针:ARP选择间接寻址时使用的当前选择间接寻址时使用的当前AR;当;当ARP被加载时,原有的被加载时,原有的ARP值被复制到值被复制到ARB寄存器中;寄存器中;ARP可由可由存储器相关指令改变,也可由存储器相关指令改变,也可由LARP、MAR和和LST指令改变;当指令改变;当执行执行LST #1时,时,ARP也可加载与也可加载与ARB相同的值。相同的值。 2.1 TMS320LF240 x DSP的CPU

21、内部功能模块介绍OV溢出标志位溢出标志位:该位锁存的值指出:该位锁存的值指出CALU是否发生了溢出;发生是否发生了溢出;发生溢出,溢出,OV=1,直到复位、溢出时条件转移、无溢出时条件转移,直到复位、溢出时条件转移、无溢出时条件转移或或LST指令执行时才被清指令执行时才被清0。OVM溢出方式位溢出方式位:该位决定如何管理:该位决定如何管理CALU的溢出。的溢出。SETC和和CLRC指令分别可将该位置指令分别可将该位置1或清或清0;LST指令也可修改该位;指令也可修改该位;OVM=0,ACC结果正常溢出;结果正常溢出;OVM=1,根据发生的溢出,把,根据发生的溢出,把ACC置为最大正值或负值。置

22、为最大正值或负值。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍CNF片内片内DARAM配置位配置位:CNF=0,可配置双口,可配置双口RAM被映射到数被映射到数据存储空间;据存储空间;CNF=1,可配置双口,可配置双口RAM被映射到程序;该位可被映射到程序;该位可通过通过SETC、CLRC和和LST指令修改;指令修改;RS复位时该位清复位时该位清0。TC测试测试/控制标志位控制标志位:TC=1,由,由BIT或或BITT指令测试位为指令测试位为1;利;利用用NORM指令测试时,指令测试时,ACC的的2个最高有效位个最高有效位“异或异或”为真;为真;CMPR所测试的当前所测

23、试的当前AR和和AR0之间的比较条件成立。之间的比较条件成立。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍INTM中断模式位中断模式位:该位用来允许或禁止所有可屏蔽中断。通过:该位用来允许或禁止所有可屏蔽中断。通过SETC和和CLRC指令置指令置1或清或清0;该位不影响不可屏蔽中断;该位不影响不可屏蔽中断RS和和NMI;LST指令不影响该位;发生中断及复位时置指令不影响该位;发生中断及复位时置1;INTM=0,允许全部没有被屏蔽的中断;允许全部没有被屏蔽的中断;INTM=1,禁止全部没有被屏蔽的,禁止全部没有被屏蔽的中断。中断。DP数据存储器页指针数据存储器页指针:当指

24、令使用直接寻址方式时,这个:当指令使用直接寻址方式时,这个9位的位的DP寄存器与指令寄存器的低寄存器与指令寄存器的低7位一起形成一个完整的数据存储器位一起形成一个完整的数据存储器16位地址。位地址。LST和和LDP指令可修改该字段。指令可修改该字段。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍SXM符号扩展模式位符号扩展模式位:SXM=1数据通过定标移位器传送到累加器时产生数据通过定标移位器传送到累加器时产生符号扩展,符号扩展,SXM=0抑制符号扩展;该位不影响某些指令的基本操作,如抑制符号扩展;该位不影响某些指令的基本操作,如ADDS指令不管指令不管SXM位的状态如何

25、都抑制符号扩展;通过位的状态如何都抑制符号扩展;通过SECT、CLRC和和LST指令对该位进行置指令对该位进行置1、清、清0和加载;复位时该位置和加载;复位时该位置1。C进位位进位位:C=1,加法结果产生进位或减法结果未产生借位;,加法结果产生进位或减法结果未产生借位;C=0,反之;,反之;移位移位16位的位的ADD指令只能使指令只能使C位置位置1,SUB指令只能使指令只能使C位清位清0,不会对,不会对C位产生其他影响;移位产生其他影响;移1位、循环指令、位、循环指令、SETC、CLRC和和LST指令均影响指令均影响该标志位;条件转移、调用和返回指令可根据该标志位;条件转移、调用和返回指令可根

26、据C的状态执行;复位时该的状态执行;复位时该位置位置1。 2.1 TMS320LF240 x DSP的CPU内部功能模块介绍XF引脚状态位引脚状态位:该位确定通用输出引脚:该位确定通用输出引脚XF的状态;通过的状态;通过SECT、CLRC和和LST指令对该位进行置指令对该位进行置1、清、清0和加载;复位时该位置和加载;复位时该位置1。PM乘积移位模式乘积移位模式:该位决定:该位决定PREG的值是送往的值是送往CALU或数据存储器时如或数据存储器时如何移位;何移位;SPM和和LST指令可以对该位加载;复位时该位清指令可以对该位加载;复位时该位清0。 PM=00,乘法器,乘法器32位乘积不经移位送

27、到位乘积不经移位送到CALU或数据存储器;或数据存储器; PM=01,送到,送到CALU之前,之前,PREG的输出左移的输出左移1位位(低位填低位填0); PM=10,送到,送到CALU之前,之前,PREG的输出左移的输出左移4位位(低位填低位填0); PM=11,PREG输出进行符号扩展右移输出进行符号扩展右移6位。位。注注:PREG的内容保持不变,其值被拷贝到乘积移位器中进行移位。的内容保持不变,其值被拷贝到乘积移位器中进行移位。 2.2 存储器和I/O空间增强的哈佛结构,三组并行总线增强的哈佛结构,三组并行总线程序地址总线程序地址总线(PAB)数据读地址总线数据读地址总线(DRAB)数据

28、写地址总线数据写地址总线(DWAB)四个可独立选择的空间四个可独立选择的空间程序存储器程序存储器(64K字字)局部数据存储器局部数据存储器(64K字字)全局数据存储器全局数据存储器(32K字字)I/O空间空间(64K字字)注意注意:LF240 x DSP的所有片内外设的寄存器均映射在的所有片内外设的寄存器均映射在数据存储器空间。数据存储器空间。 2.2 存储器和I/O空间1、程序存储器、程序存储器保存程序代码及数据表信保存程序代码及数据表信息和常量息和常量寻址范围为寻址范围为64K,包括片,包括片内内 D A R A M 和 片 内和 片 内FLASH访问片外程序地址空间时,访问片外程序地址空

29、间时,DSP自动产生一个访问外自动产生一个访问外部程序地址空间的信号部程序地址空间的信号PSLF2407的程序存储器空间映射图 2.2 存储器和I/O空间决定程序存储器的配置决定程序存储器的配置两个因素两个因素CNF位。位。CNF位是状态寄存器位是状态寄存器ST1的第的第12位,决定位,决定DARAM中的中的B0块块配置在数据存储器空间,还是配置在程序存储器空间。配置在数据存储器空间,还是配置在程序存储器空间。 CNF=0,256字的字的B0块被映射到数据存储器空间。块被映射到数据存储器空间。 CNF=1,256字的字的B0块被映射到程序存储器空间。块被映射到程序存储器空间。 复位时,复位时,

30、CNF0,B0块被映射到数据存储器空间。块被映射到数据存储器空间。MP/MC引脚。该引脚决定是从片内引脚。该引脚决定是从片内Flash读取指令读取指令,还是从外部程序还是从外部程序存储器读取指令。存储器读取指令。 MP/MC=0:微控制器方式。此时访问的是片内程序存储器(片内微控制器方式。此时访问的是片内程序存储器(片内Flash)0000h-7FFFh空间。空间。 MP/MC=1:微处理器方式。此时访问的是片外程序存储器的微处理器方式。此时访问的是片外程序存储器的0000h-7FFFh空间。空间。注注:无论:无论MP/MC引脚为何值,引脚为何值,LF240 xDSP都是从程序存储器空间都是从

31、程序存储器空间的的0000h单元开始执行程序。单元开始执行程序。 2.2 存储器和I/O空间2、数据存储器、数据存储器寻 址 范 围寻 址 范 围 6 4 K 字字 : 前前 3 2 K 字字(0000h-7FFFh)是内部数据存)是内部数据存储器空间储器空间,包括了包括了DARAM和片内和片内外设的映射寄存器;外设的映射寄存器;后后32K字字(8000h-FFFFh)空间的存储器)空间的存储器为外部数据存储器。为外部数据存储器。片内有片内有3个个DARAM块块:B0、B1和和B2块。块。B0块块:即可为数据存储器,即可为数据存储器,也可配置为程序存储器。也可配置为程序存储器。B1、B2块块:

32、只能配置为数据存储器。只能配置为数据存储器。LF2407的数据存储器空间映射图 2.2 存储器和I/O空间两种寻址方式:两种寻址方式:直接寻址直接寻址和和间接寻间接寻址址。直接寻址时,直接寻址时,128字为一页字为一页的数据块的数据块来对数据存储器进行寻址。来对数据存储器进行寻址。右图显右图显示了这些块是如何被寻址的示了这些块是如何被寻址的。全部全部64K的数据存储器分为的数据存储器分为512个数个数据页据页,其标号从,其标号从0-511。当前页由状。当前页由状态寄存器态寄存器ST0中的中的9位位数据页指针数据页指针(DP)值来确定值来确定。因此,当使用因此,当使用直接寻址直接寻址指令时,用指

33、令时,用户必须事先指定户必须事先指定数据页数据页,并在访问,并在访问数据存储器的指令中指定数据存储器的指令中指定偏移量偏移量,偏移量为偏移量为7位位。数据存储器页 2.2 存储器和I/O空间编程时要注意编程时要注意,访问下面的数据存储器的地址空间是访问下面的数据存储器的地址空间是非法的非法的,并,并会对会对NMI置位置位。除了以下地址,任何对外。除了以下地址,任何对外设寄存器映射中的设寄存器映射中的保留地址保留地址的访问也是的访问也是非法的非法的。 0080h-00FFh 701Fh-71FFh (CAN内部的内部的) 0500h-07FFh 7230h-73FFh (部分在部分在CAN内部内

34、部) 1000h-700Fh 7440h-74FFh 7030h-703Fh 7540h-75FFh 7060h-706Fh 7600h-77EFh 77F4h-7FFFh 7080h-708Fh 2.2 存储器和I/O空间第第0页数据地址映射页数据地址映射 数据存储器中包括数据存储器中包括存储器映射存储器映射寄存器寄存器,它们位于数据存储器的,它们位于数据存储器的第第0页页(地址(地址0000h-007Fh),下表是),下表是对第对第0页数据地址映射的详细说明。页数据地址映射的详细说明。应用中必须应用中必须注意以下几点注意以下几点:以零等待状态访问以零等待状态访问两个映射寄存器两个映射寄存器

35、:中断屏蔽寄存器(中断屏蔽寄存器(IMR)和和中断标中断标志寄存器(志寄存器(IFR)测试测试/仿真保留区仿真保留区被测试和仿真系被测试和仿真系统用于特定信息发送。因此统用于特定信息发送。因此不能对不能对测试测试/仿真地址进行操作仿真地址进行操作。地址地址名称名称描述描述0000h0003h保留保留0004hIMR中断屏蔽寄存器中断屏蔽寄存器0005h保留保留0006hIFR中断标志寄存器中断标志寄存器0023h0027h保留保留002Bh002Fh保留用作测试和仿真保留用作测试和仿真0060h007FhB2双口双口RAM(DARAM B2)第0页数据地址映射 2.2 存储器和I/O空间数据存

36、储器配置数据存储器配置 CNF位决定位决定B0块的配置,块的配置,CNF位是状态寄存器位是状态寄存器ST1的的第第12位。位。CNF0,B0块被映射为数据存储器空间;块被映射为数据存储器空间; 复位时,复位时,CNF0;CNF1,B0块被映射到程序存储器空间;块被映射到程序存储器空间; 2.2 存储器和I/O空间3、I/O空间空间寻址范围为寻址范围为64K字。字。I/O空间访问的空间访问的控制信号为控制信号为IS。所有所有64K的的I/O空间均可以用空间均可以用IN和和OUT指令指令来访问来访问。当执行。当执行IN或或OUT指令时,信号指令时,信号IS*变为有效变为有效,可作为外部可作为外部I

37、/O设备的片选信号。设备的片选信号。访问外部访问外部I/O端口与访问程序存储器、数据端口与访问程序存储器、数据存储器存储器复用相同的的地址总线和数据总线复用相同的的地址总线和数据总线。数据总线的宽度为数据总线的宽度为16位,位,若使用若使用8位的外设位的外设,即可使用即可使用高高8位位数据总线,也可使用数据总线,也可使用低低8位位数据总线,以适应特定应用的需要。数据总线,以适应特定应用的需要。当访问当访问片内片内的的I/O空间时,信号空间时,信号IS和和STRB变成无变成无效,外部地址和数据总线仅仅当访问外部效,外部地址和数据总线仅仅当访问外部I/O地地址时有效。址时有效。LF2407 I/O

38、空间地址映射图 2.2 存储器和I/O空间下面是使用汇编语言的直接访问下面是使用汇编语言的直接访问I/O空间的实际例子空间的实际例子:IN DAT2,0AFEEh;从端口地址为;从端口地址为AFEEh的外设的外设 ;读数据,并存入;读数据,并存入DAT2寄存器寄存器OUT DAT2,0CFEFh;输出数据存储器;输出数据存储器DAT2的内容的内容 ;到端口地址为;到端口地址为CFEFh的的外设外设下面是访问等待状态发生器的寄存器的实例:下面是访问等待状态发生器的寄存器的实例:IN DAT2,0FFFFh;从等待状态发生器读取数据到;从等待状态发生器读取数据到DAT2寄寄存器存器OUT DAT2

39、,0FFFFh;将;将DAT2寄存器的数据写入等待状态发寄存器的数据写入等待状态发生器,使用等待状态发生器生器,使用等待状态发生器 2.3 程序控制程序控制程序控制执行一个或多个指令块的次序调动执行一个或多个指令块的次序调动通常通常,程序是顺序执行的,器件执行这些连续程,程序是顺序执行的,器件执行这些连续程序存储器地址处的指令序存储器地址处的指令有时有时,程序必须转移到非顺序的地址并在新地址,程序必须转移到非顺序的地址并在新地址处开始顺序执行指令处开始顺序执行指令LF240 x DSP支持调用、返回和中断支持调用、返回和中断 2.4 程序控制1、程序地址的产生、程序地址的产生程序流程序流要求处

40、理器在执行当前指令的同时产生下一个程序地址要求处理器在执行当前指令的同时产生下一个程序地址(顺顺序或非顺序序或非顺序)LF240 x器件程序地址产生逻辑使用下列硬件:器件程序地址产生逻辑使用下列硬件: 程序计数器程序计数器(PC):16位位PC取址时对内部或外部程序存储器进行取址时对内部或外部程序存储器进行寻址。寻址。 程序地址寄存器程序地址寄存器(PAR):驱动程序地址总线驱动程序地址总线(PAB),是,是16位总线位总线,同时为读,同时为读/写程序提供地址。写程序提供地址。 堆栈:堆栈:程序地址产生逻辑包括一个程序地址产生逻辑包括一个16位宽、最多可保存位宽、最多可保存8个返回个返回地址的

41、硬件堆栈,也可用于暂存数据。地址的硬件堆栈,也可用于暂存数据。 微堆栈微堆栈(MSTACK):有时程序地址产生逻辑使用这个有时程序地址产生逻辑使用这个16位宽、位宽、1级深的堆栈保存一返回地址。级深的堆栈保存一返回地址。 重复计数器重复计数器(RPTC):16位的位的RPTC与重复指令与重复指令RPT一起,用来一起,用来确定确定RPT后面的一条指令重复执行的次数。后面的一条指令重复执行的次数。 2.4 程序控制程序计数器程序计数器(PC)程序地址产生逻辑利用程序地址产生逻辑利用16位的位的PC寻址内部和外部程序寻址内部和外部程序存储器。存储器。PC含有要执行的下一条指令的地址。含有要执行的下一

42、条指令的地址。经程序地址总线经程序地址总线(PAB )从程序存储器中取出该地址中的从程序存储器中取出该地址中的指令,并将其装入指令寄存器。指令,并将其装入指令寄存器。指令寄存器装入后,指令寄存器装入后,PC内容为下一地址。内容为下一地址。LF240 x可以采用多种方法装载可以采用多种方法装载PC,从而适应顺序和非,从而适应顺序和非顺序的程序流。顺序的程序流。 2.4 程序控制堆栈堆栈LF240 x具有具有16位宽度、位宽度、8级深度的硬件堆栈级深度的硬件堆栈。在调用子程序或发生中断时,程序地址产生逻辑利用该堆栈在调用子程序或发生中断时,程序地址产生逻辑利用该堆栈保存返保存返回地址回地址。当指令

43、使当指令使CPU进入子程序或中断使其进入中断服务程序时,返回地进入子程序或中断使其进入中断服务程序时,返回地址自动装入堆栈的栈顶,该操作不需附加周期。址自动装入堆栈的栈顶,该操作不需附加周期。当子程序或中断服务程序完成时,则返回地址从栈顶送到程序计数当子程序或中断服务程序完成时,则返回地址从栈顶送到程序计数器。器。当当8级堆栈级堆栈不用于保存地址不用于保存地址时,在子程序或中断服务程序内,堆栈时,在子程序或中断服务程序内,堆栈可用于保存上下文数据或其他存储用途可用于保存上下文数据或其他存储用途。 2.4 程序控制用户可使用的两组指令访问堆栈用户可使用的两组指令访问堆栈PUSH(压入压入)和和P

44、OP(弹出弹出):PUSH指令把累加器的低半部分指令把累加器的低半部分copy到到栈顶;栈顶;POP指令将栈顶的数据指令将栈顶的数据copy到累加器低半部分。到累加器低半部分。PSHD和和POPD:当子程序或中断嵌套超过:当子程序或中断嵌套超过8级时,可利用这些指令级时,可利用这些指令在数据存储区构建堆栈。在数据存储区构建堆栈。PSHD将数据存储器中的值压入栈顶;将数据存储器中的值压入栈顶;POPD将栈顶的值弹到数据存储器。将栈顶的值弹到数据存储器。每当一个数压入栈顶,堆栈中每级的内容都下移一级,栈底内容则每当一个数压入栈顶,堆栈中每级的内容都下移一级,栈底内容则丢失。因此,如果没有弹出而又连

45、续压入多于丢失。因此,如果没有弹出而又连续压入多于8次,或压入的次数次,或压入的次数比弹出的次数多于比弹出的次数多于8次时,就会丢失数据次时,就会丢失数据(堆栈溢出堆栈溢出)。弹出操作于压入操作相反,把堆栈中每一级的值都弹出操作于压入操作相反,把堆栈中每一级的值都copy到较高的一到较高的一级,连续级,连续7次弹出后的任何弹出操作产生的值都是初始栈底的值。次弹出后的任何弹出操作产生的值都是初始栈底的值。 2.4 程序控制微堆栈微堆栈(MSTACK)程序地址产生逻辑在执行某些指令前利用程序地址产生逻辑在执行某些指令前利用16位宽、位宽、1级深的级深的MSTACK保存返回地址保存返回地址。这些指令

46、利用程序地址产生逻辑提供双操作数指令中的第这些指令利用程序地址产生逻辑提供双操作数指令中的第2个地址个地址,它们是:,它们是:BLDD、BLPD、MAC、MACD、TBLR和和TBLW。重复执行时,重复执行时,利用利用PC使第一个操作数地址增使第一个操作数地址增1,并使用辅助寄存器,并使用辅助寄存器算术单元产生第二个操作数地址。算术单元产生第二个操作数地址。使用时,使用时,返回地址被压入返回地址被压入MSTACK;重复指令执行完后,;重复指令执行完后,MSTACK的值被弹出并送至程序地址产生逻辑的值被弹出并送至程序地址产生逻辑。MSTACK不可用于存储指令不可用于存储指令(不同于(不同于STA

47、CK)。)。 2.4 程序控制2、流水线操作、流水线操作指令流水线指令流水线包括执行指令时发生的一系列总操作。包括执行指令时发生的一系列总操作。LF240 x流水线具有流水线具有4个独立阶段:个独立阶段:取指令取指令、指令译码指令译码、取操作数取操作数和和执行指令执行指令。这这4个独立阶段在任意给定周期里,可能有个独立阶段在任意给定周期里,可能有14条不同的指令处于激条不同的指令处于激活状态。活状态。 2.4 程序控制对用户来说,除下列情况外,流水线基本上是不对用户来说,除下列情况外,流水线基本上是不可见的可见的紧跟在修改全局存储器分配寄存器紧跟在修改全局存储器分配寄存器(GBEG)后的后的单

48、字单字、单周期指令使用先前的全局映射数据存储器单周期指令使用先前的全局映射数据存储器。NORM指令修改辅助寄存器指针指令修改辅助寄存器指针(ABP),而且,而且在流水线在流水线的执行阶段使用当前辅助寄存器的执行阶段使用当前辅助寄存器。如果后面的两个指令。如果后面的两个指令字改变当前辅助寄存器或字改变当前辅助寄存器或ARP的值,那么这些操作是在的值,那么这些操作是在流水线的译码阶段进行的,使得流水线的译码阶段进行的,使得NORM指令使用了错误指令使用了错误的辅助寄存器,并使后续指令使用错误的的辅助寄存器,并使后续指令使用错误的ARP值。值。 2.4 程序控制3、无条件转移、调用和返回、无条件转移

49、、调用和返回无条件转移无条件转移总是被执行总是被执行,PC装入指定的程序地址且程序从该地址装入指定的程序地址且程序从该地址处开始执行。装入的地址来自于指令的第处开始执行。装入的地址来自于指令的第2个字或累加个字或累加器的低器的低16位。位。在转移指令到达流水线的执行阶段时,下在转移指令到达流水线的执行阶段时,下2条指令已被条指令已被取回,且从流水线中清除不被执行,而从转移至的地址取回,且从流水线中清除不被执行,而从转移至的地址处继续执行。处继续执行。无条件转移指令:无条件转移指令:B(转移转移)和和BACC(转移到转移到ACC指定的指定的存储单元存储单元)。 2.4 程序控制无条件调用无条件调

50、用必定要执行必定要执行,将指定的程序存储器的地址加载到,将指定的程序存储器的地址加载到PC,并从该地址开始执行。装入的地址来自于指令的第并从该地址开始执行。装入的地址来自于指令的第2个个字或累加器的低字或累加器的低16位。位。加载加载PC之前将返回地址保存到堆栈里。子程序执行后之前将返回地址保存到堆栈里。子程序执行后,返回指令将返回地址从堆栈加载到,返回指令将返回地址从堆栈加载到PC,程序从调用,程序从调用指令后面的指令开始执行。指令后面的指令开始执行。无条件调用指令:无条件调用指令:CALL和和CALA(调用调用ACC指定的存储指定的存储单元处的子程序单元处的子程序)。 2.4 程序控制无条

51、件返回无条件返回必定要执行必定要执行,将栈顶的值加载到,将栈顶的值加载到PC,并从该地址继续,并从该地址继续执行程序。执行程序。在返回指令到达流水线的执行阶段时,下两条指令已被在返回指令到达流水线的执行阶段时,下两条指令已被取回,且从流水线中清除不被执行,取回,且从流水线中清除不被执行,PC从堆栈中取出从堆栈中取出返回地址,程序继续执行。返回地址,程序继续执行。 2.4 程序控制4、有条件转移、调用和返回、有条件转移、调用和返回使用多个条件使用多个条件条件指令操作数中可以有多个条件。必须满足多个条件条件指令操作数中可以有多个条件。必须满足多个条件,指令才可执行。,指令才可执行。合法条件组合应满

52、足的规则:合法条件组合应满足的规则: 组组1:最多可选:最多可选2个条件,其中每个条件必须来自不个条件,其中每个条件必须来自不同的类;同的类;2个条件不能来自同一类。个条件不能来自同一类。 组组2:最多可选:最多可选3个条件,其中每个条件必须来自不个条件,其中每个条件必须来自不同的类;不能有同的类;不能有2个条件来自同一类。个条件来自同一类。 2.4 程序控制条件状态条件状态条件指令必须能测试状态位的条件指令必须能测试状态位的最近值最近值。直到流水线的直到流水线的第第4个阶段个阶段,前一条指令已被执行后的一,前一条指令已被执行后的一个周期,才认为条件是稳定的。个周期,才认为条件是稳定的。流水线控制在条件稳定之前,停止对条件指令后面任何流水线控制在条件稳定之前,停止对条件指令后面任何指令的译码。指令的译码。 2.4 程序控制条件转移条件转移转移指令可把程序控制转移到程序存储器中的任何地址转移指令可把程序控制转移到程序存储器中的任何地址。条件转移指令仅当用户指定的一个或多个条件满足时。条件转移指令仅当用户指定的一个或多个条件满足时才执行。如果满足所有条件,将转移指令的第才执行。如果满足所有条件,将转移指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论