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.

6713B SDRAM



C6713B 程序烧到FLASH中,程序过大是在SDRAM中跑的,程序很小时是没有问题的,程序大一点就不行跑一会儿就死掉。

还有一个奇怪的问题就是SWITCH语句,SWITCH中语句过大会导致系统重启,不知道为什么?

上面的问题 在用仿真器跑时是没有问题的,烧写到FLASH运行就有问题。

会不会是我的CMD文件有问题呢?希望大家能帮忙分析分析。谢谢!

  • 你好,FLASH运行与仿真器调试还是有差别的。建议烧写完后,load symbole单步调试一下程序,看一下与仿真情况下有哪些不同。

  • 程序烧到FLASH中,启动后是将程序搬到SDRAM中运行的。(程序不是在FLASH中运行)

  • 这是我的CMD文件

    -stack 0x1000

    -heap 0x1000

    -c

    -x

    MEMORY

    {

       INT:           o = 00000000h   l = 00000200h /*增加中断向量段*/    

       BOOTRAM:       o = 00000200h   l = 00000200h /*引导代码段*/

       IRAM:          o = 00000400h   l = 0000FA00h /*应用程序运行地址*/                          

       SDRAM:       o = 80000000h   l = 04000000h /*外部SDRAM地址这个没有用到*/

    FLASH_INT:     o = 0x90000000  l = 00000200h /*中断向量段在Flash中的位置*/

       FLASH_BOOT:    o = 0x90000200  l = 00000200h /*引导代码段在Flash中的位置*/

       FLASH_REST:    o = 0x90000400  l = 000F0000h /*应用程序在Flash中的位置*/

    }

    SECTIONS

    {

       .vectors : load = FLASH_INT, run = INT /*增加中断向量段的加载及运行地址定位*/

    .boot_load : load = FLASH_BOOT, run = BOOTRAM/*BOOTRAM  */

       /* Initialized User Code Section */

       .text   : load = FLASH_REST, run = SDRAM/*IRAM */

    /* .text: {} >IRAM | SDRAM*/

        LOAD_START(_text_ld_start),

        RUN_START(_text_rn_start),

        SIZE(_text_size)

       /* This is also a special initialized data section, which could stay

          in ROM, however probably not desirable, due to Slow ROM access times.

          const values never change, by definition. */

       .cinit    > FLASH_REST

    /*  

       .const      >       IRAM

       .stack      >       IRAM

       .bss        >       IRAM

       .data       >       IRAM

       .far        >       IRAM

       .switch     >       IRAM

       .sysmem     >       IRAM

       .cio        >       IRAM

    */

       .csldata > SDRAM

       .stack >   SDRAM

       .far >   SDRAM

       .tables >   SDRAM

       .data   >   SDRAM

       .bss >   SDRAM

       .sysmem >   SDRAM

       .switch >   SDRAM

       .cio    >   SDRAM

    .const >   SDRAM

    }                            

  • load symbole单步调试,发现程序会死在 一个除法的语句上,但仿真器跑是没有任何问题的,能否帮忙分析分析下面有我的CMD文件。。