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.

TMS320F28386D: How to jump CM entry point?

Part Number: TMS320F28386D
Other Parts Discussed in Thread: C2000WARE

Hi,

I want to jump to CM entry address and restart the main() program. How can I do?

I defined below:

#define BOOTMODE_ENTRY_POINT_CM 0x00200000

void (*BootfuncPtr)(void) = (void (*)(void))BOOTMODE_ENTRY_POINT_CM;

And I called:

(*BootfuncPtr)();

However it go into faultISR() infinite loop.

It is my CM .cmd

MEMORY
{
   /* Flash sectors */
   CMBANK0_RESETISR : origin = 0x00200000, length = 0x00000008 /* Boot to Flash Entry Point */
/* Start : Bootloader */
/* CMBANK0_SECTOR0  : origin = 0x00200008, length = 0x00003FF8 */
/* CMBANK0_SECTOR1  : origin = 0x00204000, length = 0x00004000 */
   CMBANK0_SECTOR01 : origin = 0x00200010, length = 0x00007F70
   CMBANK0_SECTOR_BOOTINFO : origin = 0x00207F80, length = 0x00000080
/* End : Bootloader */
/* CMBANK0_SECTOR2  : origin = 0x00208000, length = 0x00004000 */
/* CMBANK0_SECTOR3  : origin = 0x0020C000, length = 0x00004000 */
/* CMBANK0_SECTOR4  : origin = 0x00210000, length = 0x00010000 */
/* CMBANK0_SECTOR5  : origin = 0x00220000, length = 0x00010000 */
/* CMBANK0_SECTOR6  : origin = 0x00230000, length = 0x00010000 */
/* CMBANK0_SECTOR7  : origin = 0x00240000, length = 0x00010000 */
/* CMBANK0_SECTOR8  : origin = 0x00250000, length = 0x00010000 */
/* CMBANK0_SECTOR9  : origin = 0x00260000, length = 0x00010000 */
/* CMBANK0_SECTOR10 : origin = 0x00270000, length = 0x00004000 */
/* CMBANK0_SECTOR11 : origin = 0x00274000, length = 0x00004000 */
/* CMBANK0_SECTOR12 : origin = 0x00278000, length = 0x00004000 */
/* CMBANK0_SECTOR13 : origin = 0x0027C000, length = 0x00003FA0 */
/* CMBANK0_APPINFO  : origin = 0x0027FFA0, length = 0x00000060 */

   C1RAM            : origin = 0x1FFFC000, length = 0x00002000
   C0RAM            : origin = 0x1FFFE000, length = 0x00002000

   BOOT_RSVD        : origin = 0x20000000, length = 0x00000800 /* Part of S0, BOOT rom will use this for stack */
   S0RAM            : origin = 0x20000800, length = 0x00003800
/* S1RAM            : origin = 0x20004000, length = 0x00004000
   S2RAM            : origin = 0x20008000, length = 0x00004000
   S3RAM            : origin = 0x2000C000, length = 0x00004000*/
   S1S3RAM          : origin = 0x20004000, length = 0x0000C000
   E0RAM            : origin = 0x20010000, length = 0x00004000

   CPU1TOCMMSGRAM1  : origin = 0x20080000, length = 0x00000600
   CPU1TOCMMSGRAM2  : origin = 0x20080600, length = 0x00000A00
   CMTOCPU1MSGRAM1  : origin = 0x20082000, length = 0x00000600
   CMTOCPU1MSGRAM2  : origin = 0x20082600, length = 0x00000A00
   CPU2TOCMMSGRAM1  : origin = 0x20084000, length = 0x00000600
   CPU2TOCMMSGRAM2  : origin = 0x20084600, length = 0x00000A00
   CMTOCPU2MSGRAM1  : origin = 0x20086000, length = 0x00000600
   CMTOCPU2MSGRAM2  : origin = 0x20086600, length = 0x00000A00
}

SECTIONS
{
   .resetisr        : > CMBANK0_RESETISR, ALIGN(16)
   .vftable         : > CMBANK0_SECTOR01, ALIGN(16)   /* Application placed vector table in Flash*/
   .vtable          : > S0RAM             /* Application placed vector table in RAM*/
   .text            : > CMBANK0_SECTOR01, ALIGN(16)
   .cinit           : > CMBANK0_SECTOR01, ALIGN(16)
   .pinit           : > CMBANK0_SECTOR01, ALIGN(16)
   .switch          : > CMBANK0_SECTOR01, ALIGN(16)
   .sysmem          : > S1S3RAM

   .stack           : > C0RAM
   .ebss            : > C1RAM
   .econst          : > CMBANK0_SECTOR01, ALIGN(16)
   .esysmem         : > C1RAM
   .data            : > S1S3RAM
   .bss             : > S1S3RAM
   .const           : > CMBANK0_SECTOR01, ALIGN(16)

    ramfuncs : {} LOAD = CMBANK0_SECTOR01,
                     RUN = E0RAM,
                     LOAD_START(RamfuncsLoadStart),
                     LOAD_SIZE(RamfuncsLoadSize),
                     LOAD_END(RamfuncsLoadEnd),
                     RUN_START(RamfuncsRunStart),
                     RUN_SIZE(RamfuncsRunSize),
                     RUN_END(RamfuncsRunEnd),
                     ALIGN(16)

	/* BootInfo */
	BootInfoFiles : > CMBANK0_SECTOR_BOOTINFO, ALIGN(16)

	GROUP : > CMTOCPU1MSGRAM1
	{
		PUSHBUFFER_CPU1
		PUSHWRITEIDX_CPU1
		POPREADIDX_CPU1
		SENDDATA_CPU1
		PUTBUFFER_CPU1
		PUTWRITEIDX_CPU1
		GETREADIDX_CPU1
	}

	GROUP : > CPU1TOCMMSGRAM1
	{
		POPBUFFER_CPU1		: TYPE = DSECT
		POPWRITEIDX_CPU1	: TYPE = DSECT
		PUSHREADIDX_CPU1	: TYPE = DSECT
		RCVDATA_CPU1		: TYPE = DSECT
		GETBUFFER_CPU1		: TYPE = DSECT
		GETWRITEIDX_CPU1	: TYPE = DSECT
		PUTREADIDX_CPU1		: TYPE = DSECT
	}

	GROUP : > CMTOCPU2MSGRAM1
	{
		PUSHBUFFER_CPU2
		PUSHWRITEIDX_CPU2
		POPREADIDX_CPU2
		SENDDATA_CPU2
		PUTBUFFER_CPU2
		PUTWRITEIDX_CPU2
		GETREADIDX_CPU2
	}

	GROUP : > CPU2TOCMMSGRAM1
	{
		POPBUFFER_CPU2		: TYPE = DSECT
		POPWRITEIDX_CPU2	: TYPE = DSECT
		PUSHREADIDX_CPU2	: TYPE = DSECT
		RCVDATA_CPU2		: TYPE = DSECT
		GETBUFFER_CPU2		: TYPE = DSECT
		GETWRITEIDX_CPU2	: TYPE = DSECT
		PUTREADIDX_CPU2		: TYPE = DSECT
	}

	GROUP : > CPU1TOCMMSGRAM2
	{
		CPU1RefVariableFiles	: TYPE = DSECT
		MIII_StationAddrFiles	: TYPE = DSECT
		MIII_MsgRbuffFiles		: TYPE = DSECT
	}

	GROUP : > CMTOCPU1MSGRAM2
	{
		CMRefVariableCPU1Files
		MIII_MsgSbuffFiles
	}

	GROUP : > CPU2TOCMMSGRAM2
	{
		CPU2RefVariableFiles	: TYPE = DSECT
	}

	GROUP : > CMTOCPU2MSGRAM2
	{
		CMRefVariableCPU2Files
	}
}

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

In CPU1 and CPU2, this method works perfectly to restart the main(), like below:

#define BOOTMODE_ENTRY_POINT 0x080000

void (*BootfuncPtr)(void) = (void (*)(void))BOOTMODE_ENTRY_POINT;

(*BootfuncPtr)();

How can I do in CM?

  • The address 0x00200000 corresponds to stack pointer. Please try the next address - 0x00200004

  • Hi,

    It still go into faultISR().

    Can I get the entry point address from code online?

    Or should I set the project property "--entry_point,e" just  like CPU1 "code_start"?

    Thanks

  • you can check the current entry_point from map file and jump to that.

  • Hi,

    "ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 00204d09" is showed in my map file.

    1. I used below codes to jump to this point, but it went into defaultISR(). How to fix this?

    #define BOOTMODE_ENTRY_POINT_CM 0x00204D09

    void (*BootfuncPtr)(void) = (void (*)(void))BOOTMODE_ENTRY_POINT_CM;

    (*BootfuncPtr)();

    2. Is the entry point 0x00204D09 fixed? Can we modify this to where we want?

    Thanks.

  • you can use the linker option --entry_point to change the entry point.

    Can you share your map file, i would like to check the entry address.

  • Hi,

    It's my map file. The entry point seems not fixd for build difference code every times.

    OpenDriveLoader_FLASH_cm.txt

    Can you suggest a suit address for the entry point and example cmd for --entry_point?

    Thank you

  • Hi Frederick,

    Why don't you simulate a CM reset using SYSRESETREQ bit in AIRCR? The driverlib function Interrupt_requestSystemReset can be used.

    Regards,

    Veena

  • Hi,

    We have two program.

    Program 1: Bootloader in FLASH SECTOR 0~3

    Program 2: App in FLASH SECTOR 4~13

    More than reset main() program, in some conditions:

    During our Bootloader(Program1) running, we need to jump into the entry point of App(Program2).

    During our App(Program2) running, we need to jump into the entry point of Bootloader(Program1).

    So we need the exact entry points of Program1 and Program2.

  • Hi Frederick,

    Can you call _c_int00() function directly instead of branching to the boot entry address?

    Regards,

    Veena

  • Hi Veena,

    I called _c_int00(), but it still go into defaultISR() and infinite loop.

    The _c_int00() function pointer is at the address 0x0020af59.

    It match the map file "ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 0020af59"

    It is a odd address, is it normal?

    However, on the memory browser, it is at 0020af58.

    Regards,

    Frederick

  • Hi Veena,

    Furthermore, I follow the forum to jump to address 0x200001, but it still go into defaultISR().

    Regards,

    Frederick

  • Hi Frederick,

    I tried calling _c_int00(); directly from main, and it was able to branch to c_int00 and come back to main function. I tried both RAM config and Flash config.

    Can you share the compile options used in the project?

    Regards,

    Veena

  • Hi Veena,

    These are my project setting file.

    CCS: v9.3.0.00012 

    C2000ware: 3.2.0

    Please help me check. Thank you.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
    	<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
    		<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.165092020">
    			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.165092020" moduleId="org.eclipse.cdt.core.settings" name="Debug">
    				<externalSettings/>
    				<extensions>
    					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
    					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    				</extensions>
    			</storageModule>
    			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
    				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.165092020" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug">
    					<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.165092020." name="/" resourcePath="">
    						<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.DebugToolchain.377761991" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerDebug.490344027">
    							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1147942858" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
    								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.TMS320F28386D"/>
    								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
    								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
    								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
    								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=2838x_flash_lnk_cm.cmd"/>
    								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
    								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
    							</option>
    							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.17217526" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.12.6.LTS" valueType="string"/>
    							<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.targetPlatformDebug.437353789" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.targetPlatformDebug"/>
    							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.builderDebug.1505033959" name="GNU Make.Debug" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.builderDebug"/>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.compilerDebug.429762998" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.compilerDebug">
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION.1206013479" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE.1426192765" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE.16" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT.628757586" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT.none" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS.764799415" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DEBUGGING_MODEL.263971983" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DEBUGGING_MODEL" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WARNING.888533476" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WARNING" useByScannerDiscovery="false" valueType="stringList">
    									<listOptionValue builtIn="false" value="225"/>
    								</option>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DISPLAY_ERROR_NUMBER.480140314" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP.1015408189" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.INCLUDE_PATH.1638462805" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.INCLUDE_PATH" valueType="includePath">
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
    								</option>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.LITTLE_ENDIAN.1015935063" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.LITTLE_ENDIAN" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__C_SRCS.1344582251" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__C_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__CPP_SRCS.742556285" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__CPP_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM_SRCS.1087531329" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM2_SRCS.2042597282" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM2_SRCS"/>
    							</tool>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerDebug.490344027" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerDebug">
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.STACK_SIZE.62984882" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.STACK_SIZE" useByScannerDiscovery="false" value="256" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.HEAP_SIZE.489776509" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.HEAP_SIZE" useByScannerDiscovery="false" value="0" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.OUTPUT_FILE.124807729" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.OUTPUT_FILE" useByScannerDiscovery="false" value="${ProjName}.out" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.MAP_FILE.1773154421" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.MAP_FILE" useByScannerDiscovery="false" value="${ProjName}.map" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.XML_LINK_INFO.1175828685" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.XML_LINK_INFO" useByScannerDiscovery="false" value="${ProjName}_linkInfo.xml" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DISPLAY_ERROR_NUMBER.1012254338" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP.364652665" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.SEARCH_PATH.1701361557" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.SEARCH_PATH" valueType="libPaths">
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
    								</option>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.LIBRARY.92647970" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.LIBRARY" useByScannerDiscovery="false" valueType="libs">
    									<listOptionValue builtIn="false" value="libc.a"/>
    								</option>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD_SRCS.592469200" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD2_SRCS.579106601" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD2_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__GEN_CMDS.654416177" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__GEN_CMDS"/>
    							</tool>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.hex.756924809" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.hex"/>
    						</toolChain>
    					</folderInfo>
    				</configuration>
    			</storageModule>
    			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
    		</cconfiguration>
    		<cconfiguration id="com.ti.ccstudio.buildDefinitions.TMS470.Release.49446038">
    			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Release.49446038" moduleId="org.eclipse.cdt.core.settings" name="Release">
    				<externalSettings/>
    				<extensions>
    					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
    					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
    				</extensions>
    			</storageModule>
    			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
    				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.TMS470.Release.49446038" name="Release" parent="com.ti.ccstudio.buildDefinitions.TMS470.Release" prebuildStep="call &quot;${BRANCH_LOC}/Source/tools/Bin2CConverter.exe&quot; ${BRANCH_LOC}/Source/OpenDriveLoader_FLASH/cpu1/ccs/Release/OpenDriveLoader_FLASH_cpu01_external.bin ${BRANCH_LOC}/Source/OpenDriveLoader_FLASH/include/CPU1_ExtFlash.h  Uint16 BinArray">
    					<folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Release.49446038." name="/" resourcePath="">
    						<toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.ReleaseToolchain.979865811" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerRelease.1572098211">
    							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.2139080115" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
    								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=Cortex M.TMS320F28386D"/>
    								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
    								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=ELF"/>
    								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
    								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=2838x_flash_lnk_cm.cmd"/>
    								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
    								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
    							</option>
    							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.428884824" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="18.12.6.LTS" valueType="string"/>
    							<targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.targetPlatformRelease.1231494708" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.targetPlatformRelease"/>
    							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.builderRelease.63738891" keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.builderRelease"/>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.compilerRelease.302544388" name="ARM Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.compilerRelease">
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION.330075894" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.SILICON_VERSION.7M4" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE.1055905807" name="Designate code state, 16-bit (thumb) or 32-bit (--code_state)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.CODE_STATE.16" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT.1404841760" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.FLOAT_SUPPORT.none" valueType="enumerated"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS.314185132" name="Place each function in a separate subsection (--gen_func_subsections, -ms)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WARNING.1755414800" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WARNING" useByScannerDiscovery="false" valueType="stringList">
    									<listOptionValue builtIn="false" value="225"/>
    								</option>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DISPLAY_ERROR_NUMBER.882683005" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP.86954274" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.INCLUDE_PATH.1098345672" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.INCLUDE_PATH" valueType="includePath">
    									<listOptionValue builtIn="false" value="${INHERITED_INCLUDE_PATH}"/>
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_common/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_common/driverlib_cm"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_common/include/FlashAPI_cm"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_DRV/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/UtilityBase/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_ProgrammingFunction/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/SerialDriver/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/MechatrolinkIII/include"/>
    								</option>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.LITTLE_ENDIAN.1220540293" name="Little endian code [See 'General' page to edit] (--little_endian, -me)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.LITTLE_ENDIAN" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DEFINE.1630694376" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.DEFINE" valueType="definedSymbols">
    									<listOptionValue builtIn="false" value="${INHERITED_SYMBOLS}"/>
    									<listOptionValue builtIn="false" value="CM"/>
    									<listOptionValue builtIn="false" value="F2838x"/>
    									<listOptionValue builtIn="false" value="_FLASH"/>
    								</option>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.OPT_FOR_SPEED.244804300" name="Speed vs. size trade-offs (--opt_for_speed, -mf)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__C_SRCS.447024437" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__C_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__CPP_SRCS.1696254288" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__CPP_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM_SRCS.1424148486" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM2_SRCS.1923565028" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.compiler.inputType__ASM2_SRCS"/>
    							</tool>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerRelease.1572098211" name="ARM Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exe.linkerRelease">
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.STACK_SIZE.1088884090" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.STACK_SIZE" useByScannerDiscovery="false" value="8192" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.HEAP_SIZE.313759091" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.HEAP_SIZE" useByScannerDiscovery="false" value="0" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.OUTPUT_FILE.471713516" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.OUTPUT_FILE" useByScannerDiscovery="false" value="${ProjName}.out" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.MAP_FILE.1248289645" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.MAP_FILE" useByScannerDiscovery="false" value="${ProjName}.map" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.XML_LINK_INFO.244284771" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.XML_LINK_INFO" useByScannerDiscovery="false" value="${ProjName}_linkInfo.xml" valueType="string"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DISPLAY_ERROR_NUMBER.787576142" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
    								<option id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP.967172113" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.SEARCH_PATH.100290080" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.SEARCH_PATH" valueType="libPaths">
    									<listOptionValue builtIn="false" value="${INHERITED_LIBRARY_PATH}"/>
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
    									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/MechatrolinkIII/lib"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_DRV/lib"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/F2838x_common/lib"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/SerialDriver/lib"/>
    									<listOptionValue builtIn="false" value="${PROJECT_ROOT}/../../../lib/UtilityBase/lib"/>
    								</option>
    								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.LIBRARY.200733947" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.linkerID.LIBRARY" useByScannerDiscovery="false" valueType="libs">
    									<listOptionValue builtIn="false" value="${INHERITED_LIBRARIES}"/>
    									<listOptionValue builtIn="false" value="MechatrolinkIII_cm.lib"/>
    									<listOptionValue builtIn="false" value="F2838x_common_cm.lib"/>
    									<listOptionValue builtIn="false" value="F2838x_DRV_cm.lib"/>
    									<listOptionValue builtIn="false" value="SerialDriver.lib"/>
    									<listOptionValue builtIn="false" value="F2838x_CM_FlashAPI.lib"/>
    									<listOptionValue builtIn="false" value="UtilityBase_cm.lib"/>
    									<listOptionValue builtIn="false" value="libc.a"/>
    								</option>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD_SRCS.1259071717" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD2_SRCS.1528842144" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__CMD2_SRCS"/>
    								<inputType id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__GEN_CMDS.1623011715" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.exeLinker.inputType__GEN_CMDS"/>
    							</tool>
    							<tool id="com.ti.ccstudio.buildDefinitions.TMS470_18.12.hex.1692193940" name="ARM Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_18.12.hex"/>
    						</toolChain>
    					</folderInfo>
    				</configuration>
    			</storageModule>
    			<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
    				<externalSettings containerId="F2838x_DRV_cm;com.ti.ccstudio.buildDefinitions.TMS470.Release.1131787954" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    				<externalSettings containerId="F2838x_common_cm;com.ti.ccstudio.buildDefinitions.TMS470.Release.1067304425" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    				<externalSettings containerId="MechatrolinkIII_cm;com.ti.ccstudio.buildDefinitions.TMS470.Release.1195869425" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    				<externalSettings containerId="SerialDriver;com.ti.ccstudio.buildDefinitions.TMS470.Release.985970419" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    				<externalSettings containerId="UtilityBase_cm;com.ti.ccstudio.buildDefinitions.TMS470.Release.1926835353" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    				<externalSettings containerId="OpenDriveLoader_FLASH_cpu01;com.ti.ccstudio.buildDefinitions.C2000.Release.2068433039" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
    			</storageModule>
    		</cconfiguration>
    	</storageModule>
    	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
    	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
    		<project id="OpenDriveLoader_FLASH_cm.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.785764328" name="TMS470" projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
    	</storageModule>
    	<storageModule moduleId="scannerConfiguration"/>
    	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
    </cproject>
    

    <?xml version="1.0" encoding="UTF-8" ?>
    <?ccsproject version="1.0"?>
    <projectOptions>
    	<ccsVersion value="9.3.0"/>
    	<deviceVariant value="Cortex M.TMS320F28386D"/>
    	<deviceFamily value="TMS470"/>
    	<deviceEndianness value="little"/>
    	<codegenToolVersion value="18.12.6.LTS"/>
    	<isElfFormat value="true"/>
    	<linkerCommandFile value="2838x_flash_lnk_cm.cmd"/>
    	<rts value="libc.a"/>
    	<createSlaveProjects value=""/>
    	<templateProperties value="id=com.ti.common.project.core.emptyProjectWithMainTemplate"/>
    	<filesToOpen value="main.c"/>
    	<isTargetManual value="false"/>
    </projectOptions>
    

    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
    	<name>OpenDriveLoader_FLASH_cm</name>
    	<comment></comment>
    	<projects>
    		<project>F2838x_DRV_cm</project>
    		<project>F2838x_common_cm</project>
    		<project>MechatrolinkIII_cm</project>
    		<project>SerialDriver</project>
    		<project>UtilityBase_cm</project>
    		<project>OpenDriveLoader_FLASH_cpu01</project>
    	</projects>
    	<buildSpec>
    		<buildCommand>
    			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    		<buildCommand>
    			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
    			<triggers>full,incremental,</triggers>
    			<arguments>
    			</arguments>
    		</buildCommand>
    	</buildSpec>
    	<natures>
    		<nature>com.ti.ccstudio.core.ccsNature</nature>
    		<nature>org.eclipse.cdt.core.cnature</nature>
    		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
    		<nature>org.eclipse.cdt.core.ccnature</nature>
    		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
    	</natures>
    	<linkedResources>
    		<link>
    			<name>CommonVariables.c</name>
    			<type>1</type>
    			<locationURI>PARENT-2-PROJECT_LOC/src/CommonVariables.c</locationURI>
    		</link>
    		<link>
    			<name>Drive.c</name>
    			<type>1</type>
    			<locationURI>PARENT-2-PROJECT_LOC/src/Drive.c</locationURI>
    		</link>
    		<link>
    			<name>ErrorMgr.c</name>
    			<type>1</type>
    			<locationURI>PARENT-3-PROJECT_LOC/lib/F2838x_ProgrammingFunction/src/ErrorMgr.c</locationURI>
    		</link>
    		<link>
    			<name>FRAM.c</name>
    			<type>1</type>
    			<locationURI>PARENT-3-PROJECT_LOC/lib/F2838x_ProgrammingFunction/src/FRAM.c</locationURI>
    		</link>
    		<link>
    			<name>SYNTECIPCDriver.c</name>
    			<type>1</type>
    			<locationURI>PARENT-3-PROJECT_LOC/lib/F2838x_ProgrammingFunction/src/SYNTECIPCDriver.c</locationURI>
    		</link>
    		<link>
    			<name>main.c</name>
    			<type>1</type>
    			<locationURI>PARENT-2-PROJECT_LOC/src/main.c</locationURI>
    		</link>
    	</linkedResources>
    	<variableList>
    		<variable>
    			<name>BRANCH_LOC</name>
    			<value>$%7BPARENT-4-PROJECT_LOC%7D</value>
    		</variable>
    	</variableList>
    </projectDescription>
    

    Regards,

    Frederick

  • Hi Frederick,

    To these CCS files, I added a cmd file, startup_cm.c and a plain main which just calls _c_int00(); But I see that it branches to _c_int00 and returns to main.

    Can you step in the code and see whether its the branch instruction that causes the fault?

    This is my main function:

    void main()
    {
    asm(" B $");
    _c_int00();
    asm(" B $");

    }

    The assembly instruction " bl _c_int00_noinit_noargs" branches to the function properly.

    Regards,

    Veena

  • Hi Veena,

    I add the asm(" B $"), it not go into faultIsr or defaultIsr().

    However the propram just stop at the previous line of asm(" B $") and not restart the main().

    Can you tell me the C2000Ware and CCS version that you used, and give me your cmd file and startup_cm.c .

    Regards,

    Frederick

  • Hi Veena,

    I used the example in C2000Ware and it restart main() successfully.

    I found the my project lost to link driverlib_cm.lib. After I add to link driverlib_cm.lib, I can restart main() successfully.

    Both this two method are success:

    1. call _c_int00();

    2. Jump to 0x00200001.

    So, I think my problem has been solved.

    However, why there is not link error if I lost to link driverlib_cm.lib?

    It causes troubleshooting to be difficult.

    Regards,

    Frederick

  • Hi Frederick,

    asm(" B $") is just a branch to itself statement. I added it to make sure it gets stuck there after reset and returning to main. 

    I am not sure why you did not get any link issues for driverlib.lib. The errors will be reported if the compiler finds a function which is not defined. There are lot of functions defined inline. To use these inline functions, the linking the lib is not required. Are you sure you are using non-inline functions, but still able to build it without errors without the .lib?

    It could be linking issue of startup_cm file. You will not get any link errors here, because, none of the functions defined here are explicitly called by the application. But these needs to be loaded correctly at the address.

    Regards,

    Veena