新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > TMS320VC5410在线并行自举的实现

TMS320VC5410在线并行自举的实现

——
作者:谭永峰,关可,梁佳 (长安大学 陕西西安 710064) 时间:2007-01-26来源:《现代电子技术》收藏

tms320vc5410是德州仪器公司(ti)2000年推出的一款性价比极高的16位定点数字信号处理器,其操作速率最高可达100mips。他采用先进的修正哈佛结构,片内有8条总线、cpu、在片存储器和在片外围电路等硬件,加上高度专业的指令系统,使其具有功耗小、高度并行等优点,可以满足电信等众多领域的实时处理要求,但是tms320vc5410片上的只读存储器(rom)只能采用掩模编程的方式并且必须把代码交给dsp厂家,成本较高,因此一般用户在使用时需要外部扩展程序存储器,e2prom可以在线擦写,且掉电后数据不会丢失,具有体积小、功耗低等特点,是作为tms320vc5410外扩程序存储器的一种较好选择。通常情况下,要把ccs编译生成的coff格式的文件通过hex500转换成hex格式的文件,并最终通过编程器把转换过的代码烧写进e2prom(或flash等),本文提出了一种直接在ccs环境下通过在线编程来完成片外存储器烧写,实现并行引导的新方法。

1 tms320vc5410 dsp的自举原理

dsp上电复位后从片外存储器读入程序的过程叫做自举(bootloader)。tms320vc54xx dsp芯片内部设置有bootloader程序,其主要作用是在系统上电复位后,将用户程序从外部存储器装载到dsp的内部随机存储器并运行程序,有多种bootloader方式可将外部程序装入dsp中,这些方式包括串口方式,hpi方式,并行方式和warm方式,此外dsp还支持8位或16位数据总线的外部存储器件及多块外部存储器件的dootloader方式,上电复位后,如其mp/mc引脚为低电平,则tms320vc5410进入bootloader模式,从0xff80单元开始执行片内引导装载程序,进入引导程序后,如有int2请求中断,则进入hpi引导方式;如有int3请求中断,则进入串口引导模式;若没有中断请求,系统进入并行引导模式,当进入并行引导模式后,tms320vc5410首先在i/o空间oxffff单元(若i/o为空则跳到数据存储器空间)读取一个地址,然而跳转到这一地址,根据地址单元的数据判断是16位并行引导还是8位并行引导,接着依次读入以下内容,swwsr、bscr寄存器所需要配置的值,程序入口地址所在的页面、程序入口地址、程序块长度、程序存放目标地址所在的页面和程序存放目标地址;最后tms320vc54lo开始读取程序代码并将其装载到片内存贮器中。

本文引用地址:http://www.eepw.com.cn/article/21463.htm

2 tms320vc5410自举的实现

为实现在线并行引导,即把用户程序烧进e2prom,需要把程序代码分为两段:一段为用户代码(即被烧写部分),另一段为烧写代码。用ccs把这两部分代码编译链接成同一个0ut文件(即coff格式的文件),然后在ccs环境下将该0ut格式的文件下载到tms320vc5410的内存中,此时tms320vc5410内存里的文件已经转换成相应的hex格式,此时只要从烧写代码处在线调试执行程序,即可把用户代码烧进e2prom,从而完成自举表的烧写。由于tms320vc5410的数据总线是16位,而sst29le010的数据总线为8位,因此在数据传输过程中要进行移位操作。若采用16位并行引导时,则不用进行移位操作。

具体操作步骤如下:

(1)将dsp的mp/mc引脚置高,让dsp工作在微处理器方式。

(2)将第一段代码通过仿真器下载到dsp中,但不运行该代码。

(3)将第二段代码通过仿真器下载到dsp中,运行此代码。

(4)代码2运行结束后,去掉仿真器,并将mp/mc引脚置低,让dsp工作在微型计算机方式。

(5)复位dsp,dsp独立运行。

2.1 硬件连接

sst29le010是sst推出的一种e2prom,他有1 mb的空间,分为8页,每页有128 kb的空间;工作电压仅为3 v。因此用sst29le0lo来作为tms320vc5410的外部存贮器。sst29le010与tms320vc5410的连接见图1。


gal16v8用于控制sst29le010的选通,其表达式如下:

/ce#=/ds*a15
we#=mstrb+r/w
oe#=mstrb+/r/w

2.2 软件的编写

程序代码如上所述,分为两段,在编程过程中要注意在链接命令文件中.display和.text在地址上不能覆盖。第一段代码为用户程序(包括自举初始化的状态字),即脱机运行的程序代码。本文的目的就是要把这部分代码烧写进e2prom。第二段代码负责把第一段代码烧写进e2prom。代码如下:

用ccs将两部分代码编译成同一个coff文件,下载到dsp的内存,此时在dsp内存中的文件已经转成hex格式的文件。然后将pc指针定位到.text处开始运行、即可把用户程序烧写进从地址8000h开始的e2prom外部数据存储器中去,当脱机运行时,tms320vc5410进入并行引导,把sst29le010中的代码复制到从地址0100h开始的片内程序存储器中,然后pc指针定位至0100h处并开始执行。

3 结语

通过本文介绍的方法,在不需要任何其他工具的情况下实现了tms320vc5410的自举引导,本方法简单易行,易于实现,没有编程器的情况下,本方法是一种比较好的方案,并且这在烧写贴片flash芯片时也相当实用,因很多贴片封装的存储器很难用编程器编程,更不可能频繁插拔,利用ccs在线编程则解决了这个问题。



关键词:

评论


相关推荐

技术专区

关闭