大家好:
关于6455的二次bootloader的问题;以前使用6455,只使用L2空间,因此下载时只需将L2的数据代码下载至FLASH,上电后将全部其引导至L2即可。
现在的问题是,程序中使用了DDR:
#pragma DATA_SECTION(gBufferRcvPing, ".ddr");Uint8 gBufferRcvPing[1048576] = {0};
(1)是否需要将DDR占用的空间烧写进FLASH?? 是否bootloader的时候 需要将该数据引导至DDR?? 为什么??
(2)如果没有引导DDR的数据(个人认为他是数据空间),是否会影响程序的自启动?? 为什么?
Shine:
只要是initialized section初始化段都需要保存到flash中,不管它在运行时是在L2还是在DDR中。
zhiheng wei:
(1)是否需要将DDR占用的空间烧写进FLASH?? 是否bootloader的时候 需要将该数据引导至DDR?? 为什么??
看你的数据是否初始化了。如果仅仅是数据指针,而不是数组的话,可以不用烧写进flash。但是如果是数组的话,那就需要了。
我的实用经验就是定义指针,指向ddr内存空间。在程序boot完 初始化完成后数据来了就进ddr。
(2)如果没有引导DDR的数据(个人认为他是数据空间),是否会影响程序的自启动?? 为什么?
如果你定义的数组,可以从生成out文件的map文件里面查看ddr数据区是否是0就是空的 还是有数据的。应该是有数据的。
有数据你不烧,那当然会有问题的。
TI中文支持网