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.
大家好,
我最近在做以太网转CAN下载F28M35程序的bootloader,我建立了两个工程,在CMD文件中将bootloader和应用程序分配在两个不同的FLASH空间,RAM也分配在不同的空间,可是烧写结束后却跳不到用户应用程序,始终死循环在FaultISR中,或者始终显示IN RESET,我对这个底层的东西理解的不是很深,找不到问题所在,附件是两个工程的CMD文件,麻烦大家帮忙分析分析,十分感谢啊。
///////////////////////////////////////////////////BOOTLOADER CMD�ļ�//////////////////////////////////////////// /* //########################################################################### // FILE: F28M35x_generic_M3_FLASH.cmd // TITLE: Linker Command File for F28M35x examples that run out of FLASH //########################################################################### // $TI Release: F28M35x Support Library v110 $ // $Release Date: December 12, 2011 $ //########################################################################### */ --retain=g_pfnVectors /* The following command line options are set as part of the CCS project. */ /* If you are building using the command line, or for some reason want to */ /* define them here, you can uncomment and modify these lines as needed. */ /* If you are using CCS for building, it is probably better to make any such */ /* modifications in your CCS project and leave this file alone. */ /* */ /* --heap_size=0 */ /* --stack_size=256 */ /* --library=rtsv7M3_T_le_eabi.lib */ /* The following options allow the user to program Z1 and Z2 DCSM security */ /* values, include CSM PSWD, ECSL PSWD, GRABSECT, GRABRAM, and FLASH EXEONLY */ /* The driverlib/dcsm_z1_secvalues.s and driverlib/dcsm_z2_secvalues.s files */ /* must be included in the Flash project for the below 2 lines to take */ /* effect. */ --retain=dcsm_z1_secvalues.obj(.z1secvalues,.z1_csm_rsvd) --retain=dcsm_z2_secvalues.obj(.z2secvalues,.z2_csm_rsvd) /* System memory map */ MEMORY { CSM_ECSL_Z1 : origin = 0x00200000, length = 0x0024 CSM_RSVD_Z1 : origin = 0x00200024, length = 0x000C RESETISR (RX) : origin = 0x00200030, length = 0x0008 /* Reset ISR is mapped to boot to Flash location */ INTVECS (RX) : origin = 0x00201000, length = 0x01B0 FLASHLOAD (RX) : origin = 0x00201200, length = 0x2E00 /* For storing code in Flash to copy to RAM at runtime */ FLASH (RX) : origin = 0x00204000, length = 0x1C000 CSM_RSVD_Z2 : origin = 0x0027FFD0, length = 0x000C CSM_ECSL_Z2 : origin = 0x0027FFDC, length = 0x0024 C0 (RWX) : origin = 0x20000000, length = 0x2000 BOOT_RSVD (RX) : origin = 0x20004000, length = 0x0900 C1 (RWX) : origin = 0x20004900, length = 0x1700 CTOMRAM (RX) : origin = 0x2007F000, length = 0x0800 MTOCRAM (RWX) : origin = 0x2007F800, length = 0x0800 } /* Section allocation in memory */ SECTIONS { .intvecs: > INTVECS .resetisr: > RESETISR .text : >> FLASH .const : >> FLASH .cinit : > FLASH .pinit : >> FLASH .vtable : > C0 .data : > C1 .bss : >> C1 .sysmem : > C0 | C1 .stack : > C0 | C1 .z1secvalues : > CSM_ECSL_Z1 .z1_csm_rsvd : > CSM_RSVD_Z1 .z2secvalues : > CSM_ECSL_Z2 .z2_csm_rsvd : > CSM_RSVD_Z2 GROUP { ramfuncs { -l F021_API_CortexM3_LE.lib} }LOAD = FLASHLOAD, RUN = C0, LOAD_START(RamfuncsLoadStart), LOAD_SIZE(RamfuncsLoadSize), RUN_START(RamfuncsRunStart), PAGE = 0 GROUP : > MTOCRAM { PUTBUFFER PUTWRITEIDX GETREADIDX } GROUP : > CTOMRAM { GETBUFFER : TYPE = DSECT GETWRITEIDX : TYPE = DSECT PUTREADIDX : TYPE = DSECT } } __STACK_TOP = __stack + 256; //////////////////////////////////////////////////Ӧ�ó���CMD�ļ�///////////////////////////////////////////////////// /* //########################################################################### // FILE: F28M35x_generic_M3_FLASH.cmd // TITLE: Linker Command File for F28M35x examples that run out of FLASH //########################################################################### // $TI Release: F28M35x Support Library v140 $ // $Release Date: Tue Jul 3 09:38:11 CDT 2012 $ //########################################################################### */ --retain=g_pfnVectors /* The following command line options are set as part of the CCS project. */ /* If you are building using the command line, or for some reason want to */ /* define them here, you can uncomment and modify these lines as needed. */ /* If you are using CCS for building, it is probably better to make any such */ /* modifications in your CCS project and leave this file alone. */ /* */ /* --heap_size=0 */ /* --stack_size=256 */ /* --library=rtsv7M3_T_le_eabi.lib */ /* The following options allow the user to program Z1 and Z2 DCSM security */ /* values, include CSM PSWD, ECSL PSWD, GRABSECT, GRABRAM, and FLASH EXEONLY */ /* The driverlib/dcsm_z1_secvalues.s and driverlib/dcsm_z2_secvalues.s files */ /* must be included in the Flash project for the below 2 lines to take */ /* effect. */ --retain=dcsm_z1_secvalues.obj(.z1secvalues,.z1_csm_rsvd) --retain=dcsm_z2_secvalues.obj(.z2secvalues,.z2_csm_rsvd) /* System memory map */ MEMORY { CSM_ECSL_Z1 : origin = 0x00200000, length = 0x0024 CSM_RSVD_Z1 : origin = 0x00200024, length = 0x000C RESETISR (RX) : origin = 0x00260000, length = 0x0008 /* Reset ISR is mapped to boot to Flash location */ INTVECS (RX) : origin = 0x00261000, length = 0x01B0 FLASHLOAD (RX) : origin = 0x00261200, length = 0x2E00 /* For storing code in Flash to copy to RAM at runtime */ DEFINE_FLASH (RX) : origin = 0x00264000, length = 0x18000 CSM_RSVD_Z2 : origin = 0x0027FF00, length = 0x00DC CSM_ECSL_Z2 : origin = 0x0027FFDC, length = 0x0024 DEFINE_RAM0 (RWX) : origin = 0x20002000, length = 0x2000 DEFINE_RAM1 (RWX) : origin = 0x20006000, length = 0x2000 CTOMRAM (RX) : origin = 0x2007F000, length = 0x0800 MTOCRAM (RWX) : origin = 0x2007F800, length = 0x0800 } /* Section allocation in memory */ SECTIONS { .intvecs: > INTVECS .resetisr: > RESETISR .text : >> DEFINE_FLASH .const : >> DEFINE_FLASH .cinit : > DEFINE_FLASH .pinit : >> DEFINE_FLASH .vtable : > DEFINE_RAM0 | DEFINE_RAM1 .data : > DEFINE_RAM1 .bss : >> DEFINE_RAM1 .sysmem : > DEFINE_RAM0 | DEFINE_RAM1 .stack : > DEFINE_RAM0 | DEFINE_RAM1 .z1secvalues : > CSM_ECSL_Z1 .z1_csm_rsvd : > CSM_RSVD_Z1 .z2secvalues : > CSM_ECSL_Z2 .z2_csm_rsvd : > CSM_RSVD_Z2 ramfuncs : LOAD = FLASHLOAD, RUN = DEFINE_RAM0, LOAD_START(RamfuncsLoadStart), LOAD_SIZE(RamfuncsLoadSize), RUN_START(RamfuncsRunStart), PAGE = 0 GROUP : > MTOCRAM { PUTBUFFER PUTWRITEIDX GETREADIDX } GROUP : > CTOMRAM { GETBUFFER : TYPE = DSECT GETWRITEIDX : TYPE = DSECT PUTREADIDX : TYPE = DSECT } }