TI C6000 boot实现过程,SDRAM程序加载

2015-12-21 23:21 阅读 519 次 评论 0 条

前面写了c6000 DSP boot实现过程,将生成out文件之后,如何转换为.hex,然后再转换为.bin文件的过程进行了描述。然而C3713的内部RAM只有256KB,按照前一日志的说明,如果程序大于256KB,岂不是不能boot运行。其实并不是,如果程序较大或者程序运行需要的存储空间较大,我们可以通过扩展SDRAM来增加程序运行与数据存储的空间。

首先是在线仿真(emulation),能够将程序生成out文件,并且load program到指定的SDRAM地址空间,这就需要在.cmd文件中为SDRAM指定地址空间,并且将不同的代码段分配到SDRAM对应的空间,如下图所示。

clip_image002

这样操作之后,进行DSP在线仿真是可以正常进行的。但是当程序调试完成需要烧写到Flash中boot运行,按照以前的方法直接做就不行了。

解决方法如下:

需要将boot_c671x_2.s62的文件做一个修改,增加从copyTable中读取程序长度,起始地址,然后分地址块加载,如下图所示,将copyTable首地址读入寄存器。

clip_image004

然后定义一个copyTable,如下图所示

clip_image006

表的最后一个块的内容必须是全零,这样搬移代码程序才会结束,然后跳转到main函数处执行。

有同学可能会问,上面的代码copyTable中的地址是如何确定的?

是通过.cmd文件确定的,并且烧写Flash的工程的.cmd文件与在RAM运行的.cmd文件有些不同,如下图所示。

clip_image008

clip_image010

将.text段的程序,放到VMEM(也就是虚拟的内部RAM空间中),而运行时在SDRAM0地址空间内。

通过以上设置之后,生成.out文件,然后按照以前的方法生成.bin文件,烧写放到Flash中就可以正常boot运行。

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

发表评论


表情