双片ADSP-21160系统的程序加载设计
}
下是对共享的外部存储区的声明,比如外挂的SRAM等器件的存储空间
{ OUTPUT(shared.sm)
SECTIONS
{ dxe_dmex
{ INPUT_SECTIONS( shared.doj(sram_da) )
} >mem_dmex
}
}
PROCESSOR ID1 //处理器 ID1 的段定义.
{ LINK_AGAINST(ID2.dxe)
OUTPUT(ID1.dxe)
SECTIONS
{ dxe_rth
{ INPUT_SECTIONS( ID1.doj(seg_rth) $LIBRARIES(seg_rth))
} >mem_rth
dxe_pmco
{ INPUT_SECTIONS( ID1.doj(seg_pmco) $LIBRARIES(seg_pmco))
} >mem_pmco
dxe_pmda
{ INPUT_SECTIONS( ID1.doj(seg_pmda) $LIBRARIES(seg_pmda))
} >mem_pmda
dxe_dmda
{ INPUT_SECTIONS( ID1.doj(seg_dmda) $LIBRARIES(seg_dmda))
} >mem_dmda
}
}
PROCESSOR ID2 //处理器 ID2 的段定义
{
LINK_AGAINST(ID1.dxe)
OUTPUT(ID2.dxe)
SECTIONS
{ dxe_rth
{INPUT_SECTIONS( ID2.doj(seg_rth) $LIBRARIES(seg_rth))
} >mem_rth
dxe_pmco
{ INPUT_SECTIONS( ID2.doj(seg_pmco) $LIBRARIES(seg_pmco))
} >mem_pmco
dxe_pmda
{INPUT_SECTIONS( ID2.doj(seg_pmda) $LIBRARIES(seg_pmda))
} >mem_pmda
dxe_dmda
{INPUT_SECTIONS( ID2.doj(seg_dmda) $LIBRARIES(seg_dmda))
} >mem_dmda
}
}
通过以上的定义,就实现了在一个LDF文件中声明了两片AD21160的存储空间,以及多片存储区映射(MMS),和共享片外存储区。
3. 烧写双片SHARC的流程实例
新建一个工程,采用以上的LDF文件声明。
然后编写两个.asm文件:ID1.asm,ID2.asm。
这两个.asm文件都有独立的中断向量表,可以独立执行各自的程序。
例如,可以在ID1.asm中让FLAG0和FLAG1输出反相的方波,在ID2.asm中让FLAG2和FLAG3输出另一个频率的反相的方波。
编译通过后,可以找到新生成的可执行文件ID1.DXE,ID2.DXE。
在VISUAL DSP++集成环境中,选择工程属性(Project Option),改变如下:
javascript:window.open(this.src);" style="cursor:pointer;"/>
1.如上图,把Type由DSP executable file改为Loader file;
javascript:window.open(this.src);" style="cursor:pointer;"/>
2.如上图,选定Multiprocessor,就可以在被激活的选择框中选择要使用的.DXE文件。在1处,选择ID1.DXE;在2处,选择ID2DXE。这意味着将对第一片加载ID1.DXE,对第二片加载ID2.DXE。Kernel file选择默认的160_prom.dxe,该文件是由AD提供的加载核文件。在Output file中设定输出文件名(在这里是Two_SHARC.ldr);选定ASCII格式,将产生16bit的数据文件;boot type选定eprom,这将产生适合从eprom中加载的数据文件。
3.一切完成后,进行一次编译。就可以在DEBUG文件夹里找到生成的Two_SHARC.ldr。
4.接好仿真器后,打开FLASH烧写程序,把要烧结的文件名添加到程序中。运行FLASH烧结程序,就把两片加载程序烧到FLASH里了。
5.关闭VisualDSP,拔掉仿真器,重新启动目标板,按下RESET,通过示波器观测第一片DSP的FLAG0和FLAG1,和第二片DSP的FLAG2和FLAG3,检查是否有对应的反相方波输出。如果有,说明双片AD21160加载成功。
4. 结 束 语
美国AD公司的SHARC系列DSP的多片级连能力是其特点之一,从本文介绍的两片系统加载方案可以推知多片SHARC系列DSP芯片系统的加载也是类似的。多片系统同样也要注意系统的硬件架构,包含多片DSP芯片之间的连接方式,总线仲裁机制,以及与FLASH MEMORY之间的连接。软件上对.LDF的设置是关键,它决定了多片DSP之间的相互访问的存储分区。多片SHARC系统会大大发挥该系列芯片强大的浮点处理能力,在通信,雷达等方面有重大应用。
作者联系:hanwei2004@sohu.com