在DSP领域,TI公司(德州仪器公司)一直处于世界霸主地位,它生产的TMS320系列DSP芯片以其独特的哈佛结构、硬件密集型方案和灵活的指令系统成为数字信号处理器产业中的领先者[1]。其C5000系列DSP芯片具有功耗小、高度并行等优点,可以满足众多领域的实时处理要求。尤其是新近推出的TMS320VC5402及 TMS320UC5402(简称’C5402)以其独有的高性能、低功耗及低价位等优势,在推出之初便受到业界人士的普遍欢迎。
为充分利用DSP快速运行的优点,通常希望用户程序能在DSP中高速运行,这就需要运用DSP自举引导功能。本文以’C5402为例,说明自举引导的特点及自举表建立的步骤。
1 几种自举引导方式
1.1 自举引导方式简介
众所周知,欲获得全速的DSP运行速度,方法之一是在DSP芯片出厂前将用户程序掩膜在其片内的ROM上。这种方法对大部分应用场合并不适用,且成本很高。对大多数用户而言,可行的方法是利用DSP自举引导功能。
Bootlooader(自举引导程序,也称引导装载程序)是在出厂前固化在DSP芯片内ROM中的一段程序代码,其主要功能是在上电或复位时将用户程序从外部加载至程序存储器(片内RAM或扩展的RAM)中,以便实现高速运行。因此,用这种方法可以以较低的成本实现高速运行。不同型号的DSP,其Bootlooader也不同。如TMS320C54X系列的DSP提供了四种自举引导方法[2]:并行EPROM、并行I/O口、串行口及主机接口HPI自举引导方式,它们适用于不同的应用场合。
1.2 ’C5402 DSP自举引导方式
新近推出的’C5402 DSP片内ROM掩膜的Bootlooader程序与TMS320C54X系列的其它DSP有较大的不同,它包括以下五种自举引导方式:主机接口HPI、并行口、标准串行口、8位串行EEPROM及I/O口自举引导方式。
DSP上电复位后,首先检查其MP/引脚,如果该引脚为高电平,说明DSP被设置为微处理器工作方式,即从外部程序存储器0FF80h地址开始执行用户程序;若该引脚为低电平,说明DSP被设置为微计算机工作方式,即从片内ROM的0FF80h起执行程序。’C5402 DSP片内4K ROM掩膜了TI设计的几段程序,其中包括自举引导程序,具体内容如表1所示[3]。因此,为利用自举引导功能,必须将DSP设置为微计算机工作方式,即MP/=0。
由表1可见,从片内ROM的0FF80h地址开始存放的是中断向量表,它实为一条分支转移指令(BD 0F800h)。该指令使程序跳转至0F800h,并从此开始执行自举引导程序。
在执行自举引导搬移程序之前,首先进行初始化,其程序片段如下:
0000:F800
SSBX INTM ; INTM=1,使中断失效
STM #0FFFFh,IFR ; 清除IFR标志
LD #0h,DP ; DP=0,数据存储器页指针为0
ORM #02B00h,ST1 ; XF=INTM=OVM=SXM=1
ORM #020h,PMST ; OVLY=1
STM #07FFFh,SWWSR ; SWWSR=07FFFh
STM #07Dh,SP ; SP=07Dh
从以上程序可看出,初始化的内容主要包括:
①关闭所有可屏蔽中断(INTM=1);
②将片内DARAM映射至程序/数据存储空间(OVLY=1);
③将程序、数据及I/O存储空间均设置为7个等待状态(SWWSR=07FFFh)。
初始化完成后,根据外部设定的条件,选择不同的自举引导方式,判断条件是有先后顺序的,其流程如图1所示。
图1中各种自举引导方式各有特点[3]: