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.

用AM1808裸机开发,复位后如何让自定义变量数据保持不变,不被清零?

Other Parts Discussed in Thread: AM1808

你好,我现在用AM1808裸机开发,使用了CCS5.2 。

现在发现我自定义的变量每次在复位时会自动清零,请问CMD文件应如何修改?谢了,急

代码请见下方,我自定义的RAM(MY_SECT)位于AM1808片内RAM中。

 

  CMD程序如下:

    
/* SPECIFY THE SYSTEM MEMORY MAP */

MEMORY
{
  DDR_MEM     : org = 0xC1080000   len = 0x2F7FFFF     /* RAM */

  ONCHIP_RAM     : org = 0x8001c000   len = 0x4000        /* L3 RAM  片内RAM */  

}

/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */

 

SECTIONS
{
    .init   : {
        system_config.lib<init.obj> (.text)
         } load > 0xC1080000
     
    .text    : load > DDR_MEM              /* CODE                              */
 .data    : load > DDR_MEM
    .bss     : load > DDR_MEM              /* GLOBAL & STATIC VARS              */
        RUN_START(bss_start),
     RUN_END(bss_end)
    .const   : load > DDR_MEM              /* SOFTWARE SYSTEM STACK             */
    .cinit   : load > DDR_MEM              /* SOFTWARE SYSTEM STACK             */
    .stack   : load > 0xC3FF7FFC           /* SOFTWARE SYSTEM STACK             */

    .my_sect: load > ONCHIP_RAM

}

 

 

变量定义如下:

#pragma DATA_SECTION(X_coor,"my_sect")
volatile long int X_coor; //

#pragma DATA_SECTION(Z_coor,"my_sect")
volatile long int Z_coor; // 

 

 现在每次复位后 变量X_coor及Z_coor中的内容自动被清为0,请问如何修改?谢谢

  • 你好,你在C文件中定义下面变量的时候,赋个初值不就可以了。

    #pragma DATA_SECTION(X_coor,"my_sect")
    volatile long int X_coor = xxx; //

    #pragma DATA_SECTION(Z_coor,"my_sect")
    volatile long int Z_coor = xxx; //