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.

Executing Code From Flash using the Spectrum Digital TMS320C515 evm development board.

Other Parts Discussed in Thread: TMS320C5515

Hello,

I have spent the past few days trying to locate example codes/projects that illustrate executing code  from a programmed flash device using the Spectrum Digitals TMS320C5515 evm development board. Have not been able to locate any code example which specifically uses the TMS320C5515 development board and execute code from its external flash device.

 

I have used the hex55.exe to create a simple program and have used Code Composer to load it into the external FLASH device and it seems to work(Code << 320k). However, when I try to compile and link my project with Code Composer it states that the code is to large (the project code is >320K).

Here is the command file that I have downloaded from Spectrum Digital for the TMS320C5515 development board.

 

*-c

/*-stack 0x7000                   /* PRIMARY STACK SIZE               */

/*-sstack 0x2000                /* SECONDARY STACK SIZE             */

/*-heap  0x1000                   /* HEAP AREA SIZE  */

_RTDX_interrupt_mask = ~0x06000010;

/* Set entry point to Reset vector                                  */

/* - Allows Reset ISR to force IVPD/IVPH to point to vector table.  */

/*-e reset_isr */

 

MEMORY

{

    MMR     (RW) : origin = 0000000h length = 0000c0h

/* MMRs */

    VEC     (RX) : origin = 00000C0h length = 000300h

/* on-chip ROM vectors */

    DARAM (RW)    : origin = 0000400h length = 00fa00h 

    SARAM_3 (RW)  : origin = 0010000h length = 03A000h 

    SAROM_0 (RX)  : origin = 0fe0000h length = 008000h  /* on-chip ROM 0 */

    SAROM_1 (RX)  : origin = 0fe8000h length = 008000h  /* on-chip ROM 1 */

    SAROM_2 (RX)  : origin = 0ff0000h length = 008000h  /* on-chip ROM 2 */

    SAROM_3 (RX)  : origin = 0ff8000h length = 008000h  /* on-chip ROM3 */

    EMIF_CS0 (RW)  : origin = 0050000h  length = 07B0000h  /* mSDR */

    EMIF_CS2 (RW)  : origin = 0800000h  length = 0400000h  /* ASYNC1 : NAND */

    EMIF_CS3 (RW)  : origin = 0C00000h  length = 0200000h  /* ASYNC2 : NOR  */

     EMIF_CS4 (RW)  : origin = 0E00000h  length = 0100000h    /* ASYNC3 : SRAM */

     EMIF_CS5 (RW)  : origin = 0F00000h  length = 00E0000h   /* ASYNC4 : SRAM */

}

 

SECTIONS

{

    vectors     : > VEC

   

.text       : > DARAM  ALIGN = 4

stack : > DARAM  ALIGN = 2

sstack      : > DARAM  ALIGN = 2

.switch : > SARAM_3

 .data       : > DARAM

 .bss        : > SARAM_3, fill = 0

 .cinit : > SARAM_3

.const : > DARAM

.cio : > DARAM

sysmem : > DARAM

.WorkBuffer : > DARAM

.Coeff : > DARAM

.emif_cs0   : > EMIF_CS0

.emif_cs2   : > EMIF_CS2

.emif_cs3   : > EMIF_CS3

.emif_cs4   : > EMIF_CS4

.emif_cs5   : > EMIF_CS5

 

}

  • Is there a Spectrum Digital TMS320C5515's project file that shows the command file modifications that will allow the linker to accomadate program >320K ?
  • Is there a Spectrum Digital TMS320C5515's project file that shows the needed set ups to allow a program to execute from FLASH?

 

Thanks for your consideration

 

 

 

 

  • Hi Conrad,

    To bootload from any of the external memories of the C5515 EVM, see...
    http://processors.wiki.ti.com/index.php/C5515_Boot-Image_Programmer#How_to_program_a_boot_image_onto_C5515_EVM

    Since C5515 has only 320 KB of internal memory, you cannot load >320 KB into the internal memory at once.

    You can execute directly from external memory - study this older example for C5515...
    7142.RunFromEMIF.zip

    OR you can use overlays to copy part of the program into internal memory and execute from internal memory, See...
    http://processors.wiki.ti.com/index.php/Debugging_Overlays_With_CCStudio#Example

    Hope this helps,
    Mark

  • Hello Mark,

    First, I would like to say thanks for your comments/suggestions and source code.

     

    (a). I compiled the source code and got the following error:

     

    ebug/main_test.obj" -l"rts55x.lib"

    <Linking>

    warning #10247-D: creating output section ".cio" without a SECTIONS

       specification

     

    undefined first referenced

      symbol       in file    

    --------- ----------------

    reset_isr                


    error #10234-D: unresolved symbols remain

    warning #10062-D: entry-point symbol "reset_isr" undefined


    error #10010: errors encountered during linking;

    >> Compilation failure

       "C:/Users/conrad.thomas/workspace_v5_1/7142.RunFromEMIF/RunFromEMIF/c5505_ev

       m13/../Debug/main_test.out" not built

    gmake: *** [C:/Users/conrad.thomas/workspace_v5_1/7142.RunFromEMIF/RunFromEMIF/c5505_evm13/../Debug/main_test.out] Error 1

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    (b). Next--I commented out the //e reset_isr that is located in the c5505_evm13_emif.command and then was able to compile.

     

    (c)Next, I tried to run the edited .cmd/project or step(b). with the hardware emulator and got the following:

    C55xx: GEL Output: Reset Peripherals is complete.

    C55xx: GEL Output: Configuring PLL (100.00 MHz).

    C55xx: GEL Output: PLL Init Done.C55xx: GEL Output: SDRAM Initilization Complete.

    C55xx: GEL Output: Target Connection Complete.

    C55xx: File Loader: Data verification failed at address 0x00900200 Please verify target memory and memory map.

    C55xx: GEL: File: C:\Users\conrad.thomas\workspace_v5_1\7142.RunFromEMIF\RunFromEMIF\Debug\main_test.out: a data verification error occurred, file load failed.

     

    (d). I next selected the target configuration/software simulator, C5515Simulator.ccxml, and was then able to step and simulate the code you sent.

     

    Question:

    (a). What is needed for the Linker to recognize a reset_isr.  I would like to step through with the hardware emulator as I dod with the software simulator.

    (b). When I was able to get the project to compile ,by commenting out //-e reset_isr, why did it fail with the hardware emulator and not with the simulator (C5515Simulator.ccxml )?

    Thanks again for any comments or suggestions.

    --CONRAD--

     

     

     

     

     

  • Mark and Others,1538.7142.RunFromEMIF.zip

     

    I have attached the project which Mark sent me and have modified it to run with the Spectrum Digital TMS320C5515 eva board.

    I stated in my last post that if I used the software simulator I can then use the debugger in CCS version 5 to step and see the code which should executed from external Flash indeed works. Notice, that the software simulator uses tsim_c55s.gel that does not initialize the memory map.

     

    However, when I set active the configuration file (attached evaBRD_EVM5515.ccxm) which uses the evm5515.gel file I get the following:

    C55xx: GEL Output: Reset Peripherals is complete.

    C55xx: GEL Output: Configuring PLL (100.00 MHz).

    C55xx: GEL Output: PLL Init Done.C55xx: GEL Output: SDRAM Initilization Complete.

    C55xx: GEL Output: Target Connection Complete.

    C55xx: File Loader: Data verification failed at address 0x00800200 Please verify target memory and memory map.

    C55xx: GEL: File: C:\Users\conrad.thomas\workspace_v5_1\7142.RunFromEMIF\RunFromEMIF\Debug\main_test.out: a data verification error occurred, file load failed.

     

     

    I have serach the community and based on what was mentioned I know that it is a compatibility issue between the memory map and the command file.

    Can someone assist me on the changes needed in  the command file(c5505_evm13_emf.cmd..located in the folder) to make it compatible with the evm5515.gel which I got from Spectrum Digital. My goal is to use the evm5515.gel with the c5505_evm13_emf.cmd and then use the Debugger to step and set break points.

     

    Thanks alots

     

  • Dear

    anybody online there

    maruti