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.

load error program:flash api函数

Hi,all

   大家好,有个问题请教大家,芯片是F28335,环境是CCSV6.0.1,就是我在做bootloader二次升级的时候出现了问题。如图所示。

另外附上我的CMD文件及调用flash—api的函数,本人第一次使用flash_api函数做二次升级程序,烦请高手帮忙解答。

另外,我用另外一个controlsuit的例程进行了调试,选取的连接文件时F28335.cmd,发现是可以烧写到片子上的,因而可以排除芯片被锁的可能。

以下为工程的cmd文件:

MEMORY
{
PAGE 0:    /* Program Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */

	ZONE0       : origin = 0x004000, length = 0x001000     /* XINTF zone 0 */
	RAM_L0L1L2L3: origin = 0x008000, length = 0x004000	   /* on-chip RAM */
   	OTP         : origin = 0x380400, length = 0x000400     /* on-chip OTP */
    ZONE6       : origin = 0x100000, length = 0x100000     /* XINTF zone 6*/
    ZONE7A      : origin = 0x200000, length = 0x00FC00     /* XINTF zone 7 - program space */
   	FLASHH      : origin = 0x300000, length = 0x008000     /* on-chip FLASH*/
    FLASHG      : origin = 0x308000, length = 0x008000     /* on-chip FLASH*/
    FLASHF      : origin = 0x310000, length = 0x008000     /* on-chip FLASH*/
    FLASHE      : origin = 0x318000, length = 0x008000     /* on-chip FLASH*/
    FLASHD      : origin = 0x320000, length = 0x008000     /* on-chip FLASH*/
    FLASHC      : origin = 0x328000, length = 0x008000     /* on-chip FLASH*/
    FLASHB 		: origin = 0x330000, length = 0x008000 	/* on-chip FLASH */

   FLASHA      : origin = 0x338000, length = 0x007F80     /* on-chip FLASH */
   CSM_RSVD    : origin = 0x33FF80, length = 0x000076     /* Part of FLASHA.  Program with all 0x0000 when CSM is in use. */
   BEGIN       : origin = 0x33FFF6, length = 0x000002     /* Part of FLASHA.  Used for "boot to Flash" bootloader mode. */
   CSM_PWL     : origin = 0x33FFF8, length = 0x000008     /* Part of FLASHA.  CSM password locations in FLASHA */
   ADC_CAL     : origin = 0x380080, length = 0x000009     /* ADC_cal function in Reserved memory */
   
   IQTABLES    : origin = 0x3FE000, length = 0x000b50     /* IQ Math Tables in Boot ROM */
   IQTABLES2   : origin = 0x3FEB50, length = 0x00008c     /* IQ Math Tables in Boot ROM */  
   FPUTABLES   : origin = 0x3FEBDC, length = 0x0006A0     /* FPU Tables in Boot ROM */
   ROM         : origin = 0x3FF27C, length = 0x000D44     /* Boot ROM */        
   RESET       : origin = 0x3FFFC0, length = 0x000002     /* part of boot ROM  */
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E     /* part of boot ROM  */

PAGE 1:   /* Data Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
           /* Registers remain on PAGE1                                                  */

   	RAMM0       : origin = 0x000000, length = 0x000400     /* on-chip RAM block M0 */
   	BOOT_RSVD   : origin = 0x000400, length = 0x000080     /* Part of M1, BOOT rom will use this for stack */
   	RAMM1       : origin = 0x000480, length = 0x000380     /* on-chip RAM block M1 */
	RAML4L5L6L7       : origin = 0x00C000, length = 0x004000     /* on-chip RAM block L4 */
    /*RAML5       : origin = 0x00D000, length = 0x001000 */    /* on-chip RAM block L5 */
    /*RAML6       : origin = 0x00E000, length = 0x001000     /* on-chip RAM block L6 */
    /*RAML7       : origin = 0x00F000, length = 0x001000     /* on-chip RAM block L7 */
   ZONE7B      : origin = 0x20FC00, length = 0x000400     /* XINTF zone 7 - data space */

/*PAGE 2:
	RAMH0_L0L1L2L3    : origin = 0x3F8000, length = 0x004000   /* high 64k Lo_SARAM */

}

/* Allocate sections to memory blocks.
   Note:
         codestart user defined section in DSP28_CodeStartBranch.asm used to redirect code 
                   execution when booting to flash
         ramfuncs  user defined section to store functions that will be copied from Flash into RAM
*/ 
 
SECTIONS
{
   /* Allocate program areas: */
   /* The Flash API functions can be grouped together as shown below.
      The defined symbols _Flash28_API_LoadStart, _Flash28_API_LoadEnd
      and _Flash28_API_RunStart are used to copy the API functions out
      of flash memory and into SARAM */

   Flash28_API:
   {
        -lFlash28335_API_V210.lib(.econst) 
        -lFlash28335_API_V210.lib(.text)
   }                   LOAD = FLASHD,
                       RUN = RAM_L0L1L2L3,
                       LOAD_START(_Flash28_API_LoadStart),
                       LOAD_END(_Flash28_API_LoadEnd),
                       RUN_START(_Flash28_API_RunStart),
                       PAGE = 0

   .cinit              : > FLASHA,      PAGE = 0
   .pinit              : > FLASHA,     PAGE = 0
   .text               : > FLASHA,      PAGE = 0
   codestart           : > BEGIN,       PAGE = 0

   blockTransferbuffer1		: > RAML4L5L6L7,		PAGE = 1
   blockTransferbuffer2		: > RAMM1,		PAGE = 1

   ramfuncs            : LOAD = FLASHD,
                         RUN = RAM_L0L1L2L3,
                         LOAD_START(_RamfuncsLoadStart),
                         LOAD_END(_RamfuncsLoadEnd),
                         RUN_START(_RamfuncsRunStart),
                         PAGE = 0

   csmpasswds          : > CSM_PWL     PAGE = 0
   csm_rsvd            : > CSM_RSVD    PAGE = 0
   
   /* Allocate uninitalized data sections: */
   .stack              : > RAMM0       PAGE = 1
   .ebss               : > RAM_L0L1L2L3       PAGE = 0
   /*.esysmem            : > RAMM1       PAGE = 1*/

   /* Initalized sections go in Flash */
   /* For SDFlash to program these, they must be allocated to page 0 */
   .econst             : > FLASHA      PAGE = 0
   .switch             : > FLASHA      PAGE = 0

   /* Allocate IQ math areas: */
   IQmath              : > FLASHA      PAGE = 0                  /* Math Code */
   IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD 
   IQmathTables2    : > IQTABLES2, PAGE = 0, TYPE = NOLOAD 
   FPUmathTables    : > FPUTABLES, PAGE = 0, TYPE = NOLOAD 
         
   /* Allocate DMA-accessible RAM sections: */
   DMARAML4L5L6L7         : > RAML4L5L6L7,     		PAGE = 1
   /*DMARAML5         : > RAML5,     		PAGE = 1*/
   /*DMARAML6         : > RAML6,     		PAGE = 1*/
   /*DMARAML7         : > RAML7,     		PAGE = 1*/
   
   /* Allocate 0x400 of XINTF Zone 7 to storing data */
  ZONE7DATA        : > ZONE7B,    PAGE = 1

   /* .reset is a standard section used by the compiler.  It contains the */ 
   /* the address of the start of _c_int00 for C Code.   /*
   /* When using the boot ROM this section and the CPU vector */
   /* table is not needed.  Thus the default type is set here to  */
   /* DSECT  */ 
   .reset              : > RESET,      PAGE = 0, TYPE = DSECT
   vectors             : > VECTORS     PAGE = 0, TYPE = DSECT
   
   /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
   .adc_cal     : load = ADC_CAL,   PAGE = 0, TYPE = NOLOAD

}

/*
//===========================================================================
// End of file.
//===========================================================================
*/