TMS320C2XX的软件堆栈
时间:09-26
来源:互联网
点击:
随着DSP运行速度越来越快和DSP芯片价格的越来越低,使DSP在各个领域的应用也越来越广泛。相比于常用的8031系列单片机来说,DSP的速度是8031的几十倍。因此,以前要用工控机才能实现的系统,现在便可以用DSP来实现了。
在Texas Instrument(美国德州仪器,简称TI)推出的系列DSP中,C2XX可以广泛应用于各种控制系统中,尤其适用于电机控制。在C2XX系列中,LF2406/LF2407是应用比较广泛的一种DSP芯片,它具有32k字的FLASH程序存储器,可以通过串行口在线编程。片内共有三部分内存:其中60H-7FH共有32个字,200H-3FFH共有512个字,800H-0FFFH共有2048个字。
C2XX的内存是按页来组织的,访问内存要先指定页指针(DP),然后在指令中再指定页内地址。每页只有128个字,直接寻址指令只能访问当前页内的数据。C2XX系列芯片具有8个辅助寄存器(AR0~AR7),这8个辅助寄存器都是16位的,可以访问64k的存储器空间。因为在任何程序片段内都有可能要临时保存数据,因此,为了不破坏页指针,用辅助寄存器作为堆栈指针是比较方便的。根据8031的编程习惯,一般把AR0和AR1作为间接寻址指针,把AR6和AR7作为计数单元,因此将AR5作为堆栈指针,定义如下:
SP.set AR5
由于C2XX的内存是不连续的,因此,把软件堆栈设在只有32字的60H-7FH段比较合适。因为有32个字再加上硬件堆栈本身的8个字,总共可以有40个字,这对绝大多数应用来说已经足够了。
在实际应用中,随时都有可能要临时保存数据, 特别是在中断程序中,要保存的内容更多。中断发生时硬件会自动保存当前的执行地址,然后跳转到中断向量所指的地址执行,执行完成后由RET指令返回到中断发生前的地址继续执行。在中断服务程序(ISR)中,一般都要保存ACC的值(32位)、当前数据页指针以及一些状态位。
为了方便使用,首先应定义两个宏:
其中PushRegs用于保存寄存器的值,而PopRegs用于恢复寄存器的值。应用举例如下:
如将Timer 3作为一般的1ms定时器使用,那么,中断服务程序如下:
因为该硬件只有8级堆栈,所以在编写程序时,应尽量使用跳转指令而少用CALL指令,这样在中断比较多的场合就不致于发生堆栈溢出。
在Texas Instrument(美国德州仪器,简称TI)推出的系列DSP中,C2XX可以广泛应用于各种控制系统中,尤其适用于电机控制。在C2XX系列中,LF2406/LF2407是应用比较广泛的一种DSP芯片,它具有32k字的FLASH程序存储器,可以通过串行口在线编程。片内共有三部分内存:其中60H-7FH共有32个字,200H-3FFH共有512个字,800H-0FFFH共有2048个字。
C2XX的内存是按页来组织的,访问内存要先指定页指针(DP),然后在指令中再指定页内地址。每页只有128个字,直接寻址指令只能访问当前页内的数据。C2XX系列芯片具有8个辅助寄存器(AR0~AR7),这8个辅助寄存器都是16位的,可以访问64k的存储器空间。因为在任何程序片段内都有可能要临时保存数据,因此,为了不破坏页指针,用辅助寄存器作为堆栈指针是比较方便的。根据8031的编程习惯,一般把AR0和AR1作为间接寻址指针,把AR6和AR7作为计数单元,因此将AR5作为堆栈指针,定义如下:
SP.set AR5
由于C2XX的内存是不连续的,因此,把软件堆栈设在只有32字的60H-7FH段比较合适。因为有32个字再加上硬件堆栈本身的8个字,总共可以有40个字,这对绝大多数应用来说已经足够了。
在实际应用中,随时都有可能要临时保存数据, 特别是在中断程序中,要保存的内容更多。中断发生时硬件会自动保存当前的执行地址,然后跳转到中断向量所指的地址执行,执行完成后由RET指令返回到中断发生前的地址继续执行。在中断服务程序(ISR)中,一般都要保存ACC的值(32位)、当前数据页指针以及一些状态位。
为了方便使用,首先应定义两个宏:
其中PushRegs用于保存寄存器的值,而PopRegs用于恢复寄存器的值。应用举例如下:
如将Timer 3作为一般的1ms定时器使用,那么,中断服务程序如下:
因为该硬件只有8级堆栈,所以在编写程序时,应尽量使用跳转指令而少用CALL指令,这样在中断比较多的场合就不致于发生堆栈溢出。
- F1aSh存储器在TMS320C3X系统中的应用(11-11)
- 基于PIC18F系列单片机的嵌入式系统设计(11-19)
- DSP在卫星测控多波束系统中的应用(01-25)
- 基于PCI总线的双DSP系统及WDM驱动程序设计(01-26)
- 利用Virtex-5 FPGA实现更高性能的方法(03-08)
- DSP与单片机通信的多种方案设计(03-08)