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.

burning flash c6713



Hello

I'm new in work with DSP ti.  I've been trying  to work in a boot loader with project  DSP/BIOS  and  I can't get it  works  I've followed  the steps indicated in spra999,may 2006  and I even tried to download the application but the link is broken http://www.-s.ti.com/sc/psheets/spra999a1/spraa999a1.zip.

when I defined the memory segments I get some problems:

warning: load address of uninitialized section .hwi ignored

error: can't allocate .IRAM$heap (sz: 00008000 page: 0) in IRAM (avail:
            00006938)

when I put a new linker command file whit these lines

-l  playcfg.cmd

SECTIONS

    .boot_load : LOAD=FLASH_BOOT, RUN =BOOT_RAM

}

 warning: load address of uninitialized section .hwi ignored
 warning: load address of uninitialized section .boot_load ignored
   error: can't allocate .IRAM$heap (sz: 00008000 page: 0) in IRAM (avail:
            00006938)

and the secondary bootloader  have I to write a .s62 file ?

I'm a litle bit confused, can you post a simple project with DSP/BIOS whit all this to guide me ? I've saw many forums but I can't do it correctly.

especially this http://wiki.davincidsp.com/index.php/Flashing_the_C6713_EVM

I'd really good aprecciate your help

 

Vanessa  Gamero

 

 

 

  • 1. You need to reduce the heap size, say 0x100.

    2. I would advise to follow the guideline (in mentioned document) on where things are allocated. In general, you need a bootloader to be located at the first 1K memory of the ROM which typically copies the rest of code from ROM/FLASH to RAM. Upon reset, the DSP copies the 1K from 0x90000000 to 0x00000000 and start executing at 0

    here is part of code:

     

    ;****************************************************************
    ; Copy from Flash memory (slow!) to DSP memory
    ; (Fast!) and branch to start main code executing.
    ;****************************************************************
            mvkl  FLASH_START,B4 ;flash start address ->B4
            mvkh  FLASH_START,B4  
           
            mvkl  CODE_START,A4 ;apps code start address ->A4
            mvkh  CODE_START,A4
            zero  A1
           
    _boot_loop1:
            ldb   *B4++,B5       ; flash read
            mvkl  CODE_SIZE-4,B6 ; B6 = BOOT_SIZE -1024
           
            add   1,A1,A1          ;A1+=1,inc outer counter
            ||    mvkh  CODE_SIZE-4,B6
           
            cmplt  A1,B6,B0
            nop   
            stb   B5,*A4++
            [B0]  b     _boot_loop1
            nop   5
           
            mvkl .S2 _c_int00, B0
            mvkh .S2 _c_int00, B0
            B    .S2 B0
            nop   5

  • Bako Abatcha said:
    1. You need to reduce the heap size, say 0x100.

    While this would fix the problem, I would be careful doing this unless you have absolutely no desire to use any dynamic memory allocation in your project. The linker error you receive is caused by trying to fit a section of 0x8000 bytes into a memory segment that only has around 0x7900 bytes free. It cannot fit your heap into this memory, thus the error. An alternative would be to rearrange where all of your code/data sections are located (e.g., place something into external memory rather than internal memory).