This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于6455的bootloader的问题



大家好:

      关于6455的二次bootloader的问题;以前使用6455,只使用L2空间,因此下载时只需将L2的数据代码下载至FLASH,上电后将全部其引导至L2即可。

      现在的问题是,程序中使用了DDR:

    #pragma DATA_SECTION(gBufferRcvPing, ".ddr");Uint8 gBufferRcvPing[1048576] = {0};

    (1)是否需要将DDR占用的空间烧写进FLASH??  是否bootloader的时候 需要将该数据引导至DDR??  为什么??

    (2)如果没有引导DDR的数据(个人认为他是数据空间),是否会影响程序的自启动??  为什么?

  • 只要是initialized section初始化段都需要保存到flash中,不管它在运行时是在L2还是在DDR中。

  •     (1)是否需要将DDR占用的空间烧写进FLASH??  是否bootloader的时候 需要将该数据引导至DDR??  为什么??

    看你的数据是否初始化了。如果仅仅是数据指针,而不是数组的话,可以不用烧写进flash。但是如果是数组的话,那就需要了。

    我的实用经验就是定义指针,指向ddr内存空间。在程序boot完 初始化完成后数据来了就进ddr。

        (2)如果没有引导DDR的数据(个人认为他是数据空间),是否会影响程序的自启动??  为什么?

    如果你定义的数组,可以从生成out文件的map文件里面查看ddr数据区是否是0就是空的 还是有数据的。应该是有数据的。

    有数据你不烧,那当然会有问题的。