2.3 TMS320C62X通过IDMA接口把ADSP218x程序拷贝到内部存储器的方法
从TMS320C62x来看,IDMA接口只有三个寄存器,分别是IDMA控制寄存器IDMA_IAL,IDMA读数据寄存器IDMA_IRD和IDMA写数据寄存器ID-MA_IWR。
该三个寄存器的定义如下:
访问ADSP218x的内存单元一般需要三个步骤:
第一步:向IDMA控制寄存器写该数据单元所在的页面。编程只需要向IDMA_IAL控制寄存器写入恰当控制字即可。例如要向APSP218x的PM区的第5页写数据,则应该有下面的命令:
IDMA_IAL=0x8050;
第二步:向IDMA控制寄存器写该数据的地址。
如果是PM区,则该数据的地址为当前地址,如果是DM区,必须将当前地址加0x4000。例如要向PM区的0x0809区写数据,则应该有下面的命令:
IDMA_IAL=0x0809;
如果向DM区写数据,则有命令:
IDMA_IAL=0x0809+0x4000;
第三步:读写数据。如果是读数据,例如要将数据读入到unsigned short XX单元,则应该用下面的命令:
XX=(unsigned short)IDMA_IRD;
如果是写数据,例如要将数据unsigned short YY写入某地址单元,则应该用下面的命令IDMA_IWR=YY;
注意以后每读取或写数据,IDMA接口的地址指针自动加1。
TMS320C62x通过IDMA口,在启动后把AD-SP218x的应用程序拷贝到ADSP218x的内部存储器中。ADSP218x的应用程序作为一个asm文件供TMS320C62x应用软件调用,具体格式为:
2.4 FLASH的在线烧写
上面的工程文件经CCS系统编译、汇编后生成可执行COFF文件(.out),它需要转换成可供CCS调用的数据文件,通过JTAG口在线写入到FLASH中。利用TI公司的HEX6x.exe工具,将生成的.out文件转化成.hex输出文件。由于该HEX6x.exe工具是提供给EPROM编程器的,用EPROM编程器可直接烧写.hex文件。但对于FLASH的在线系统编程来说,生成的.hex文件不能直接使用,必须再编写一段程序将.hex的文件头去掉,分离出数据文件,最后才能由FLASH的在线烧写程序将最终的数据文件烧写到FLASH中。
hex6x命令行的格式为:
命令执行后会产生三个文件,这三个文件再经过转换融合成一个文件flash.asm,格式如下:
3 结 语
该系统经过单板和整机的高低温、振动、电磁兼容试验验证,系统在上电后能够100%的正常启动,性能稳定。该方法为编写由TMS320C62x和ADSP218x组成的双DSP系统的引导程序拓宽了思路,其设计思想对其他型号组成的双DSP系统的设计也具有借鉴意义。