本设计中,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的加载程序。