您好、欢迎来到现金彩票网!
当前位置:秒速时时彩 > 算术下溢 >

DSP内部资源介绍

发布时间:2019-07-24 21:15 来源:未知 编辑:admin

  1第2章: TMS320LF240x DSP内 部资源介绍 2.1 TMS320LF240x DSP的CPU内部功能模块介绍 2.2 存储器和I/O空间 2.3 系统配置和中断 2.4 程序控制 22.1 TMS320LF240x DSP的CPU内部功能模块介绍 中央处理单元(CPU) 输入定标器 乘法单元 中央算术逻辑单元 32.1 TMS320LF240x DSP的CPU内部功能模块介绍 1、 输入定标移位器 是一个16位到32位的滚动式左向移位器; 能将输入的16位数据的0~15位在本周期内向左移位以得到32位的输出; 本操作不需要额外的周期。31 16Input shifter (32bits)15 0MUX中央算术逻辑单元16161632程序读总线数据读总线Input scalingsection 42.1 TMS320LF240x DSP的CPU内部功能模块介绍 移位器的输入来源 数据读总线(DRDB),该输入值来自 指令操作数据所引 用 的数据存储单元; 程序读总线(PRDB),改输入是指令操作数给出的常数。 移位量的来源 嵌在指令字中的常数。把移位量放在指令字中,该程序代码使用特定的数据比例; 临时寄存器TREG的提位。 根据TREG的值移位, 数据的定标因子是动态确定的, 可适应不同的系统要求。 52.1 TMS320LF240x DSP的CPU内部功能模块介绍 输入移位器的输出值 最低有效位LSBs段填0; 未使用的最高有效位MSBs填0或者根据状态寄存器ST1的SXM位的值来确定是否需要进行符号扩展XXXXAF11163200AF1100输入移位器接收数据左移8位后的输出值(SXM=0)XXXXAF111632FFAF1100输入移位器接收数据左移8位后的输出值(SXM=1)AF11AF11(a)(b) 62.1 TMS320LF240x DSP的CPU内部功能模块介绍 2、 乘法器 16×16位的硬件乘法器, 在单个周期内产生一个32位乘积结果的有符号或无符号数; 除了 MPYU指令, 所有的乘法指令都执行有符号的乘法操作。PREGTREGMultiplier16×16MUX中央算术逻辑单元16161632程序读总线数据读总线Multiplication sectionProduct shifter(32bits)32数据写总线x DSP的CPU内部功能模块介绍 乘法器的输入 16 位 临 时 寄 存 器(TREG), 在乘法之前把数据读总 线 的值加载到TREG; 数据读 总 线 的 数据存储器值和 程序 读总 线 的 程序存储器值。 乘法器的输出 两个输入值相乘后的32位结果保存在乘积寄存器(PREG)中; PREG的输出连接到32位的乘积定标移位器(PSCALE), 通过PSCALE将乘积结果送到CALU或数据存储器。 82.1 TMS320LF240x DSP的CPU内部功能模块介绍 乘法定标移位器(PSCALE) 输入: 该移位器的32位输入练到PREG的输出。 输出: 完成移位后, 全部32位送到CALU, 或将结果的16位存到数据存储器。 移位模式: 该移位器可用4中移位模式, 这些模式由状态寄存器ST1的乘积移位方式(PM)位确定。 注: PREG的内容保持不变, 其值被复制到PSCALE中, 进行移位。PM移位说明00不移位乘积结果没有移位地送到CALU单元或数据总线的补码乘法运算中产生的1位附加符号位, 以得到一个Q31的乘积10左移4位当与一个13位的常数相乘时, 移去在16×13位的2的补码乘法运算中产生的4位附加符号位, 以生成一个Q31的乘积11右移6位对乘积结果进行定标, 以使得运行128次的乘积累加器不会溢出 92.1 TMS320LF240x DSP的CPU内部功能模块介绍 乘法器相关指令及操作 用LT指令将数据从数据总线操作数, MPY指令提供第2个操作数或从数据总线上得到。 使用MPY指令时, 可以对一个13位的立即数进行操作, 每两个指令周期得到一个乘积。 代码执行多路乘法和乘积求和运算时, CPU支持流水线操作。指令操作LT把通过CALU得到的前次乘积结果装载到TREGLTP把PREG的值装载入ACCLTA把PREG的值加载到ACCDMOV,LTD把PREG的值加到ACC, 移位TREG输入数据到数据存储器的下一地址LTS从ACC中减去PREG的值 102.1 TMS320LF240x DSP的CPU内部功能模块介绍 乘法器相关指令及操作 乘且累加并带动数据移动指令MAC和MACD充分利用了 乘法器的计算宽度, 允许两个操作数被同时处理。 无符号乘法运算MPYU指令执行大大方便了用于扩展精度的算术运算。 平行并累加前次乘积指令SQRA和平方并减去前次乘积指令SQRS传送相同的数到乘法器的两个输入端, 以对一个数据存储器单元的值进行平方运算。 存储乘积的高字节指令SPH和低字节指令SPL, 可将装入PREG的32位乘积结果传送到CALU单元或数据存储器。 在执行中断服务程序前必须对PREG的值进行保存。 112.1 TMS320LF240x DSP的CPU内部功能模块介绍 3、 中央算术逻辑部分 中 央 算 术 逻 辑 单 元(CALU): 实现各种算术、逻辑功能; 32位累加器(ACC): 接收来自 CALU的输出, 并可以 根据进位位(C)的值来实现移位; 输出移位器: 将ACC的高位字和低位字在送入数据存储器之前进行移位。MUXACCHACCLCOutput shifter(32bits)CALUCentral arithmetic logicsection232输入移位器乘积移位器数据存储器 122.1 TMS320LF240x DSP的CPU内部功能模块介绍 中央算术逻辑单元(CALU) 运算功能: 16位加、 16位减、 布尔逻辑操作、 位测试、 移动和循环。 输入: 一个由累加器提供, 另一个由乘积定标移位器或输入数据定标移位器提供。 输出: 其结果送至32位累加器, 进行移位。 相关状态位: 符号扩展模式位SXM(ST1第10位)确定CALU是否进行符号扩展。 SXM=0, 抑制符号扩展; SXM=1, 进行符号扩展。 132.1 TMS320LF240x DSP的CPU内部功能模块介绍 累加器(ACC) 功能: 对送到ACC的CALU的运算结果进行单个移位和循环操作。 输入: CALU的运算结果。 输出: ACC的高16位和低16位中任何一个都可送到输出定标移位器, 经定标移位后存入数据存储器。 相关状态位状态位状态寄存器说明进位位CST1第9位C=0:减结果产生借位/加结果未产生进位; C=1:加结果产生进位/减结果未产生借位; 左移或左循环, ACC最高位送至C, 否则最低位送至C。溢出方式位OVMST0第11位决定ACC如何反映算术运算的溢出。 OVM=1:正溢出, ACC填充最大正数, 否则填充最大负数; OVM=0:正常溢出。溢出标志位OVST0第12位ACC未发生溢出时, OV=0; 否则OV=1且被莎存。测试/控制标志位TCST1第11位根据被测试位的值, 该位被置0或1。 142.1 TMS320LF240x DSP的CPU内部功能模块介绍 输出定标移位器将累加器输出的内容左移0~7位, 移动位数由存储器指令指定, 然后用SACH或SACL指令将移位器中的高位字或低位字保存到数据存储器中, ACC的内容不变。00F0F0A10F0F0F0F0A103216累加器输出移位器(左移4位)数据存储器位置00F0F0A128403C3C28403216累加器输出移位器(左移6位)数据存储器位置(b)(a) 152.1 TMS320LF240x DSP的CPU内部功能模块介绍 4、 辅助寄存器算术逻辑单元(ARAU) 在CALU操作的同时执行8个辅助寄存器(AR7~AR0)上的算术运算。 8个辅助寄存器提供了灵活而有效的间接寻址。 通过把数值0~7写入状态寄存器ST0第3位的辅助寄存器指针(ARP), 选择一个辅助寄存器作为当前AR。 当前AR存放被访问的数据存储器的地址, 根据指令的需要分别向数据读/写地址总线读/写数据, 使用完该数据后, 当前AR的内容可以被ARAU增减, 可实现无符号16位算术运算。 162.1 TMS320LF240x DSP的CPU内部功能模块介绍 ARAU可执行的操作 将辅助寄存器值增、 减1, 或者增、减一个变址量(借助任何支持间接寻址的指令)。 使辅助寄存器的值加/减一个常数(ADRK/SBRK指令), 该常数是指令字的低8位。 将AR0的内容与当前AR的内容进行比较, 并把结果放入状态寄存器ST1的测试/控制位TC(CMPR指令)。 结果经数据写总线DWEB传送到TC。 辅助寄存器的用途 数据存储器地址存储器; 通过CMPR指令, 使辅助寄存器支持条件分支、调用及返回; 用作暂存单元; 用作软件计数器, 按需要对其进行加、 减。 172.1 TMS320LF240x DSP的CPU内部功能模块介绍 5、 状态寄存器 两个状态寄存器ST0和ST1, 含有各种状态和控制位; 可保存在数据存储器, 也可从数据存储器加载, 可以保存和恢复子程序的机器状态; 加载状态寄存器LST指令写ST0和ST1, 保存状态寄存器SST指令读ST0和ST1; INTM位不受LST指令的影响; 寄存器中每一位均可由SETC和CLRC指令单独置位和清0。 182.1 TMS320LF240x DSP的CPU内部功能模块介绍 ARB辅助寄存器指针缓冲器: 当ARP被加载到ST0, 除了 使用LST指令外, 原有的ARP值被复制到ARB中; 当通过LST #1指令加载ARB时, 把相同的值复制到ARP。 ARP辅助寄存器指针: ARP选择间接寻址时使用的当前AR; 当ARP被加载时, 原有的ARP值被复制到ARB寄存器中; 在讲解寻址时, ARP可由存储器相关指令改变, 也可由LARP、 MAR和LST指令改变; 当执行LST #1时, ARP也可加载与ARB相同的值。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 192.1 TMS320LF240x DSP的CPU内部功能模块介绍 OV溢出标志位: 该位锁存的值指出CALU是否发生了溢出; 发生溢出, OV=1, 直到复位、 溢出时条件转移、 无溢出时条件转移或LST指令执行时才被清0。 OVM溢出方式位: 该位决定如何管理CALU的溢出。 SETC和CLRC指令分别可将该位置1或清0; LST指令也可修改该位;OVM=0, ACC结果正常溢出; OVM=1, 根据发生的溢出, 把ACC置为最大正值或负值。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 202.1 TMS320LF240x DSP的CPU内部功能模块介绍 CNF片内 DARAM配置位: CNF=0, 可配置双口 RAM被映射到数据存储空间; CNF=1, 可配置双口 RAM被映射到程序; 该位可通过SETC、 CLRC和LST指令修改; RS复位时该位清0。 TC测试/控制标志位: TC=1, 由BIT或BITT指令测试位为1; 利用 NORM指令测试时, ACC的2个最高有效位“异或” 为真;CMRP所测试的当前AR和AR0之间的比较条件成立。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 212.1 TMS320LF240x DSP的CPU内部功能模块介绍 INTM中断模式位: 该位用来允许或禁止所有可屏蔽中断。 通过SETC和CLRC指令置1或清0; 该位不影响不可屏蔽中断RS和NMI; LST指令不影响该位; 发生中断及复位时置1; INTM=0,允许全部没有被屏蔽的中断; INTM=1, 禁止全部没有被屏蔽的中断。 DP数据存储器页指针: 当指令使用直接寻址方式时, 这个9位的DP寄存器与指令寄存器的低7位一起形成一个完整的数据存储器16位地址。 LST和LDP指令可修改该字段。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 222.1 TMS320LF240x DSP的CPU内部功能模块介绍SXM符号扩展模式位: SXM=1数据通过定标移位器传送到累加器时产生符号扩展, SXM=0抑制符号扩展; 该位不影响某些指令的基本操作, 如ADDS指令不管SXM位的状态如何都抑制符号扩展; 通过SECT、 CLRC和LST指令对该位进行置1、 清0和加载; 复位时该位置1。C进位位: C=1, 加法结果产生进位或减法结果未产生借位; C=0, 反之;移位16位的ADD指令只能使C位置1, SUB指令只能使C位清0, 不会对C位产生其他影响; 移1位、 循环指令、 SETC、 CLRC和LST指令均影响该标志位; 条件转移、 调用和返回指令可根据C的状态执行; 复位时该位置1。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 232.1 TMS320LF240x DSP的CPU内部功能模块介绍XF引脚状态位: 该位确定通用输出引脚XF的状态; 通过SECT、 CLRC和LST指令对该位进行置1、 清0和加载; 复位时该位置1。PM乘积移位模式: 该位决定PREG的值是送往CALU或数据存储器时如何移位; SPM和LST指令可以对该位加载; 复位时该位清0。PM=00, 乘法器32位乘积不经移位送到CALU或数据存储器;PM=01, 送到CALU之前, PREG的输出左移1位(低位填0);PM=10, 送到CALU之前, PREG的输出左移4位(低位填0);PM=11, PREG输出进行符号扩展右移6位。注: PREG的内容保持不变, 其值被拷贝到乘积移位器中进行移位。ARPOVOVM1INTMDP15 13 12 11 10 9 8 0ARPCNFTCSXMC115 13 12 11 10 9 8 7 6 5 4 3 2 1 0ST0ST11XF11PM11 242.2 存储器和I/O空间 增强的哈佛结构, 三组并行总线 程序地址总线(PAB) 数据读地址总线(DRAB) 数据写地址总线(DWAB) 三个可独立选择的空间 程序存储器(64K字) 数据存储器(64K字) I/O空间(64K字) 注意:LF240x DSP的所有片内外设的寄存器均映射在数据存储器空间。 252.2 存储器和I/O空间 1、 程序存储器 保存程序代码及数据表信息和常量 寻址范围为64K, 包括片内DARAM 和 片 内FLASH 访问片外程序地址空间时,DSP自动产生一个访问外部程序地址空间 的信号PSLF2407的程序存储器空间映射图 262.2 存储器和I/O空间 决定程序存储器的配置两个因素 CNF位。 CNF位是状态寄存器ST1的第12位, 决定DARAM中的B0块配置在数据存储器空间, 还是配置在程序存储器空间。 CNF=0, 256字的B0块被映射到数据存储器空间。 CNF=1, 256字的B0块被映射到程序存储器空间。复位时, CNF=0, B0块被映射到数据存储器空间。 MP/MC引脚。 该引脚决定是从片内Flash读取指令, 还是从外部程序存储器读取指令。 MP/MC=0:微控制器方式。 此时访问的是片内程序存储器(片内Flash) 0000h-7FFFh空间。 MP/MC=1:微处理器方式。 此时访问的是片外程序存储器的0000h-7FFFh空间。注: 无论MP/MC引脚为何值, LF240xDSP都是从程序存储器空间的0000h单元开始执行程序。 272.2 存储器和I/O空间 2、 数据存储器 寻 址 范 围 64K 字 :前 32K 字( 0000h-7FFFh) 是内 部数据存储器空间,包括了 DARAM和片内外 设 的 映 射 寄 存 器 ;后 32K 字( 8000h-FFFFh) 空间 的存储器为外部数据存储器。 片内有3个DARAM块: B0、 B1和B2块。 B0块:即可为数据存储器,也可配置为程序存储器。 B1、 B2块:只能配置为数据存储器。LF2407的数据存储器空间映射图 282.2 存储器和I/O空间 两种寻址方式: 直接寻址和间接寻址。 直接寻址时, 128字为一页的数据块来对数据存储器进行寻址。 右图显示了 这些块是如何被寻址的。 全部64K的数据存储器分为512个数据页, 其标号从0-511。 当前页由状态寄存器ST0中的9位数据页指针(DP)值来确定。 因此, 当使用直接寻址指令时, 用户必须事先指定数据页, 并在访问数据存储器的指令中指定偏移量,偏移量为7位。数据存储器页 292.2 存储器和I/O空间 编程时要注意, 访问下面的数据存储器的地址空间是非法的, 并会对NMI置位。 除了以下地址, 任何对外设寄存器映射中的保留地址的访问也是非法的。0080h-00FFh701Fh-71FFh (CAN内部的)0500h-07FFh7230h-73FFh (部分在CAN内部)1000h-700Fh7440h-74FFh7030h-703Fh7540h-75FFh7060h-706Fh7600h-77EFh77F4h-7FFFh7080h-708Fh 302.2 存储器和I/O空间 第0页数据地址映射数据存储器中包括存储器映射寄存器, 它们位于数据存储器的第0页(地址0000h-007Fh) , 下表是对第0页数据地址映射的详细说明。应用中必须注意以下几点: 以零等待状态访问两个映射寄存器:中断屏蔽寄存器(IMR) 和中断标志寄存器(IFR) 测试/仿真保留区被测试和仿真系统用于特定信息发送。 因此不能对测试/仿真地址进行操作。地址名称描述0000h~0003h保留0004hIMR中断屏蔽寄存器0005h保留0006hIFR中断标志寄存器0023h~0027h保留002Bh~002Fh保留用作测试和仿线双口RAM(DARAM B2)第0页数据地址映射 312.2 存储器和I/O空间 数据存储器配置CNF位决定B0块的配置, CNF位是状态寄存器ST1的第12位。 CNF=0, B0块被映射为数据存储器空间;复位时, CNF=0; CNF=1, B0块被映射到程序存储器空间; 322.2 存储器和I/O空间 3、 I/O空间 寻址范围为64K字。 I/O空间访问的控制信号为IS。 所有64K的I/O空间均可以用IN和OUT指令来访问。 当执行IN或OUT指令时, 信号IS*变为有效,可作为外部I/O设备的片选信号。 访问外部I/O端口与访问程序存储器、 数据存储器复用相同的的地址总线和数据总线。 数据总线位数据总线位数据总线, 以适应特定应用的需要。 当访问片内的I/O空间时, 信号IS和STRB变成无效, 外部地址和数据总线仅仅当访问外部I/O地址时有效。LF2407 I/O空间地址映射图 332.2 存储器和I/O空间 下面是使用汇编语言的直接访问I/O空间的实际例子: INDAT2,0AFEEh; 从端口地址为AFEEh的外设; 读数据, 并存入DAT2寄存器 OUTDAT2,0CFEFh; 输出数据存储器DAT2的内容; 到端口地址为CFEFh的外设 下面是访问等待状态发生器的寄存器的实例: INDAT2,0FFFFh; 从等待状态发生器读取数据到DAT2寄存器 OUTDAT2,0FFFFh; 将DAT2寄存器的数据写入等待状态发生器, 使用等待状态发生器 342.3 系 统配置和中断 本节介绍LF240x DSP的系统配置寄存器和中断模块。 系统配置: 用来对DSP片内的功能模块进行用户配置, 根据具体用途来进行模块定制。 中断模块: 主要包括-中断优先级和中断向量表、 外设中断扩展控制器(PIE)、 中断向量、 中断响应的流程、 中断响应的延时、 CPU中断寄存器、 外设中断寄存器、 复位、 无效地址检测、 外部中断控制寄存器。 352.3 系 统配置和中断 1、 系统配置寄存器 (1)、 系统控制和状态寄存器1(SCSR1)SCSR1映射到数据存储器空间的7018h, 各位如下: 位15: 保留 位14: CLKSRC, 为CLKOUT引脚输出时钟源的选择位 0-CLKOUT引脚输出CPU时钟; 1-CLKOUT引脚输出WDCLK时钟。 位13、 12: LPM1, LPM0, 低功耗模式选择, 指明在执行IDLE 指令后进入哪一种低功耗模式。 00-进入IDLE1(LPM0) 模式; 01-进入IDLE2(LPM1) 模式; 1x-进入HALT(LPM2) 模式。 362.3 系 统配置和中断 位11-9: CLK PS2-CLK PS0, (PLL) 时钟预定标选择位, 选择输入时钟频率fin的倍频系数, 如下表(P.28)所示。CLKPS2CLKPS1CLKPS0系统时钟频率0004× fin0012× fin0101.33× fin0111× fin1000.8× fin1010.66× fin1100.57× fin1110.5× fin 372.3 系 统配置和中断 位8: 保留 位7: ADC CLKEN, ADC模块时钟使能控制位 0-禁止ADC模块时钟(节能) 1-使能ADC模块时钟, 且正常运行 位6: SCICLKEN,, SCI模块时钟使能控制位 0-禁止SCI模块时钟(节能) 1-使能SCI模块时钟, 且正常运行 位5: SPICLKEN,, SPI模块时钟使能控制位0-禁止SPI模块时钟(节能)1-使能SPI模块时钟, 且正常运行 382.3 系 统配置和中断 位4: CANCLKEN, CAN模块时钟使能控制位0-禁止CAN模块时钟(节能)1-使能CAN模块时钟, 且正常运行 位3: EVBCLKEN, EVB模块时钟使能控制位0-禁止EVB模块时钟(节能)1-使能EVB模块时钟, 且正常运行 位2: EVACLKEN, EVA模块时钟使能控制位0-禁止EVA模块时钟(节能)1-使能EVA模块时钟, 且正常运行 位1: 保留 位0: ILLADR, 无效地址检测位检测到无效地址时, 该位置1。 置1后需软件来清0, 即向该位写0即可。 复位时该位为0。注意:任何无效的地址会导致不可屏蔽中断(NMI) 事件发生。 392.3 系 统配置和中断 (2)、 系统控制和状态寄存器2(SCSR2)SCSR2映射到数据存储器空间的7019h, 各位如下: 位15-7: 保留 位6: I/P QUAL, 时钟输入限定, 它限定输入到LF240x的CAP1-6、 XINT1-2、 ADCSOC、 PDPINTA/PDPINTB引脚上的最小脉冲宽度。 脉冲宽度只有达到这个宽度之后, 内部的输入状态才会改变。 0-锁存脉冲至少需要5个时钟周期; 1-锁存脉冲至少需要11个时钟周期。如这些引脚作I/O使用, 则不使用输入时钟限定电路。 402.3 系 统配置和中断 位5: WD保护位, 该位可用来禁止WD工作。 该位是个只能清除的位, 复位后=1。 通过向该位写1对其清0。 0-保护WD, 防止WD被软件禁止 1-复位时的默认值,禁止WD工作 位4: XMIF HI-Z。 该位控制外部存储器接口信号(XMIF)。 0-所有XMIF信号为正常驱动模式(非高阻态) 1-所有XMIF信号处于高阻态注意: 该位仅对LF2407/ LF2407A型号有效, 对其它型号为保留位 412.3 系 统配置和中断 位3: 使能位。 这位反映了BOOTEN引脚在复位时的状态。0-使能引导ROM。 地址0000h-00FFh被片内引导ROM块占用。 禁止用FLash存储器1-禁止引导ROM。 LF2407片内Flash程序存储器映射地址范围为0000h-7FFFh。 位2: MP/MC(微处理器/ 微控制器选择)。0-DSP设置为微控制器方式, 片内FLASH映射到程序存储器空间, 地址为0000h-7FFFh。1-DSP设置为微处理器方式, 程序空间0000h-7FFFh被映射到片外程序存储器空间(必须外扩外部程序存储器) 位1-0: SARAM的程序/数据空间选择00-地址空间不被映射, 该空间被分配到外部存储器0l-SARAM 被映射到片内程序空间10-SARAM 被映射到片内数据空间11-SARAM 被映射到片内程序空间, 又被映射到片内数据空间 422.3 系 统配置和中断 2、 中断优先级和中断向量表 LF2407 DSP具有3个不可屏蔽中断和6个级别的可屏蔽中断(INT1-INT6) 。 对多个外设的中断需求采用了中断扩展设计来满足。 在每级可屏蔽中断(INT1-INT6) 中又有多个中断源, 有唯一的中断入口地址向量。中断优先级 中断名称 外设中断向量描述1Reset0000h复位引脚和WD溢出2保留0026h用于仿线h软件中断不可屏蔽中断源的优先级和中断入口地址向量表 432.3 系 统配置和中断中断优先级中断名称外设中断向量描述4PDPINTA0020h功率驱动保护中断5PDPINTB0019h功率驱动保护中断6ADCINT0004h高优先级ADC中断7XINT10001h高优先级外中断8XINT20011h高优先级外中断9SPINT0005h高优先级SPI中断10RXINT0006h高优先级SCI接收中断11TXINT0007h高优先级SCI发送中断12CANMBINT0040h高优先级CAN邮箱中断可屏蔽中断源的优先级和中断入口地址向量表INT1(级别1) 442.3 系 统配置和中断中断优先级中断名称外设中断向量描述13CANMBINT0041h高优先级CAN错误中断14CMP1INT 0021h比较器1中断15CMP2INT 0022h比较器2中断16CMP3INT 0023h比较器3中断17T1PINT 0027h定时器1周期溢中断18T1CINT0028h定时器1比较溢中断19T1UFINT0029h定时器1下溢中断20T1OFINT0029h定时器1上溢中断21CMP4INT 0024h比较器4中断22CMP5INT 0025h比较器5中断23CMP6INT 0026h比较器6中断24T3PINT 002Fh定时器3周期溢中断25T3CINT0030h定时器3比较溢中断26T3UFINT0031h定时器3下溢中断27T10FINT0032h定时器3上溢中断INT2(级别2) 452.3 系 统配置和中断中断优先级中断名称外设中断向量描述28T2PINT 002Bh定时器2周期溢中断29T2CINT002Ch定时器2比较溢中断30T2UFINT002Dh定时器2下溢中断31T2OFINT 002Eh定时器2上溢中断32T4PINT 0039h定时器4周期溢中33T4CINT003Ah定时器4比较溢中断INT3(级别3) 462.3 系 统配置和中断中断优先级中断名称外设中断向量描述34T4UFINT003Bh定时器4下溢中断35T4OFINT 003Ch定时器4上溢中断36CAP1INT0033h比较器1中断37CAP2INT0034h比较器2中断38CAP3INT0035h比较器3中断39CAP4INT 0036h比较器4中断40CAP5INT 0037h比较器5中断41CAP6INT0038h比较器6中断INT4(级别4) 472.3 系 统配置和中断中断优先级中断名称外设中断向量描述42SPINT 0005h低优先级SPI中断43RXINT0006h低优先级SCI接收中断44TXINT0007h低优先级SCI发送中断45CANMBINT 0040h低优先级CAN邮箱中断46CANERINT 0040h低优先级CAN错误中断INT5(级别5) 482.3 系 统配置和中断中断优先级中断名称外设中断向量描述47ADCINT 0004h低优先级ADC中断48XINT10001h低优先级外中断49XINT20011h低优先级外中断INT6(级别6) 492.3 系 统配置和中断 3、 外设中断扩展控制器 LF240x CPU内核提供给用户:6级可屏蔽中断INT1-INT6。 每1级别又包含多个外设中断请求, 所以用一个外设中断扩展(PIE) 控制器专门来管理来自各种外设或外部引脚的数十个中断请求。外设中断扩展模块图 502.3 系 统配置和中断 中断请求层次和结构 外设中断个数很多, 用一个两级中断结构来扩展可响应的中断个数。 中断请求/应答硬件逻辑和中断服务程序软件都有两级层次的中断。 在低层次中断, 从几个外设来的外设中断请求(PIRQ)在中断控制器处进行或运算, 产生一个INTn (n=1-6)中断请求。 在高层次中断, 从INTn中断请求产生一个到CPU的中断请求。 512.3 系 统配置和中断 如果一个引起中断的外设事件发生且相应的中断使能位被置1, 则会产生一个外设到中断控制器的中断请求。 如果一个外设既可产生高级的中断请求, 又可产生低级中断请求(如SCI、 SPI、 ADC等), 对应的中断优先级位的值也被送到PIE来进行判断。 中断请求(PIRQ)标志位一直保持到中断应答自动清除或用软件将其清除。 在高层次中断, 或逻辑运算的多个外设中断请求INTn产生一个到CPU的中断请求, 它是2个CPU时钟脉冲宽的低电平脉冲。 当多个外设同时发出中断请求时, CPU总是响应优先级高的中断请求。 注意: 外设中断请求标志位是在CPU响应中断时自动清除, 即在高层次中断时清0, 而不是在低层次中断时, 清0。 522.3 系 统配置和中断 4、 中断向量 当CPU接受中断请求时, 它并不知道是哪一外设事件引起的中断请求。 为了 使CPU能够区别不同外设引起的中断事件, 需经PIE译码, 决定哪个中断请求被响应。 某个外设的中断请求有效时, 都会产生唯一的外设中断向量,被装载到外设中断向量寄存器(PIVR)。 CPU应答外设中断请求时, 从PIVR中读取相应的中断向量,并产生一个转到该中断服务子程序(GISR)入口的向量。 532.3 系 统配置和中断 LF240x有两个中断向量表: CPU向量表和外设向量表 CPU向量表用来得到响应中断请求的一级通用中断服务子程序(GISR)。 外设向量表用来获取响应某外设事件的特定中断服务子程序(SISR)。 在一级通用中断服务子程序GISR中可读出PIVR中的值, 保护现场后, 用PIVR中的值来产生一个转到SISR的向量。 例如, 可屏蔽中断XINT1(高级模式级别为INT1, 优先级为7)产生一个中断请求, CPU对其响应。 这时, 0001h (XINT1的外设中断向量)被装载到PIVR中, CPU获取被装载到PIVR中的值之后, 用这个值来判断是哪一个外设引起的中断, 接着转移到相应的SISR。 将PIVR中的值装载入累加器时需先左移, 再加上一个固定的偏移量, 然后程序转到累加器指定的地址入口, 这个地址将指向SISR, 从而执行XINT1的中断服务子程序。 542.3 系 统配置和中断 (1)、 假中断向量 如果一个中断应答被响应, 但没有获得相应的外设的中断请求, 那么就使用假中断。 假中断向量特性可以保证中断系统的完整性, 从而使中断系统一直可靠安全地运行, 而不会进入无法预料的中断死循环中。 以下两种情况会产生假中断: CPU执行一个软件中断指令INTR, 使用参数1-6, 用于请求服务6个可屏蔽中断(INT1-INT6)之一。 当外设发出中断请求, 但是其INTn标志位却在CPU应答请求之前已经被清0。 在上述两种情况下, 并没有外设中断请求送到中断控制器, 因此中断控制器不知道哪个外设中断向量装入到PIVR, 此时向PIVR中装入假中断向量0000h。 从而避免程序进入中断死循环中。 552.3 系 统配置和中断 (2)、 软件结构 中断服务子程序有两级: 通用中断服务子程序(GISR)和特定中断服务子程序(SISR)。 在GISR中保存必要的上下文, 从外设中断向量寄存器(PIVR)中读取外设外设中断向量, 这个向量用来产生转移到SISR的地址入口。 程序一旦进入特定中断服务子程序后, 所有的可屏蔽中断都被屏蔽。 外设中断扩展(PIE) 不包括象复位和NMI这样的不可屏蔽中断。 562.3 系 统配置和中断 (3)、 不可屏蔽中断 LF240x DSP 无NMI引脚, 在访问无效的地址时, 不可屏蔽中断(NMI)就会发出请求。 当NMI被响应后,程序将转到不可屏蔽中断向量入口地址0024h处 572.3 系 统配置和中断 5、 中断响应的过程下面介绍某一外设中断请求的响应过程。 (1) 某一外设发出中断请求。 (2) 如该外设的中断请求标志位(IF)为1, 且该外设的中断使能位(IE)为1, 则产生一个到PIE控制器的中断请求标志位(IF)为1的状态保持到被软件清0。 (3) 如果不存在相同优先级(INTn)的中断请求, 那么PIRQ会使PIE控制器产生一个到CPU的中断请求(INTn), 为2个CPU时钟宽度的低电平脉冲。 582.3 系 统配置和中断 (4) CPU的中断请求设定CPU的中断标志寄存器(IFR), 如果CPU中断已被使能, 中断屏蔽寄存器(IMR) CPU会中止当前的任务, 将INTM置1, 以屏蔽所有可屏蔽的中断, 保存上下文, 并且开始为高断请求; 如果中断没有被使能, 则中优先级的中断(INTn)执行通用中断服务子程序(GISR)。 CPU自动产生一个中断应答, 并向与被响应的高优先级中断的相应程序地址总线(PAB)送一个中断向量值。例如, 如果INT2被响应了 , 它的中断向量0004h被装入PAB。 (5) 外设中断扩展(PIE)控制器会对PAB的值进行译码, 并产生一个外设响应应答, 清除与被应答的CPU中断相关的PIRQ位。 外设中断扩展控制器然后将相应的中断向量(或假中断向量)载入外设中断向量寄存器(PIVR)。 当GISR已经完成了现场保护, 然后就可读入PIVR, 并使用中断向量, 使程序转入到特定中断服务子程序(SISR)的入口处去执行。 592.3 系 统配置和中断 6、 中断响应的延时导致中断响应延时的因素包括: 外设同步接口时间、CPU响应时间、 ISR转移时间。 (1) 外设同步接口时间是指PIE识别出外设发来的中断请求, 经判断优先级、 转换后将中断请求发送至CPU的时间。 (2) CPU的响应时间指的是CPU识别出已经被使能的中断请求、 响应中断、 清除流水线、 并且开始捕获来自CPU中断向量的第一条指令所花费的时间。 最小的CPU的响应时间是4个CPU指令周期。 (3) ISR转移时间是指为了 转移ISR中特定部分而必须执行一些转移所花费的时间。 该时间长短根据用户所实现的ISR的不同而有所变化。 602.3 系 统配置和中断 7、 CPU的中断寄存器CPU中断寄存器包括: (1)中断标志寄存器(IFR);(2)中断屏蔽寄存器(IMR)。 (1)、 CPU中断标志寄存器(IFR)IFR映射到数据存储器空间为0006h。 各位意义如下: 位15-6: 保留位。 位5-0: 分别为INT6-INT1的中断标志位。 0-无INTn (n=1-6)的中断挂起, 1-表示有INTn (n=1-6)的中断挂起。 612.3 系 统配置和中断 中断标志寄存器包含了所有可屏蔽中断INT6-INT1的标志位。 当一个外设发出可屏蔽中断请求时, 中断标志寄存器的相应标志位被置1。 如果该外设对应中断屏蔽寄存器中的中断使能位也为1, 则该中断请求被送到CPU, 此时该中断正被挂起或等待响应。 读取IFR可以识别挂起的中断, 向相应的IFR位写1将清除已挂起的中断。 CPU响应中断或复位都能将IFR标志清除。 622.3 系 统配置和中断 在对IFR操作时应注意以下几点: (1) 要想清除某一IFR位, 必须向该位写1, 而不是0; (2) 当一个可屏蔽中断被响应时, 只有IFR位被清除, 而相应的外设控制寄存器中的中断请求标志位不会被清除。 如果需要清除这些标志位, 应该使用软件来清除。 (3) 当通过INTR指令来请求中断, 且相应的IFR位被置1时, CPU不会自动清除该位, 该位必须由软件来清除。 (4) IFR和IMR控制的是核心级的中断, 所有外设在它们各自的配置/控制寄存器都有相应的中断屏蔽和标志位。 632.3 系 统配置和中断 (2)、 CPU中断屏蔽寄存器(IMR)IMR映射在数据存储器空间中的地址为0004h, 各位意义如下: IMR中包含所有可屏蔽中断级(INT1-INT6)的屏蔽位, 读IMR可以识别出已屏蔽或使能的中断级, 而向IMR中写, 则可屏蔽中断或使能中断。 为了 使能中断, 应设置相应的IMR位为1, 而屏蔽中断时只需将相应的IMR位设为0。 位15-6: 保留位。 位5-0: 分别为INT6-INT1中断的屏蔽位。 0-中断INTn被屏蔽。 1-中断INTn被使能。 642.3 系 统配置和中断 8、 外设中断寄存器 外设中断寄存器包括: 外设中断向量寄存器(PIVR)、外设中断请求寄存器0/1/2(PIRQR0/1/2)、 外设中断应答寄存器0/1/2(PIACKR0/1/2)。 外设中断请求寄存器和外设中断应答寄存器都属于外设中断扩展模块用来向CPU产生INT1-INT6中断请求的内部寄存器。 这些寄存器用于测试目的, 非用户应用目 的, 编程时可忽略。 652.3 系 统配置和中断 外设中断向量寄存器(PIVR)外设中断向量寄存器(PIVR)映射在数据存储器空间中的地址为701Eh, 该寄存器的16位V15-V0, 为最近一次被应答的外设中断的地址向量。 外设中断请求寄存器0(PIRQR0)外设中断请求寄存器0(PIRQR0)映射在数据存储器空间中的地址为7010h, 寄存器的格式如下: 位15-0: 外设请求标志位IRQ0.15-IRQ0.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起注: 写入1会发出一个中断请求到DSP核, 写入0无影响。该寄存器16个位所对应的外设如表2.5所示。 662.3 系 统配置和中断 外设中断请求寄存器1(PIRQR1)外设中断请求寄存器1(PIRQR1)映射在数据存储器空间中的地址为7011h, 该寄存器的格式如下: 位15: 保留位, 读出为0, 写入无影响。 位14-0: 外设请求标志位IRQ1.14-IRQ1.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起注: 写入1会发出一个中断请求到DSP核, 写入0无影响。该寄存器16个位所对应的中断如表2.6所示。 672.3 系 统配置和中断 外设中断请求寄存器2(PIRQR2)外设中断请求寄存器2(PIRQR2)映射在数据存储器空间中的地址为7012h,寄存器的格式如下: 位15: 保留位 位14-0: 外设请求标志位IRQ2.14-IRQ2.0 0-无相应外设的中断请求 1-相应外设的中断请求被挂起注: 写1会发出一个中断请求到DSP核, 写0无影响。该寄存器16个位所对应的中断如表2.7所示。 682.3 系 统配置和中断 外设中断应答寄存器0(PIACKR0)外设中断应答寄存器0(PIACKR0)映射在数据存储器空间中的地址为7014h,寄存器的格式如下: 位15-0: 外设中断应答位ICK0.15-ICK0.0 写入1-引起相应外设的中断应答被插入, 将相应外设中断请求位清0。注: 通过向寄存器写1来插入中断应答, 而非更新PIVR寄存器的内容, 读该寄存器的结果通常为0该寄存器16个位所对应的中断如表2.8所示。 692.3 系 统配置和中断 外设中断应答寄存器1(PIACKR1)外设中断应答寄存器1(PIACKR1)的映射地址7015h, 格式如下: 位15: 保留位 位14-0: 外设中断应答位IAK1.14-IAK1.0, 作用同PIACKP0一样。该寄存器各个位所对应的中断如表2.9所示。 外设中断应答寄存器2(PIACKR2)外设中断应答寄存器2(PIACKR2)的映射地址7016h, 该寄存器的格式如下: 位15-0: 外设中断应答位IAK2.15-IAK2.0, 作用同PIACKP0一样。该寄存器各个位所对应的中断如表2.10所示。 702.3 系 统配置和中断 9、 复位LF2407 DSP器件有两个复位来源: 外部复位引脚的电平变化引起的复位; 看门狗定时器溢出引起的复位。 复位时, 复位引脚被设置为输出方式, 且被驱动为低, 向外部电路表明LF240x器件正在自己复位。 10、 无效地址检测 无效地址是不可执行的地址(例如: 外设存储器映射中的保留寄存器)。 LF240x一旦检测到对无效地址的访问, 就将系统控制和状态寄存器1(SCSRl)中的无效地址标志位(ILLADR)置1, 从而产生一个不可屏蔽中断(NMI)。 无论何时检测到对无效地址的访问, 都会产生插入一个无效地址条件, 无效地址标志位(ILLADR)在无效地址条件发生之后被置1,并一直保持, 直到软件将其清除。 产生原因: 是不正确的数据页面初始化。 712.3 系 统配置和中断 11、 外部中断控制寄存器寄存器XINT1CR和XINT2CR为用来控制和监视XINT1和XINT2两个引脚状态的两个外部中断控制寄存器。 在LF240x 中, XINT1和XINT2引脚必须被拉为低电平至少6个(或12个) CLKOUT周期才能被CPU内核识别。 722.3 系 统配置和中断 外部中断1控制寄存器XINT1CR映射到数据存储器空间的7070h, 格式如下: 位15: XINT1标志位。 在XINT1引脚上是否检测到一个所选择的中断跳变, 无论中断是否使能, 该位都可被置1。 0-没有检测到跳变; 1-检测到跳变 位14-3: 保留位 位2: XINT1极性。 该读/ 写位决定是在XINT1引脚信号的上升沿还是下降沿产生中断。 0-在下降沿产生中断; 1-在上升沿产生中断 位1: XINT1优先级。 该读/ 写位决定哪一个中断优先级被请求。 0-高优先级; 1-低优先级 位0: XINTl使能位。 该读/ 写位可使能或屏蔽外部中断XINTl 0-屏蔽中断; 1-使能中断 732.3 系 统配置和中断 外部中断2控制寄存器XINT2CR映射到数据存储器空间的7071h, 格式如下: 位15: XINT2中断请求标志位。 该位表示在XINT2引脚上是否检测到一个中断请求跳变, 无论该中断是否使能, 该位都可以被置1。 当XINT2的中断请求被应答时, 该位被自动清0。 0-没有检测到跳变; 1-检测到跳变 软件向该位写1(写0无效)或器件复位时, 该位也被清0 位14-13: 保留位 位2: XINT2极性。 该位决定XINT2引脚信号的上升沿还是下降沿产生中断。 0-在下降沿产生中断; 1-在上升沿产生中断 位1: XINT2的中断优先级。 0-高优先级; 1-低优先级 位0: XINT2的中断使能位。 0-屏蔽该中断; 1-使能该中断 742.4 程序控制 程序控制执行一个或多个指令块的次序调动 通常, 程序是顺序执行的, 器件执行这些连续程序存储器地址处的指令 有时, 程序必须转移到非顺序的地址并在新地址处开始顺序执行指令 LF240x DSP支持调用、 返回和中断 752.4 程序控制 1、 程序地址的产生 程序流要求处理器在执行当前指令的同时产生下一个程序地址(顺序或非顺序) LF240x器件程序地址产生逻辑使用下列硬件: 程序计数器(PC): 16位PC取址时对内部或外部程序存储器进行寻址。 程序地址寄存器(PAR): 驱动程序地址总线位总线, 同时为读/写程序提供地址。 堆栈: 程序地址产生逻辑包括一个16位宽、 最多可保存8个返回地址的硬件堆栈, 也可用于暂存数据。 微堆栈(MSTACK): 有时程序地址产生逻辑使用这个16位宽、1级深的堆栈保存一返回地址。 重复计数器(RPTC): 16位的RPTC与重复指令RPT一起, 用来确定RPT后面的一条指令重复执行的次数。 762.4 程序控制 程序计数器(PC) 程序地址产生逻辑利用16位的PC寻址内部和外部程序存储器。 PC含有要执行的下一条指令的地址。 经程序地址总线(PAB )从程序存储器中取出该地址中的指令, 并将其装入指令寄存器。 指令寄存器装入后, PC内容为下一地址。 LF240x可以采用多种方法装载PC, 从而适应顺序和非顺序的程序流。 加载方法见表2.12(P47)。 772.4 程序控制 堆栈 LF240x具有16位宽度、 8级深度的硬件堆栈。 在调用子程序或发生中断时, 程序地址产生逻辑利用该堆栈保存返回地址。 当指令使CPU进入子程序或中断使其进入中断服务程序时, 返回地址自动装入堆栈的栈顶, 该操作不需附加周期。 当子程序或中断服务程序完成时, 则返回地址从栈顶送到程序计数器。 当8级堆栈不用于保存地址时, 在子程序或中断服务程序内, 堆栈可用于保存上下文数据或其他存储用途。 782.4 程序控制 用户可使用的两组指令访问堆栈 PUSH(压入)和POP(弹出): PUSH指令把累加器的低半部分copy到栈顶; POP指令将栈顶的数据copy到累加器低半部分。 PSHD和POPD: 当子程序或中断嵌套超过8级时, 可利用这些指令在数据存储区构建堆栈。 PSHD将数据存储器中的值压入栈顶;POPD将栈顶的值弹到数据存储器。 每当一个数压入栈顶, 堆栈中每级的内容都下移一级, 栈底内容则丢失。 因此, 如果没有弹出而又连续压入多于8次, 或压入的次数比弹出的次数多于8次时, 就会丢失数据(堆栈溢出)图2.13(P48)。 弹出操作于压入操作相反, 把堆栈中每一级的值都copy到较高的一级, 连续7次弹出后的任何弹出操作产生的值都是初始栈底的值,图2.14(P49)。 792.4 程序控制 微堆栈(MSTACK) 程序地址产生逻辑在执行某些指令前利用16位宽、 1级深的MSTACK保存返回地址。 这些指令利用程序地址产生逻辑提供双操作数指令中的第2个地址, 它们是: BLDD、 BLPD、 MAC、 MACD、 TBLR和TBLW。 重复执行时, 利用PC使第一个操作数地址增1, 并使用辅助寄存器算术单元产生第二个操作数地址。 使用时, 返回地址被压入MSTACK; 重复指令执行完后,MSTACK的值被弹出并送至程序地址产生逻辑。 MSTACK不可用于存储指令(不同于STACK) 。 802.4 程序控制 2、 流水线操作 指令流水线包括执行指令时发生的一系列总操作。 LF240x流水线个独立阶段: 取指令、 指令译码、 取操作数和执行指令。 这4个独立阶段在任意给定周期里, 可能有1~4条不同的指令处于激活状态。 812.4 程序控制 对用户来说, 除下列情况外, 流水线基本上是不可见的 紧跟在修改全局存储器分配寄存器(GBEG)后的单字、单周期指令使用先前的全局映射数据存储器。 NORM指令修改辅助寄存器指针(ABP), 而且在流水线的执行阶段使用当前辅助寄存器。 如果后面的两个指令字改变当前辅助寄存器或ARP的值, 那么这些操作是在流水线的译码阶段进行的, 使得NORM指令使用了错误的辅助寄存器, 并使后续指令使用错误的ARP值。 822.4 程序控制 3、 无条件转移、 调用和返回 无条件转移 总是被执行, PC装入指定...

http://allpennsylvania.com/suanshuxiayi/107.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有