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