新闻中心

EEPW首页>嵌入式系统>设计应用> 多片TSl01S的加载引导设计分析及实现

多片TSl01S的加载引导设计分析及实现

作者: 时间:2010-04-01 来源:网络 收藏

具体时,首先应由DSPl通过FLASH程序方式进行程序。即在DSPl程序加载完毕后,由DSPl再从FLASH中读出第二片,使DSP2(或者DSP4)的程序通过链路口。之后,再采用路口加载方式加载DSP2(或者DSP4),DSP1在等待DSP2加载完毕后,又从FLASH中读取DSP3的程序,并将DSP3的程序通过链路口DMA方式发送到DSP2(或者DSP4)中,而DSP2(或者DSP4)在收到第三片DSP3的程序后,同样通过链路口加载方式加载DSP3;……以此类推,直到完成所有的ADSP-TSlOlS的加载。
采用这种结构的多ADSP-系统,应将每片ADSP-的程序分开放置在FLASH的不同的地址段中。第一片ADSP-TSlOlS的程序存放在FLASH的从0开始的第一段地址中,第二片ADSP-存放在接着第一段地址后面的第二段地址空间中,第三片ADSP-TSlOlS存放在接着第二段地址后面的第三段地址空间中……以此类推。就可将不同的ADSP-TSl01S的程序放置在相应的地址空间中。但应该注意的是,每一片AD-SP-TSl01S程序存放的实际地址必须是16的倍数,因为ADSP-TSl01S的链路口每次必须传输4字(4*32 bits),而FLASH是8位的,所以每次将读取128位的程序代码,即16个FLASH的地址数据。图2所示是多ADSP-TSl01S的程序在FLASH中的存放情况。

本文引用地址://m.amcfsurvey.com/article/173397.htm


中,FLASH选用的是Atmel公司的AT49BV322D,并将其设置成4 M×8模式,因此,其byte管脚需要拉低,具体和DSP之间的硬件接
口电路如图3所示。


TigerSHARC处理器可支持8位、16位、32位、64位配置,这为不同类型的外部存储器接口带来了方便。选择FLASH器件系统加载的时候,使用TigerSHARC处理器向FLASH中执行写操作,不会自动把数据打包成字节,因此,当给FLASH写一个字时,这个字将驱动到外部总线[31:0]上。而FLASH存储器只连接TigerSHARC外部数据总线的低8位,因此只写入数据最低的一个字节,其数据的预备格式如图4所示。

3 自动的软件
由于采用EPROM和链路口相结合的方法来进行多DSP的程序加载,所以,除了最后一片DSP (DSP3)外,均要在没一个DSP程序的开始地方添加链路口加载程序。在VisualDSP++安装目录的ldr子目录下,ADI公司提供了标准加载核文件及相应的源程序(.ASM),同时也给出了链接描
述文件。一般可直接使用提供的标准加载核文件或对其相应的源程序进行简单修改(修改当前的DSP的接收链路口号即可),重新编译链接生成所需的加载核文件。
由于ADSP-TSl01S有三种方式(不考虑无方式),ADI公司相应的提供了三种不同的加载核文件 (分别为TSlOl_prom.dxe、TSlOl_ link.dxe、TSlOl_host.dxe)。这三个程序的核心思想和功能完全一致,只是由于使用的加载端口和方式不同,其在具体代码上稍有差异。综合以上的可以看出:ADSP-TSlOlS的复位引导从本质说包括两个方面:其一是在生成加载文件时,在起始部分额外增加256字的加载核文件;其二是在复位结束后,按照设定的引导方式的不同,自动从相应接口接收256字的代码(实际就是加载核文件)到内部存储空间的0x00~0xFF,并在完成这一接收过程后,从内部存储空间的0x00000000开始执行程序(实际就是执行加载核文件),最终由加载核文件来完成整个可执行程序的加载。
TigerSHARC只有在运行了加载核代码后才能继续加载用户程序。但是,加载核文件并不会永远占据内部存储空间的0x00~0xFF,因为加载核文件执行到最后会自动完成自身的覆盖。
是由四片TSl01级联的方式来构成多处理器系统,除了第一片DSP(DSPl)选择默认的EPROM加载外,其余的三片DSP都要选择LINK加载。同时,对于第一片DSP来说,先转发DSP2还是DSP4的程序是等价的,因为DSP2和DSP4本身在本设计中是等价的,都属于第二级DSP,而DSPl属于第一级,DSP3属于最后一级。同理,把DSP3作为谁的附属DSP均可以,因此不妨作为DSP4的下一级(本设计中采用这种连接方式)。第一片TS10l需要通过链路口来对第二和第三级的ADSP-TSl01S进行程序加载,同时需要在第一级的应用程序之前添加加载后续DSP的加载程序。



评论


相关推荐

技术专区

关闭