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.

Flashing the DSK6713 in CCS v4

Hi there,

 

We are developing a product using a C6713.  We started with the DSK and CC v3.1, we had a working program and were able to load it into the flash from CC v3.1 using the hex conversion and flashburn utilities.  In preperation for moving onto our own board we upgraded to CCS v4.  I have been able to get the program fully working on the DSK through CCS v4 but am very puzzled on how to load it into the flash to make it boot on power up.

 

Does anybody have any pointers or ideally a tutorial that can outline how its done for a generic program?

 

Kind regards

 

Sean

  • Hi Christina,

     

    I have been looking at that article, unfortunatley it is all based around ccs v3.1 and its built in tools.  As of yet I havent even been able to duplicate the first few steps in ccs4 then use the hex converter and falsh burn in v3.1 sucesfully.

     

    Regards

     

    Sean

  • Previously, I looked at the instructions and thought it didn't rely on the CCS version.  However, I realized my mistake because the flash burn utility is only available for CCS versions up to 3.3.

    Unfortunately, I'm not too familiar with the flash burn utility, and whether it was incorporated into CCSv4. I'm going to move this post over to the CCS forum.  Hopefully, the folks there can provide more insight.

    --Christina

  • Unfortunately, Flashburn is not supported on v4. Sorry

    ki

  • Hi Ki,

    I now flashburn isnt supported for ccs v4, but that was never my question.

    Is there any reasson why I cant create a .out file in ccs v4 then ues hex6x and flash burn in v3 to put it onto the flash? 

    I want to do this as a step to now I have a good .out file before writing code to somehow burn the program to the flash using ccs v4 as there dosent seem to be any built in tools to do this.  

    This is the secondary boot loader that I have been trying to use to acomplish this.

     

    .ref    _c_int00
        .global RESET_RST
           
    FLASH_START   .equ    0x90000400        ;flash start address
    CODE_START    .equ    0x00000400        ;start of non boot code
    CODE_SIZE     .equ    0x00030000        ;application code size in byte
     
     .sect "vectors"
    RESET_RST:
       
        NOP  ; mvkl .S2 _c_int00, B0
        NOP  ; mvkh .S2 _c_int00, B0
        NOP  ; B    .S2 B0
     NOP
     NOP
     NOP
     NOP
        NOP
       
    NMI_RST:   
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    RESV1:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    RESV2:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT4:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT5:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
                      
    INT6:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT7:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT8:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT9:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT10:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT11:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT12:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT13:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT14:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

    INT15:
        NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     
     .sect "bootload"
     
    _boot_start:
        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 

     

    and this is the .map output from the hex6x tool

    ********************************************************************************
    TMS320C6x COFF/Hex Converter                                              v5.1.0
    ********************************************************************************

    INPUT FILE NAME: <C:\CCS_projects\14du\Debug\14du.out>
    OUTPUT FORMAT:   ASCII-Hex

    PHYSICAL MEMORY PARAMETERS
       Default data width   :   8
       Default memory width :   8
       Default output width :   8


    OUTPUT TRANSLATION MAP
    --------------------------------------------------------------------------------
    00000000..0002ffff  Page=0  Memory Width=8  ROM Width=8  "FLASH"
    --------------------------------------------------------------------------------
       OUTPUT FILES: BlinkDSK6713.hex [b0..b7]

       CONTENTS: 00000000..000001ff   vectors
                 00000200..0000025f   bootload
                 00000260..000003ff   FILL = 00000000
                 00000400..000089bf   .text
                 000089c0..0000cb7f   .bios
                 0000cb80..0000de7b   .cinit
                 0000de7c..0000de7f   .args
                 0000de80..0000ed1f   .rtdx_text
                 0000ed20..0000fdbf   FILL = 00000000
                 0000fdc0..000101df   .sysinit
                 000101e0..00011177   FILL = 00000000
                 00011178..00011388   .const
                 00011389..0001138b   FILL = 00000000
                 0001138c..000113eb   .sts
                 000113ec..000113ff   FILL = 00000000
                 00011400..000115ff   .hwi_vec
                 00011600..000117ff   .trace
                 00011800..00011bdf   FILL = 00000000
                 00011be0..00011c2b   .gblinit
                 00011c2c..00011c77   .switch
                 00011c78..00011cd3   FILL = 00000000
                 00011cd4..00011ceb   .log
                 00011cec..00011d1b   FILL = 00000000
                 00011d1c..00011d27   .pinit
                 00011d28..00011d33   .trcdata
                 00011d34..0002ffff   FILL = 00000000

     

    So it looks like everything is going into the rght place but it isnt workiing.

    Any help or tips on where i might be going wrong would be very appretiated.

     

    Sean

  • Sean,

    Although the procedure to generate the flash image is independent of the version of CCS (and you seem to be doing it correctly), the only software that is capable of writing to the flash memory of DSK6713 boards (Flashburn) is not compatible with CCSv4. We don't have a replacement, but I suggest contacting Software Design Solutions (the owner of the Flashburn utility) with your request to support CCSv4 - they have been maintaining this software for several years and always add new boards/features to their product.

    I apologize for the lack of options, but I hope you are successful with them.

    Best regards,

    Rafael

  • Hi Rafael,

    Ill do that, but in the meen time do you have any suggections as to why the .out file im generating in v4 wont work when I convert and burn it in v3.

    Thanks

    Sean

  • Sean,

    From a tools standpoint I don't see any reason why hex6x would generate a different output, but the linker may be reordering some memory sections and therefore the hex6x cmd file may need to be modified to accomodate that.

    Unfortunately I am not the best person to talk about the C67x boot loader code, but I strongly suggest you read chapter 14 of the C6x1x Integration workshop - specifically the section Debugging ROM'ed code. It gives practical guidelines about how to create mechanisms that allow debugging the boot process (I did this workshop years ago and I recall it was very useful).

    Regards,

    Rafael

  • Hi,

    Well I'm back after the holidays and im afraid I still have no solution to this problem.

    Rafael, I had a look at the workshop material that was on the wiki page and didnt find anything terrible helpful.

    I am pretty much out of ideas, does anybody have anything that might help me?

    Regards

    Sean

  • Just FYI, this thread was split to:

    http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/p/86746/299580.aspx