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.

F28069 带仿真器运行



如果DSP带着仿真器运行是一切正常,而去掉仿真器后运行一段时间就开始不稳定了。

请问是那里出了错误。

估计和cmd文件有关,请看:

其中的 FlASH与CLA_C 已经预定义。


MEMORY
{
PAGE 0 :   /* Program Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
   CLAPROGRAM  : origin = 0x009000, length = 0x001000   /* on-chip RAM block L3 */
   //RAMM0       : origin = 0x000050, length = 0x0003B0     /* on-chip RAM block M0 */

   //RAML5       : origin = 0x00C000, length = 0x002000     /* on-chip RAM block L5 */
   //RAML6   : origin = 0x00E000, length = 0x002000     /* on-chip RAM block L6 */
   //RAML7   : origin = 0x010000, length = 0x002000     /* on-chip RAM block L7 */
   //RAML8   : origin = 0x012000, length = 0x002000     /* on-chip RAM block L8 */
   RAML5L8     : origin = 0x00C000, length = 0x008000

   OTP         : origin = 0x3D7800, length = 0x000400     /* on-chip OTP */

   //FLASHH      : origin = 0x3D8000, length = 0x004000     /* on-chip FLASH */
   //FLASHG      : origin = 0x3DC000, length = 0x004000     /* on-chip FLASH */
   //FLASHF      : origin = 0x3E0000, length = 0x004000     /* on-chip FLASH */
   //FLASHE      : origin = 0x3E4000, length = 0x004000     /* on-chip FLASH */
   FLASHEH      : origin = 0x3D8000, length = 0x010000    /* on-chip FLASH */

   FLASHD      : origin = 0x3E8000, length = 0x004000     /* on-chip FLASH */


   FLASHC      : origin = 0x3EC000, length = 0x004000     /* on-chip FLASH */

   FLASHA      : origin = 0x3F4000, length = 0x003F80     /* on-chip FLASH */
   CSM_RSVD    : origin = 0x3F7F80, length = 0x000076     /* Part of FLASHA.  Program with all 0x0000 when CSM is in use. */
   BEGIN       : origin = 0x3F7FF6, length = 0x000002     /* Part of FLASHA.  Used for "boot to Flash" bootloader mode. */
   CSM_PWL_P0  : origin = 0x3F7FF8, length = 0x000008     /* Part of FLASHA.  CSM password locations in FLASHA */

   FPUTABLES   : origin = 0x3FD860, length = 0x0006A0   /* FPU Tables in Boot ROM */
   IQTABLES    : origin = 0x3FDF00, length = 0x000B50     /* IQ Math Tables in Boot ROM */
   IQTABLES2   : origin = 0x3FEA50, length = 0x00008C     /* IQ Math Tables in Boot ROM */
   IQTABLES3   : origin = 0x3FEADC, length = 0x0000AA   /* IQ Math Tables in Boot ROM */

   ROM         : origin = 0x3FF3B0, length = 0x000C10     /* 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                                                  */

   BOOT_RSVD   : origin = 0x000000, length = 0x000050     /* Part of M0, BOOT rom will use this for stack */

   //RAMM0       : origin = 0x000050, length = 0x0003B0     /* on-chip RAM block M0 */
   //RAMM1       : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   RAMM01      : origin = 0x000050, length = 0x0007B0

   CLA1_MSGRAMLOW  : origin = 0x001480, length = 0x000080
   CLA1_MSGRAMHIGH : origin = 0x001500, length = 0x000080

   CLARAM0     : origin = 0x008800, length = 0x000400     /* on-chip RAM block L1 */
   CLARAM1     : origin = 0x008C00, length = 0x000400     /* on-chip RAM block L2 */
   CLARAM2     : origin = 0x008000, length = 0x000800     /* on-chip RAM block L0 */

   RAML4       : origin = 0x00A000, length = 0x002000     /* on-chip RAM block L4 */

   USB_RAM     : origin = 0x040000, length = 0x000800     /* USB RAM    */
   FLASHB      : origin = 0x3F0000, length = 0x004000     /* on-chip FLASH */
}

/* 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: */
   codestart           : > BEGIN,      PAGE = 0
#if defined(RAM)
   .cinit              : > RAMM0,      PAGE = 0
   .pinit              : > RAMM0,      PAGE = 0
   .text               : > RAML5L8,    PAGE = 0
   ramfuncs            : > RAML5L8,    PAGE = 0
   .econst      : > RAML5L8,    PAGE = 0
   .switch             : > RAMM0,      PAGE = 0
 IQmath             : > RAML5L8,    PAGE = 0            /* Math Code */
   Cla1Prog            : {_Cla1ProgRunStart = .;} > CLAPROGRAM,
                                       PAGE = 0
   CLA1mathTables    : > CLARAM1,    PAGE = 1
#elif defined(FLASH)
   .cinit              : > FLASHEH,    PAGE = 0
   .pinit              : > FLASHEH,    PAGE = 0
   .text               : > FLASHEH,    PAGE = 0

   ramfuncs            : LOAD = FLASHC,
                         RUN = RAML5L8,
                         LOAD_START(_RamfuncsLoadStart),
                         RUN_START(_RamfuncsRunStart),
       LOAD_SIZE(_RamfuncsLoadSize),
                         PAGE = 0
   /* Initalized sections to go in Flash */
   /* For SDFlash to program these, they must be allocated to page 0 */
   .econst             : > FLASHEH,    PAGE = 0
   .switch             : > FLASHEH,    PAGE = 0
   IQmath              : > FLASHEH,    PAGE = 0            /* Math Code */

   Cla1Prog            : LOAD = FLASHD,
                         RUN = CLAPROGRAM,
                         LOAD_START(_Cla1ProgLoadStart),
                         LOAD_SIZE(_Cla1ProgLoadSize),
                         RUN_START(_Cla1ProgRunStart),
                         PAGE = 0

   CLA1mathTables    : LOAD = FLASHB,
                         RUN = CLARAM0,
                         LOAD_START(_CLA1mathTablesLoadStart),
                         LOAD_SIZE(_CLA1mathTablesLoadSize),
                         RUN_START(_CLA1mathTablesRunStart),
                         PAGE = 1
#else
#error Add either "RAM" or "FLASH" to C2000 Linker -> Advanced Options -> Command File Preprocessing -> --define
#endif //RAM

   csmpasswds          : > CSM_PWL_P0, PAGE = 0
   csm_rsvd            : > CSM_RSVD,   PAGE = 0

   /* Allocate uninitalized data sections: */
   .stack              : > RAML4,      PAGE = 1
   .ebss               : > RAML4,      PAGE = 1
   .esysmem            : > RAML4,      PAGE = 1

   //OSStack             : > RAML4,      PAGE = 1
   Comm_Section        : > RAML4,      PAGE = 1
   Buff_Section        : > RAMM01,     PAGE = 1

   /* Allocate IQ math areas: */
   IQmathTables        : > IQTABLES,   PAGE = 0, TYPE = NOLOAD

   /* Allocate FPU math areas: */
   FPUmathTables       : > FPUTABLES,  PAGE = 0, TYPE = NOLOAD

   Cla1ToCpuMsgRAM     : > CLA1_MSGRAMLOW,   PAGE = 1
   CpuToCla1MsgRAM     : > CLA1_MSGRAMHIGH,  PAGE = 1
   Cla1DataRam0     : > CLARAM0,    PAGE = 1
   Cla1DataRam1     : > CLARAM1,    PAGE = 1
   Cla1DataRam2     : > CLARAM2,    PAGE = 1
   Cla1DataRam      : > CLARAM2,    PAGE = 1

   /* Allocate CLA 'C' Areas */
#ifdef CLA_C
   /* CLA C compiler sections */
   //
   // Must be allocated to memory the CLA has write access to
   //

   // Local variables and compiler temps are expected to be placed into a scratchpad memory area "CLAScratch"
   // and accessed directly using the symbols '__cla_scratchpad_start' and '__cla_scratchpad_end' (for CGT 6.2.x and older),
   // while they are placed in ".scratchpad"
   // for CGT 6.4.0 (and above) and the compiler access them relative to the local frame symbol

   CLAscratch       :
                     { *.obj(CLAscratch)
                     . += CLA_SCRATCHPAD_SIZE;
                     *.obj(CLAscratch_end) } > CLARAM1,
      PAGE = 1

   .scratchpad      : > CLARAM1,       PAGE = 1
   .bss_cla      : > CLARAM0,       PAGE = 1
   .const_cla     : > CLARAM0,       PAGE = 1


#endif //CLA_C

 

  • 在仿真器下  应该是程序在RAM中运行      

    去掉仿真器后你的代码是不是在flash中运行  

    这样   明显的区别是效率问题         建议你做一下代码

    搬移试试有没有改善