TI c6000 DSP boot实现过程

2015-12-14 13:00 阅读 745 次 评论 0 条

使用DSP必然会遇到boot加载Flash中的程序问题,而c6000基本都是采用二次加载,先加载1K区域内的代码,然后在搬移后续的正式程序代码。而前面1K区域的搬移代码基本就是应用TI官方的boot汇编编码。以C6713为例,基本就是4个文件,boot_64.h62,boot_c671x.h62,boot_c671x_2.s62,c6713_emif.s62,两个头文件与两个代码文件,文件列表如下图所示。

image

两个头文件的功能是定义DSP寄存器的地址,与Flash相关的地址,汇编代码文件完成emif等配置与完成后续代码从flash搬移到内容RAM中,然后完成跳转到main函数处执行。

以下为boot_c671x_2.s62文件中copy section中的部分代码,完成将copytable中地址对应的内容搬移到内部RAM中。

image

这种以copytable线性地址搬移的方式,对应的Flash中的程序需要与RAM中的程序一致,即对DSP而已,起始地址不同,但偏移地址一致。

这要求程序在编译生成.out文件后转换为.hex文件需要选择为intel格式的,此格式要求可以百度(以前写工具也提到了一些hex转bin方法与工具)。.out文件转hex文件,ti已经提供了工具,只是转换的时候需要给出不同的转换参数。如下图所示,-i表明转换为intel格式的hex文件,而后面指定为8bitrom。

image

运行方式可在命令行中输入@hex6x  boot.cmd,或直接做成批处理进行转换,然后可以TI DSP生成.out文件转换为.Bin文件,将bin文件按照顺序烧入Flash中即可,加点即可自动boot。

PS:c6414~C6416、c6414T~c6416T的加载方式与c6713是一样的。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:TI c6000 DSP boot实现过程 | 起点博客
分类:应用笔记 标签:, , ,

发表评论


表情