已经挂了两个cpu了,贵啊!<br />在怀疑是不是源程序太大溢出误写了密码区,如果是这样那芯片就太脆弱了<br />现在贴出我项目使用的cmd文件,请帮忙分析一下:<br />我的cmd文件:<br />MEMORY<br />{<br />PAGE 0: /* Program Memory */<br /> /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */<br /> RAM_L0L1 : origin = 0x008000, length = 0x002000 /* on-chip RAM */<br /> OTP : origin = 0x3D7800, length = 0x000400 /* on-chip OTP */<br /> FLASH_IJ : origin = 0x3D8000, length = 0x004000 /* on-chip FLASH */<br /> FLASH_GH : origin = 0x3DC000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_EF : origin = 0x3E4000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_CD : origin = 0x3EC000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_AB : origin = 0x3F4000, length = 0x003F80 /* on-chip FLASH */<br /> CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */<br /> BEGIN_FLASH : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */<br /> CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */<br /> RAM_H0 : origin = 0x3F8000, length = 0x002000 /* on-chip RAM */<br /> ROM : origin = 0x3FF000, length = 0x000FC0 /* Boot ROM */<br /> RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */<br /> VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */<br /><br /><br />PAGE 1 : /* Data Memory */<br /> /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */<br /> /* Registers remain on PAGE1 */<br /><br /> RAMM0 : origin = 0x000000, length = 0x000400 /* on-chip RAM block M0 */<br /> BOOT_RSVD : origin = 0x000400, length = 0x000080 /* Part of M1, BOOT rom will use this for stack */<br /> RAMM1 : origin = 0x000480, length = 0x000380 /* on-chip RAM block M1 */<br />}<br /><br />/**************************************************************/<br />/* Link all user defined sections */<br />/**************************************************************/<br />SECTIONS<br />{<br /><br />/*** Code Security Password Locations ***/<br /> csmpasswds : > CSM_PWL PAGE = 0 /* Used by file CSMPasswords.asm */<br /> csm_rsvd : > CSM_RSVD PAGE = 0 /* Used by file CSMPasswords.asm */ <br /><br />/*** User Defined Sections ***/<br /> codestart : > BEGIN_FLASH, PAGE = 0 /* Used by file CodeStartBranch.asm */<br /> wddisable : > FLASH_AB, PAGE = 0 /* Used by file CodeStartBranch.asm */ <br /> copysections : > FLASH_AB, PAGE = 0 /* Used by file SectionCopy.asm */ <br /><br />/* .reset is a standard section used by the compiler. It contains the */ <br />/* the address of the start of _c_int00 for C Code. /*<br />/* When using the boot ROM this section and the CPU vector */<br />/* table is not needed. Thus the default type is set here to */<br />/* DSECT */ <br /> .reset : > RESET, PAGE = 0, TYPE = DSECT<br /> vectors : > VECTORS PAGE = 0, TYPE = DSECT<br /><br />/*** Uninitialized Sections ***/<br /> .stack : > RAMM0 PAGE = 1<br /> .ebss : > RAMM1 PAGE = 1<br /> .esysmem : > RAMM1 PAGE = 1<br /><br />/*** Initialized Sections ***/ <br /> .cinit : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_cinit_loadstart),<br /> RUN_START(_cinit_runstart),<br /> SIZE(_cinit_size)<br /><br /> .const : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */<br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_const_loadstart),<br /> RUN_START(_const_runstart),<br /> SIZE(_const_size)<br /><br /> .econst : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_econst_loadstart),<br /> RUN_START(_econst_runstart),<br /> SIZE(_econst_size)<br /><br /> .pinit : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */<br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_pinit_loadstart),<br /> RUN_START(_pinit_runstart),<br /> SIZE(_pinit_size)<br /><br /> .switch : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_switch_loadstart),<br /> RUN_START(_switch_runstart),<br /> SIZE(_switch_size)<br /><br /> .text : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_L0L1, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_text_loadstart),<br /> RUN_START(_text_runstart),<br /> SIZE(_text_size)<br />}<br /><br />/******************* end of file ************************/<br /><br />以下是ti提供的cmd文件<br />/*############################################################################<br /><br /> FILE: F281x_nonBIOS_flash.cmd<br /><br /> DESCRIPTION: Linker allocation for all sections. <br />############################################################################<br /> Author: Tim Love<br /> Release Date: March 2008<br />############################################################################*/<br /><br /><br />MEMORY<br />{<br />PAGE 0: /* Program Memory */<br /> /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */<br /> RAM_L0L1 : origin = 0x008000, length = 0x002000 /* on-chip RAM */<br /> OTP : origin = 0x3D7800, length = 0x000400 /* on-chip OTP */<br /> FLASH_IJ : origin = 0x3D8000, length = 0x004000 /* on-chip FLASH */<br /> FLASH_GH : origin = 0x3DC000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_EF : origin = 0x3E4000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_CD : origin = 0x3EC000, length = 0x008000 /* on-chip FLASH */<br /> FLASH_AB : origin = 0x3F4000, length = 0x003F80 /* on-chip FLASH */<br /> CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */<br /> BEGIN_FLASH : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */<br /> CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */<br /> RAM_H0 : origin = 0x3F8000, length = 0x002000 /* on-chip RAM */<br /> ROM : origin = 0x3FF000, length = 0x000FC0 /* Boot ROM */<br /> RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */<br /> VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */<br /><br /><br />PAGE 1 : /* Data Memory */<br /> /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */<br /> /* Registers remain on PAGE1 */<br /><br /> RAMM0 : origin = 0x000000, length = 0x000400 /* on-chip RAM block M0 */<br /> BOOT_RSVD : origin = 0x000400, length = 0x000080 /* Part of M1, BOOT rom will use this for stack */<br /> RAMM1 : origin = 0x000480, length = 0x000380 /* on-chip RAM block M1 */<br />}<br /><br />/**************************************************************/<br />/* Link all user defined sections */<br />/**************************************************************/<br />SECTIONS<br />{<br /><br />/*** Code Security Password Locations ***/<br /> csmpasswds : > CSM_PWL PAGE = 0 /* Used by file CSMPasswords.asm */<br /> csm_rsvd : > CSM_RSVD PAGE = 0 /* Used by file CSMPasswords.asm */ <br /><br />/*** User Defined Sections ***/<br /> codestart : > BEGIN_FLASH, PAGE = 0 /* Used by file CodeStartBranch.asm */<br /> wddisable : > FLASH_AB, PAGE = 0 /* Used by file CodeStartBranch.asm */ <br /> copysections : > FLASH_AB, PAGE = 0 /* Used by file SectionCopy.asm */ <br /><br />/* .reset is a standard section used by the compiler. It contains the */ <br />/* the address of the start of _c_int00 for C Code. /*<br />/* When using the boot ROM this section and the CPU vector */<br />/* table is not needed. Thus the default type is set here to */<br />/* DSECT */ <br /> .reset : > RESET, PAGE = 0, TYPE = DSECT<br /> vectors : > VECTORS PAGE = 0, TYPE = DSECT<br /><br />/*** Uninitialized Sections ***/<br /> .stack : > RAMM0 PAGE = 1<br /> .ebss : > RAMM1 PAGE = 1<br /> .esysmem : > RAMM1 PAGE = 1<br /><br />/*** Initialized Sections ***/ <br /> .cinit : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_cinit_loadstart),<br /> RUN_START(_cinit_runstart),<br /> SIZE(_cinit_size)<br /><br /> .const : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */<br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_const_loadstart),<br /> RUN_START(_const_runstart),<br /> SIZE(_const_size)<br /><br /> .econst : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_econst_loadstart),<br /> RUN_START(_econst_runstart),<br /> SIZE(_econst_size)<br /><br /> .pinit : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */<br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_pinit_loadstart),<br /> RUN_START(_pinit_runstart),<br /> SIZE(_pinit_size)<br /><br /> .switch : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_H0, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_switch_loadstart),<br /> RUN_START(_switch_runstart),<br /> SIZE(_switch_size)<br /><br /> .text : LOAD = FLASH_AB, PAGE = 0 /* Load section to Flash */ <br /> RUN = RAM_L0L1, PAGE = 0 /* Run section from RAM */<br /> LOAD_START(_text_loadstart),<br /> RUN_START(_text_runstart),<br /> SIZE(_text_size)<br />}<br /><br />/******************* end of file ************************/<br />
|