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.

F28377s采用的是ControlSUILTE提供的的2837xS_Generic_RAM_lnk.com,如何将数据存入FLASH



各位专家好:

         问题如题,flash在page0下定义如下:

FLASHA           : origin = 0x080002, length = 0x001FFE    /* on-chip Flash */
   FLASHB           : origin = 0x082000, length = 0x002000    /* on-chip Flash */
   FLASHC           : origin = 0x084000, length = 0x002000    /* on-chip Flash */
   FLASHD           : origin = 0x086000, length = 0x002000    /* on-chip Flash */
   FLASHE           : origin = 0x088000, length = 0x008000    /* on-chip Flash */
   FLASHF           : origin = 0x090000, length = 0x008000    /* on-chip Flash */
   FLASHG           : origin = 0x098000, length = 0x008000    /* on-chip Flash */
   FLASHH           : origin = 0x0A0000, length = 0x008000    /* on-chip Flash */
   FLASHI           : origin = 0x0A8000, length = 0x008000    /* on-chip Flash */
   FLASHJ           : origin = 0x0B0000, length = 0x008000    /* on-chip Flash */
   FLASHK           : origin = 0x0B8000, length = 0x002000    /* on-chip Flash */
   FLASHL           : origin = 0x0BA000, length = 0x002000    /* on-chip Flash */
   FLASHM           : origin = 0x0BC000, length = 0x002000    /* on-chip Flash */
   FLASHN           : origin = 0x0BE000, length = 0x002000    /* on-chip Flash */

数组定义:ADCdata1        : > FLASHE,    PAGE = 0  为何数组写不进数据?

  • 是2837xS_Generic_RAM_lnk.cmb文件

    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */

       BEGIN               : origin = 0x000000, length = 0x000002
       RAMM0               : origin = 0x000122, length = 0x0002DE
       RAMD0               : origin = 0x00B000, length = 0x000800
    /*   RAMLS0              : origin = 0x008000, length = 0x000800
       RAMLS1              : origin = 0x008800, length = 0x000800
       RAMLS2              : origin = 0x009000, length = 0x000800
       RAMLS3              : origin = 0x009800, length = 0x000800
       RAMLS4              : origin = 0x00A000, length = 0x000800*/
       RAMLS0_LS4         : origin = 0x008000, length = 0x002800

       RESET               : origin = 0x3FFFC0, length = 0x000002

       /* Flash sectors */
       FLASHA           : origin = 0x080002, length = 0x001FFE    /* on-chip Flash */
       FLASHB           : origin = 0x082000, length = 0x002000    /* on-chip Flash */
       FLASHC           : origin = 0x084000, length = 0x002000    /* on-chip Flash */
       FLASHD           : origin = 0x086000, length = 0x002000    /* on-chip Flash */
       FLASHE           : origin = 0x088000, length = 0x008000    /* on-chip Flash */
       FLASHF           : origin = 0x090000, length = 0x008000    /* on-chip Flash */
       FLASHG           : origin = 0x098000, length = 0x008000    /* on-chip Flash */
       FLASHH           : origin = 0x0A0000, length = 0x008000    /* on-chip Flash */
       FLASHI           : origin = 0x0A8000, length = 0x008000    /* on-chip Flash */
       FLASHJ           : origin = 0x0B0000, length = 0x008000    /* on-chip Flash */
       FLASHK           : origin = 0x0B8000, length = 0x002000    /* on-chip Flash */
       FLASHL           : origin = 0x0BA000, length = 0x002000    /* on-chip Flash */
       FLASHM           : origin = 0x0BC000, length = 0x002000    /* on-chip Flash */
       FLASHN           : origin = 0x0BE000, length = 0x002000    /* on-chip Flash */
       FLASHO           : origin = 0x0C0000, length = 0x002000    /* on-chip Flash */
       FLASHP           : origin = 0x0C2000, length = 0x002000    /* on-chip Flash */
       FLASHQ           : origin = 0x0C4000, length = 0x002000    /* on-chip Flash */
       FLASHR           : origin = 0x0C6000, length = 0x002000    /* on-chip Flash */
       FLASHS           : origin = 0x0C8000, length = 0x008000    /* on-chip Flash */
       FLASHT           : origin = 0x0D0000, length = 0x008000    /* on-chip Flash */
       FLASHU           : origin = 0x0D8000, length = 0x008000    /* on-chip Flash */
       FLASHV           : origin = 0x0E0000, length = 0x008000    /* on-chip Flash */
       FLASHW           : origin = 0x0E8000, length = 0x008000    /* on-chip Flash */
       FLASHX           : origin = 0x0F0000, length = 0x008000    /* on-chip Flash */
       FLASHY           : origin = 0x0F8000, length = 0x002000    /* on-chip Flash */
       FLASHZ           : origin = 0x0FA000, length = 0x002000    /* on-chip Flash */
       FLASHAA          : origin = 0x0FC000, length = 0x002000    /* on-chip Flash */
       FLASHAB          : origin = 0x0FE000, length = 0x002000    /* on-chip Flash */

    PAGE 1 :

       BOOT_RSVD       : origin = 0x000002, length = 0x000120     /* Part of M0, BOOT rom will use this for stack */
       RAMM1           : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
       RAMD1           : origin = 0x00B800, length = 0x000800


       RAMLS5      : origin = 0x00A800, length = 0x000800

    //   RAMGS0      : origin = 0x00C000, length = 0x001000
    //   RAMGS1      : origin = 0x00D000, length = 0x001000
       RAMGS0_GS1      : origin = 0x00C000, length = 0x002000
       RAMGS2      : origin = 0x00E000, length = 0x001000
       RAMGS3      : origin = 0x00F000, length = 0x001000
    //   RAMGS4      : origin = 0x010000, length = 0x001000
    //   RAMGS5      : origin = 0x011000, length = 0x001000
    //   RAMGS6      : origin = 0x012000, length = 0x001000
       RAMGS4_GS6   : origin = 0x010000, length = 0x003000

       RAMGS7      : origin = 0x013000, length = 0x001000
       RAMGS8      : origin = 0x014000, length = 0x001000
       RAMGS9      : origin = 0x015000, length = 0x001000
       RAMGS10     : origin = 0x016000, length = 0x001000
       RAMGS11     : origin = 0x017000, length = 0x001000
       RAMGS12     : origin = 0x018000, length = 0x001000
       RAMGS13     : origin = 0x019000, length = 0x001000
       RAMGS14     : origin = 0x01a000, length = 0x001000
       RAMGS15     : origin = 0x01b000, length = 0x001000
       
       CANA_MSG_RAM     : origin = 0x049000, length = 0x000800
       CANB_MSG_RAM     : origin = 0x04B000, length = 0x000800   
    }


    SECTIONS
    {
           codestart        : > BEGIN,     PAGE = 0
           ramfuncs         : > RAMM0      PAGE = 0
    //   .text            : >>RAMM0 | RAMD0 |  RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 | RAMLS4,   PAGE = 0
    //    .text            : >>RAMGS0 | RAMGS1 |  RAMGS2 | RAMGS3,   PAGE = 1
        .text            : > RAMGS4_GS6,     PAGE = 1
           .cinit           : > RAMM0,     PAGE = 0
           .pinit           : > RAMM0,     PAGE = 0
           .switch          : > RAMM0,     PAGE = 0
           .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used, */

           .stack           : > RAMM1,     PAGE = 1
           .ebss            : > RAMGS0_GS1,    PAGE = 1
           .econst          : > RAMLS5,    PAGE = 1
    //   .esysmem         : > RAMLS5,    PAGE = 1
        .esysmem            : > RAMGS12        PAGE = 1
        .cio                : > RAMGS13        PAGE = 1

        .F_wect          :> FLASHF     PAGE = 0

           ramgs0           : > RAMGS2,    PAGE = 1
           ramgs1           : > RAMGS3,    PAGE = 1

    #ifdef __TI_COMPILER_VERSION
       #if __TI_COMPILER_VERSION >= 15009000
        .TI.ramfunc : {} > RAMM0,      PAGE = 0
       #endif
    #endif
       
      /* Test specific sections */
       ADCdata1        : > FLASHE,    PAGE = 0//, ALIGN = CFFT_ALIGNMENT

    }

  • 请做过类似工作的同仁呢,帮忙指点一下,万分感谢!

  • 源代码里是怎么分配你的变量到ADCdata1的?