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.

TMS320F28379D: boot error

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Hi,

Could you guide for below boot error?

Customer made the board based on C2000 LaunchPad XL TMS320F28379D V2.0.

Customer is programming and debugging with CCS and XDS200 and using Flash Boot Mode.

At debug, when it's not RUN, boot error occured.

At first time, CPU1 works but CPU2 not works.

At next time, both are in boot error.

When they tested the code at LaunchPad, CPU1 works but CPU2 not works.

Please guide next step.

When customer provide the f/w and schematic, could you review them?

Thanks.

  • Hello,

    Could you please provide more detail on the issue? It is unclear what is happening here.

    1. What is the customer trying to do? Are they connecting the device via CCS and attempting to load/run code? 
    2. Can you please describe what you mean by "boot error"? Is there some error in CCS showing? What is the symptom/nature of the issue? Is the CPU jumping to an ITRAP ISR?
    3. I cannot debug code for the customer, but I can make some suggestions on how to debug after gathering a better understanding of the issue.

    Best Regards,

    Allison

  • Hi....  this is andrew kim   

    1.I am currently programming and debugging using CCS. I am programming CPU1 and CPU2. First of all, since we are programming the BuckBoost power, we are implementing PID control using 6 PWMs. CPU1 is using CLA1, and CPU2 communicates with the PC through CAN.

    2. CCS does not check the boot error, but when the program is tested in debug state and reset on CCS, it fails to enter the main program. Of course, CPU1 cannot boot alone, and CPU2 also cannot boot due to the same problem. Now that the program is almost complete, it needs to be booted on its own to test while powering on, which is difficult.

    3. 
    Since it may be a simple mistake on my part to send you the source code, I will send you the CMD file first.

    // The user must define CLA_C in the project linker settings if using the
    // CLA C compiler
    // Project Properties -> C2000 Linker -> Advanced Options -> Command File
    // Preprocessing -> --define
    
    #ifdef CLA_C
    // Define a size for the CLA scratchpad area that will be used
    // by the CLA compiler for local symbols and temps
    // Also force references to the special symbols that mark the
    // scratchpad are.
    CLA_SCRATCHPAD_SIZE = 0x100;
    --undef_sym=__cla_scratchpad_end
    --undef_sym=__cla_scratchpad_start
    #endif //CLA_C
    
    
    MEMORY
    {
    PAGE 0 :  /* Program Memory */
              /* Memory (RAM/FLASH) blocks can be moved to PAGE1 for data allocation */
              /* BEGIN is used for the "boot to Flash" bootloader mode   */
    
       BEGIN           	: origin = 0x080000, length = 0x000002
       RAMM0           	: origin = 0x000123, length = 0x0002DD
       RAMD0           	: origin = 0x00B000, length = 0x000800
       RAMLS0          	: origin = 0x008000, length = 0x000800
       //CLA1Prog         : origin = 0x008800, length = 0x001000
       //CLA1Data         : origin = 0x009800, length = 0x001000
    
       RAMLS1_2         : origin = 0x008800, length = 0x001000
       RAMLS3_4      	: origin = 0x009800, length = 0x001000
       //RAMLS2      		: origin = 0x009000, length = 0x000800
       //RAMLS3      		: origin = 0x009800, length = 0x000800
       //RAMLS4      		: origin = 0x00A000, length = 0x000800
       RAMGS14          : origin = 0x01A000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
       RAMGS15          : origin = 0x01B000, length = 0x000FF8     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
    
       //CPU2TOCPU1RAM   : origin = 0x01A000, length = 0x000400
       //CPU1TOCPU2RAM   : origin = 0x01B000, length = 0x000400
    //   RAMGS15_RSVD     : origin = 0x01BFF8, length = 0x000008    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
       RESET           	: origin = 0x3FFFC0, length = 0x000002
    
       /* FPU Math Tables in Boot ROM */
       //FPUTABLES : origin = 0x3FD860, length = 0x0006A0
    
    
       /* Flash sectors */
       FLASHA           : origin = 0x080002, length = 0x001FFE	/* on-chip Flash */
       FLASHB           : origin = 0x082000, length = 0x002000	/* on-chip Flash */
       FLASHC           : origin = 0x084000, length = 0x002000	/* on-chip Flash */
       FLASHD           : origin = 0x086000, length = 0x002000	/* on-chip Flash */
       FLASHE           : origin = 0x088000, length = 0x008000	/* on-chip Flash */
       FLASHF           : origin = 0x090000, length = 0x008000	/* on-chip Flash */
       FLASHG           : origin = 0x098000, length = 0x008000	/* on-chip Flash */
       FLASHH           : origin = 0x0A0000, length = 0x008000	/* on-chip Flash */
       FLASHI           : origin = 0x0A8000, length = 0x008000	/* on-chip Flash */
       FLASHJ           : origin = 0x0B0000, length = 0x008000	/* on-chip Flash */
       FLASHK           : origin = 0x0B8000, length = 0x002000	/* on-chip Flash */
       FLASHL           : origin = 0x0BA000, length = 0x002000	/* on-chip Flash */
       FLASHM           : origin = 0x0BC000, length = 0x002000	/* on-chip Flash */
       FLASHN           : origin = 0x0BE000, length = 0x001FF0	/* on-chip Flash */
    
    //   FLASHN_RSVD     : origin = 0x0BFFF0, length = 0x000010    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
    PAGE 1 : /* Data Memory */
             /* Memory (RAM/FLASH) blocks can be moved to PAGE0 for program allocation */
    
       BOOT_RSVD       : origin = 0x000002, length = 0x000121     /* Part of M0, BOOT rom will use this for stack */
       RAMM1           : origin = 0x000400, length = 0x0003F8     /* on-chip RAM block M1 */
    //   RAMM1_RSVD      : origin = 0x0007F8, length = 0x000008     /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
       RAMD1           : origin = 0x00B800, length = 0x000800
    
    CLATOCPU_MSGRAM    : origin = 0x001480, length = 0x000080
    CPUTOCLA_MSGRAM    : origin = 0x001500, length = 0x000080
    
       RAMLS5      : origin = 0x00A800, length = 0x000800
    
       RAMGS0      : origin = 0x00C000, length = 0x001000
       RAMGS1      : origin = 0x00D000, length = 0x001000
       RAMGS2      : origin = 0x00E000, length = 0x001000
       RAMGS3      : origin = 0x00F000, length = 0x001000
       RAMGS4      : origin = 0x010000, length = 0x001000
       RAMGS5      : origin = 0x011000, length = 0x001000
       RAMGS6      : origin = 0x012000, length = 0x001000
       RAMGS7      : origin = 0x013000, length = 0x001000
       RAMGS8      : origin = 0x014000, length = 0x001000
       RAMGS9      : origin = 0x015000, length = 0x001000
       RAMGS10     : origin = 0x016000, length = 0x001000
    
    //   RAMGS11     : origin = 0x017000, length = 0x000FF8   /* Uncomment for F28374D, F28376D devices */
    
    //   RAMGS11_RSVD : origin = 0x017FF8, length = 0x000008    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
       RAMGS11     : origin = 0x017000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
       RAMGS12     : origin = 0x018000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
       RAMGS13     : origin = 0x019000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
    
    
       CPU2TOCPU1RAM   : origin = 0x03F800, length = 0x000400
       CPU1TOCPU2RAM   : origin = 0x03FC00, length = 0x000400
    }
    
    SECTIONS
    {
       /* Allocate program areas: */
       .cinit              : > FLASHA      PAGE = 0, ALIGN(8)
       .text               : >> FLASHC | FLASHD | FLASHE      PAGE = 0, ALIGN(8)
       codestart           : > BEGIN       PAGE = 0, ALIGN(8)
       /* Allocate uninitalized data sections: */
       .stack              : > RAMM1       PAGE = 1
       .switch             : > FLASHA      PAGE = 0, ALIGN(8)
       .reset              : > RESET       PAGE = 0, TYPE = DSECT /* not used, */
    
    	// Andrew Code Below
        cla1ToCpuMsgRAM      : >  CLATOCPU_MSGRAM
        cpuToCla1MsgRAM      : >  CPUTOCLA_MSGRAM
    
     	systemC1 {  }          >  RAMGS0, ALIGN(8)
        systemC2 {  }          >  RAMGS1, ALIGN(8)
    
    	//
        // User Sections
        //
        SFRA_Data {  }         >  RAMGS2, ALIGN(64)
        SFRA_F32_Data {  }     >  RAMGS2, ALIGN(64)
        FPUmathTables {  }     >  FLASHN, ALIGN(8)
        controlVariables {  }  >  RAMLS0
        dclfuncs {  }          >  RAMD0,  ALIGN(8)
    
    
        //
        // CLA Sections
        //
        /* CLA specific sections */
    #if defined(__TI_EABI__)
       		Cla1Prog    : LOAD = FLASHF,
                          RUN = RAMLS1_2,
                          LOAD_START(Cla1funcsLoadStart),
                          LOAD_END(Cla1funcsLoadEnd),
                          RUN_START(Cla1funcsRunStart),
                          LOAD_SIZE(Cla1funcsLoadSize),
                          PAGE = 0, ALIGN(8)
            .bss_cla    : >  RAMLS3_4, PAGE = 0, ALIGN(8)
    #else
          	Cla1Prog    : LOAD = FLASHF,
                          RUN = RAMLS1_2,
                          LOAD_START(_Cla1funcsLoadStart),
                          LOAD_END(_Cla1funcsLoadEnd),
                          RUN_START(_Cla1funcsRunStart),
                          LOAD_SIZE(_Cla1funcsLoadSize),
                          PAGE = 0, ALIGN(8)
      		.bss_cla    : >  RAMLS3_4, ALIGN(8)
    #endif
    
    #ifdef CLA_C
       /* CLA C compiler sections */
       //
       // Must be allocated to memory the CLA has write access to
       //
       CLAscratch       :
                         { *.obj(CLAscratch)
                         . += CLA_SCRATCHPAD_SIZE;
                         *.obj(CLAscratch_end) } >  RAMLS3_4,  PAGE = 0
    
       .scratchpad      : > RAMLS3_4,       PAGE = 0
       .bss_cla		    : > RAMLS3_4,       PAGE = 0
       #if defined(__TI_EABI__)
       .const_cla      : LOAD = FLASHG,
                          RUN = RAMLS3_4,
                          RUN_START(Cla1ConstRunStart),
                          LOAD_START(Cla1ConstLoadStart),
                          LOAD_SIZE(Cla1ConstLoadSize),
                          PAGE = 0,
                          ALIGN(4)
      #else
       .const_cla      : LOAD = FLASHG,
                          RUN = RAMLS3_4,
                          RUN_START(_Cla1ConstRunStart),
                          LOAD_START(_Cla1ConstLoadStart),
                          LOAD_SIZE(_Cla1ConstLoadSize),
                          PAGE = 0,
                          ALIGN(4)
      #endif
    #endif //CLA_C
    
    
        Cla1ToCpuMsgRAM {  }    >  CLATOCPU_MSGRAM, ALIGN(8)
        CpuToCla1MsgRAM {  }    >  CPUTOCLA_MSGRAM, ALIGN(8)
    
    
    
    #if defined(__TI_EABI__)
       .init_array         : > FLASHA,       PAGE = 0,       ALIGN(8)
       .bss                : > RAMLS5,       PAGE = 1
       .bss:output         : > RAMLS0,       PAGE = 0
       .bss:cio            : > RAMLS5,       PAGE = 1
       .data               : > RAMLS5,       PAGE = 1
       .sysmem             : > RAMLS5,       PAGE = 1
       /* Initalized sections go in Flash */
       .const              : > FLASHF,       PAGE = 0,       ALIGN(8)
    #else
       .pinit              : > FLASHB,       PAGE = 0,       ALIGN(8)
       .ebss               : >> RAMLS5 | RAMGS0 | RAMGS1,    PAGE = 1
       .esysmem            : > RAMLS5,       PAGE = 1
       .cio                : > RAMLS5,       PAGE = 1
       /* Initalized sections go in Flash */
       .econst             : >> FLASHF      PAGE = 0, ALIGN(8)
    #endif
    
    
    
    
    #ifdef __TI_COMPILER_VERSION__
        #if __TI_COMPILER_VERSION__ >= 15009000
            #if defined(__TI_EABI__)
            .TI.ramfunc : {
    				        sfra_f32_eabi.lib<SFRA_F32_inject.obj>
    				        sfra_f32_eabi.lib<SFRA_F32_collect.obj>
            				} LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(RamfuncsLoadStart),
                             LOAD_SIZE(RamfuncsLoadSize),
                             LOAD_END(RamfuncsLoadEnd),
                             RUN_START(RamfuncsRunStart),
                             RUN_SIZE(RamfuncsRunSize),
                             RUN_END(RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
            #else
            .TI.ramfunc : {} LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart),
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
            #endif
        #else
       ramfuncs            : LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart),
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
        #endif
    
    #endif
    
    	/* Allocate FPU math areas: */
    	//FPUmathTables : > FPUTABLES, PAGE = 0, TYPE = NOLOAD
    	//FPUmathTables : > FLASH1, PAGE =1
    
        MSGRAM_CPU1_TO_CPU2 : > CPU1TOCPU2RAM, type=NOINIT
        MSGRAM_CPU2_TO_CPU1 : > CPU2TOCPU1RAM, type=NOINIT
    
    }
    
    /*
    //===========================================================================
    // End of file.
    //===========================================================================
    */
    

    MEMORY
    {
    PAGE 0 :
       /* BEGIN is used for the "boot to SARAM" bootloader mode   */
    
       BEGIN           	: origin = 0x080000, length = 0x000002
       RAMM0           	: origin = 0x0000A2, length = 0x00035E
       RAMD0           	: origin = 0x00B000, length = 0x000800
       RAMLS0          	: origin = 0x008000, length = 0x000800
       RAMLS1          	: origin = 0x008800, length = 0x000800
       RAMLS2      		: origin = 0x009000, length = 0x000800
       RAMLS3      		: origin = 0x009800, length = 0x000800
       RAMLS4      		: origin = 0x00A000, length = 0x000800
       RAMGS14          : origin = 0x01A000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
       RAMGS15          : origin = 0x01B000, length = 0x000FF8     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
    
    //   RAMGS15_RSVD     : origin = 0x01BFF8, length = 0x000008    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
       RESET       		: origin = 0x3FFFC0, length = 0x000002
    
       /* Flash sectors */
       FLASHA           : origin = 0x080002, length = 0x001FFE	/* on-chip Flash */
       FLASHB           : origin = 0x082000, length = 0x002000	/* on-chip Flash */
       FLASHC           : origin = 0x084000, length = 0x002000	/* on-chip Flash */
       FLASHD           : origin = 0x086000, length = 0x002000	/* on-chip Flash */
       FLASHE           : origin = 0x088000, length = 0x008000	/* on-chip Flash */
       FLASHF           : origin = 0x090000, length = 0x008000	/* on-chip Flash */
       FLASHG           : origin = 0x098000, length = 0x008000	/* on-chip Flash */
       FLASHH           : origin = 0x0A0000, length = 0x008000	/* on-chip Flash */
       FLASHI           : origin = 0x0A8000, length = 0x008000	/* on-chip Flash */
       FLASHJ           : origin = 0x0B0000, length = 0x008000	/* on-chip Flash */
       FLASHK           : origin = 0x0B8000, length = 0x002000	/* on-chip Flash */
       FLASHL           : origin = 0x0BA000, length = 0x002000	/* on-chip Flash */
       FLASHM           : origin = 0x0BC000, length = 0x002000	/* on-chip Flash */
       FLASHN           : origin = 0x0BE000, length = 0x001FF0	/* on-chip Flash */
    
    //   FLASHN_RSVD     : origin = 0x0BFFF0, length = 0x000010    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
    
    PAGE 1 :
    
       BOOT_RSVD       : origin = 0x000002, length = 0x0000A0     /* Part of M0, BOOT rom will use this for stack  A0*/
       RAMM1           : origin = 0x000400, length = 0x0003F8     /* on-chip RAM block M1 */
    //   RAMM1_RSVD      : origin = 0x0007F8, length = 0x000008     /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
       RAMD1           : origin = 0x00B800, length = 0x000800
    
       RAMLS5          : origin = 0x00A800, length = 0x000800
    
       RAMGS0          : origin = 0x00C000, length = 0x001000
       RAMGS1          : origin = 0x00D000, length = 0x001000
       RAMGS2          : origin = 0x00E000, length = 0x001000
       CPU2TOCPU1RAM   : origin = 0x03F800, length = 0x000400
       CPU1TOCPU2RAM   : origin = 0x03FC00, length = 0x000400
    }
    
    SECTIONS
    {
       /* Allocate program areas: */
       .cinit              : > FLASHA      PAGE = 0, ALIGN(8)
       .text               : > FLASHB | FLASHC | FLASHD     PAGE = 0, ALIGN(8)
       codestart           : > BEGIN       PAGE = 0, ALIGN(8)
    
       /* Allocate uninitalized data sections: */
       .stack              : > RAMM1        PAGE = 1
    
       /* Initalized sections go in Flash */
       .switch             : > FLASHB      PAGE = 0, ALIGN(8)
       .reset              : > RESET       PAGE = 0, TYPE = DSECT /* not used, */
       
    #if defined(__TI_EABI__)
       .init_array         : > FLASHA,       PAGE = 0,       ALIGN(8)
       .bss                : > RAMLS5,       PAGE = 1
       .bss:output         : > RAMLS3,       PAGE = 0
       .bss:cio            : > RAMLS5,       PAGE = 1
       .data               : > RAMLS5,       PAGE = 1
       .sysmem             : > RAMLS5,       PAGE = 1
    
       /* Initalized sections go in Flash */
       .const              : > FLASHF,       PAGE = 0,       ALIGN(8)
    #else
       .pinit              : > FLASHB,       PAGE = 0,       ALIGN(8)
       .ebss               : >> RAMLS5 | RAMGS2 | RAMGS3,    PAGE = 1
       .esysmem            : > RAMLS5,       PAGE = 1
       .cio                : > RAMLS5,       PAGE = 1
       /* Initalized sections go in Flash */
       .econst             : >> FLASHF       PAGE = 0, ALIGN(8)
    #endif
    
       //SHARERAMGS0		: > RAMGS0,		PAGE = 1
       //SHARERAMGS1		: > RAMGS1,		PAGE = 1
       //SHARERAMGS2		: > RAMGS2,		PAGE = 1
    
    #ifdef __TI_COMPILER_VERSION__
        #if __TI_COMPILER_VERSION__ >= 15009000
            #if defined(__TI_EABI__)
                .TI.ramfunc : {} LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(RamfuncsLoadStart),
                             LOAD_SIZE(RamfuncsLoadSize),
                             LOAD_END(RamfuncsLoadEnd),
                             RUN_START(RamfuncsRunStart),
                             RUN_SIZE(RamfuncsRunSize),
                             RUN_END(RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
            #else
                .TI.ramfunc : {} LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart),
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
            #endif
        #else
       ramfuncs            : LOAD = FLASHD,
                             RUN = RAMLS0,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             LOAD_END(_RamfuncsLoadEnd),
                             RUN_START(_RamfuncsRunStart),
                             RUN_SIZE(_RamfuncsRunSize),
                             RUN_END(_RamfuncsRunEnd),
                             PAGE = 0, ALIGN(8)
        #endif
    #endif
    
    	//
        // User Sections
        //
        systemC1 {  }          >  RAMGS0, ALIGN(8)
        systemC2 {  }          >  RAMGS1, ALIGN(8)
    
        /* The following section definitions are required when using the IPC API Drivers */
        //GROUP : > CPU1TOCPU2RAM, PAGE = 1
        //{
        //    PUTBUFFER
        //    PUTWRITEIDX
        //    GETREADIDX
        //}
    
        //GROUP : > CPU2TOCPU1RAM, PAGE = 1
        //{
        //    GETBUFFER :    TYPE = DSECT
        //    GETWRITEIDX :  TYPE = DSECT
        //    PUTREADIDX :   TYPE = DSECT
        //}
    
    	MSGRAM_CPU1_TO_CPU2 : > CPU1TOCPU2RAM, type=NOINIT
        MSGRAM_CPU2_TO_CPU1 : > CPU2TOCPU1RAM, type=NOINIT
    }
    
    /*
    //===========================================================================
    // End of file.
    //===========================================================================
    */
    

  • Hi Andrew,

    Thanks for the response. I'm not sure I fully understand the nature of the issue here yet - Can you reset the device and load the symbols of the boot rom so you can step through and see what line the device is stuck at? I will ask a colleague to help review the linker command file.

    Best Regards,

    Allison

  • The picture below shows the situation when the code is reset in CSS.
    
    0x3FF16A (no symbols are defined) in debug window	
    You can see the message.   In this state, when you press Resume, main() cannot be started.
    
    I don't know if I don't understand the bootrom or the bootrom is damaged.  
    
    Operating the boot switch didn't make much of a difference.
    When I press resume on PIC2, ​​PIC3 runs in an infinite loop.
    
    I think it will be easier to understand if you know what kind of bootrom source code it is.
    
    I'm not sure.  I would like you to point out what I am doing wrong.

     




    [PIC1]



    [PIC2]

    [PIC3]

  • Hello Andrew,

    You can step through the boot code/assembly of the device if you would like. Here is how I've done so with an F28004x LaunchPad (same applies to F2837xD):

    1. Launch the target configuration
    2. Change the auto-launch settings (uncheck the box as we discussed)
      1. You can also use the "remember settings" button to save these debug settings
    3. Connect to the CPU target
    4. Click on the 'Load' button and 'Load Symbols'
    5. Browse for the bootrom .out file for your device in C2000Ware
      1. This should be at a location like {C2000Ware}\libraries\boot_rom\f2837xd\revB\rom_sources\ccs_files\cpu01\Release\F2837x_cpu01_bootROM_REVB_Golden_020314.out
    6. Once you load the symbols, this should bring you to something like this (I'm using F28004x for this example)
    7. You can step through this code and also run to the line that calls (LCR) the bootrom system init and then "step into" that function 
    8. This brings you to the boot.c

    Let me know if you are able to load the symbols of the bootrom in a similar manner.

    Best Regards,

    Allison