TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS5.3中3137如何使程序代码区定位在规定的区域内

1、使用串口的isp下载程序,程序代码应该从0X00020000开始,如何设置;

2、是否可支持程序在RAM中运行(觉得应该可以),如何设置,是否比FLASH中快,以前了解过DSP可以将FLASH的代码COPY到RAM中运行,这一条只是了解一下,实际可能不会用到,3137是否像STM的ARM-M3那样支持直接在RAM中运行程序,这样特别是开发板可以减少FLASH的使用频率,增加寿命。

3、从VIM章节了解到3137应该是不支持中断向量重定向的,但是在工程生成的.map文件中从0开始有20H字节的VECTORS是什么??

4、3137 reference Manual中de VIM 寄存器章节 offset 地址没有顺序往下排,在HAL生成的VimBase的定义中比如FIRQPR3应该是个reserved,不是只有96个中断吗,怎么会有4个32位的寄存器呢(HAL生成的代码是否不够严谨)

Jay:

Hi XiaoFeng,

1、请参考Wiki page上的Bootloader例程。http://processors.wiki.ti.com/index.php/TMS570_Hercules_MCU_Bootloader

2、程序可以在RAM中运行,请使用Memcopy函数,把程序从Flash中Copy到RAM中。

3、3137可以中断向量重定向,只要重新配置vimRAM数组就可以了。

4、你说的没错,FIRQPR3应该是没有的,请不要使用。同样,其他相类似的几组寄存器,最后一个“3”的请不要使用。

Regards,

Jay

XiaoFeng Jiang:

回复 Jay:

可能是我描述的不清楚,有关Bootload的Application code定位问题。

按照例程描述,应用程序代码是从0x00020000开始的,那么我在使用CCS编译link时,是不是要设置成代码从0x20000开始呢,不然下载进去不就乱套了。

是不是有像DSP2000系列的一样有一个CMD文件来进行link定位呢??例程中好像没有涉及!!

另外我注意到bootload程序没有使用中断,是否是为了防止和应用程序的中断相冲突??

Jay:

回复 XiaoFeng Jiang:

Hi XiaoFeng,

应用程序代码的地址定义不能与Bootloader有重叠。也是在CMD文件中定义的。如果用Halcogen生成的代码,CMD在sourse文件夹内,叫sys_link.cmd。

关于中断,应用程序是可以有中断的。因为在sys_startup.c里面,会把中断向量表重新初始化一遍,那样就不会与Bootloader的有冲突。

Regards,

Jay

赞(0)
未经允许不得转载:TI中文支持网 » CCS5.3中3137如何使程序代码区定位在规定的区域内
分享到: 更多 (0)