您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

TMS320VC5416并行自举的巧妙实现

时间:2007-1-20栏目:电子通信论文

对SST39VF200的编程操作

通常,在对FLASH进行编程之前,必须将FLASH中待写的区域进行擦除,然后才能进行编程操作。需要注意的是,每次对FLASH发出操作命令后,必须等到FLASH完成本次操作才能发送下一个操作命令。判断FLASH执行命令完毕的方式有两种,一是利用数据位D7判断,如果FLASH尚未完成操作,则读该位总是为低,完成操作后该位变成高;二是利用数据位D6判断,如果FLASH尚未完成操作,则相邻两次读到的D6位的值不同。当两次读到的D6位的值都是一样的,表明FLASH完成了本次操作。

下面以数据位D6判断操作完成与否,说明TMS320VC5416对SST39VF200写操作的具体过程,其它操作过程与该过程基本相同。

Void Word_Program(uint * Ad,uint DQ) //Ad为编程地址,DQ为编程数据

{

uint *Ad_Temp,Temp1,Temp2; //定义临时地址指针和数据变量

Ad_Temp=(uint *)(0x55555); //第一个写周期

*Ad_Temp=0x5555; //给地址0x5555,写数据0x00AA

Ad_Temp=(uint *)(0x2AAA); //第二个写周期

*Ad_Temp=0x0055; //给地址0x2AAA,写数据0x0055

Ad_Temp=(uint *)(0x5555); //第三个写周期

*Ad_Temp=0x00A0; //给地址0x5555写数据0x00A0

*Ad=DQ; //给编程地址写编程数据

Again;Temp1=*Ad & 0x0040; //两次读D6(Toggle Bit)

Temp2=*Ad & 0x0040;

If(Temp1!=Temp2) //判断是否命令执行结束,否则继续读Toggle Bit

goto Again;

}

图2

3 TMS320VC5416的并行自举

通过在系统编程可以实现将执行代码写入FLASH。如果确定FLASH中用户程序代码的存储格式并正确自举以实现脱机运行是整个在系统编程的重点。

3.1 自举表

在介绍DSP并行自举过程之前,必须对DSP的自举表加以说明。必须对DSP的自举表加以说明。自举表需按照TI公司规定的格式来创建。该表中存放在DSP初始化时要用到的特殊寄存器如SWWSR、BSCR等的值、程序入口地址、各段的目标首地址和长度以及要执行的代码。

3.2 并知自举过程

完整的并行自举的流程图如图2所示。

SST39VF200 FLASH存储器是16位的,所以实际采用的是16位并行自举,DSP内部的引导程序从数据空间地址0xFFFF读取自举表首地址,最后从自举表中将可执行代码搬移到DSP对应的RAM中。

3.3 "两次下载法"实现并行自举

如何按照规定的自举表格式将表中的各项内容写入到外挂的FLASH中去?普通的做法是利用hex200.exe文件将*.out文件转换后*.hex格式,然后读取*.hex文件,将其写入FLASH。这里采用一种更简便的“两次下载法”将自举表写入FLASH,整个过程无需文件转换和文件读取,并且完成此过程的代码很小,几乎不占用DSP内部的存储空间。

所谓的“两次下载法”就是通过仿真

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 3 4 下一页