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.

how to set hex55 options for a TMS320VC5502 application using a I2C interfaced EEPROM (Atmel AT24C512B)

Other Parts Discussed in Thread: TMS320VC5502

I'm getting desperate! I have been trying to determine the correct hex55 options so that a TMS320VC5502 can boot the code from a I2C interfaced EEPROM AND RUN.

1) The program runs correctly when loaded via a XDS100V2 JTAG Emulator and CCSV4.2.00033

2) I'm using hex55.exe version 4.3.8.

3) From a DOS prompt, the command I am using is: hex55 -boot -v5510:2 -serial8 -delay 0x1000 -i -O AA_DSP.hex ProLinkIIPlus.out -map boot.mxp

4) boot.mxp follows:

********************************************************************************
TMS320C55x Hex Converter                                                  v4.3.8
********************************************************************************

INPUT FILE NAME: <ProLinkIIPlus.out>
OUTPUT FORMAT:   Intel

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

BOOT LOADER PARAMETERS
   Table Type:    SERIAL PORT (McBSP 8 bit Mode)
   Entry Point:    0x00008a26


OUTPUT TRANSLATION MAP
--------------------------------------------------------------------------------
00000000..00ffffff  Page=0  Memory Width=8  ROM Width=8
--------------------------------------------------------------------------------
   OUTPUT FILES: AA_DSP.hex [b0..b7]

   CONTENTS: 00000000..00008bef   BOOT TABLE
                            .text : dest=00000200  size=00008889  width=00000001
                           .cinit : dest=0000c668  size=0000023e  width=00000001
                          vectors : dest=0000ff00  size=00000100  width=00000001

--------------------------------------------------------------------------------
00000000..00ffffff  Page=1  Memory Width=8  ROM Width=8  "*DEFAULT PAGE 1*"
--------------------------------------------------------------------------------
   NO CONTENTS

5) I can verify that the program loads into TMS320 RAM correctly (it matches that loaded via the JTAG Emulator, at least to the extent that I have checked). However, the program does not execute correctly. I seems to be looping in one of the subroutines, but does not behave normally.

Observation:

boot.map shows a "default Memory Width" of 8 bits, but section 13.10.1 of document SPRU280I states that the -memwidth16 option should be used for a TMS320C55xx device. Does that apply here?

Thanks for any help you can provide.

Mike

  • Hi,

    Which boot-loader version are you using ? If you are using version A you could observe the I2C boot status on GPIO4.

    Which output format are you trying to generate – if it is Tektronix then you need to specify –x if not you can select bin “–b”

    You could also reduce the delay to 100 and try with the below hex command.

    hex55 -i ProLinkIIPlus.out -o AA_DSP.bin -boot -v5510:2 -b -serial8 -delay 0x100

    For further details on the hex utility format etc ..refer to TMS320C55x Assembly Language Tools User’s Guide (SPRU280)

    Hope this information helps.

    Regards

    Vasanth

  • Thanks for the reply, Vasanth.

    In your hex55 command, both -i and -b options are selected. I assume that the "-i" is a mistake.

    How can I tell which bootloader version I am using? Why bin (-b) format instead of intel format (-i)? The EEPROM burner I am using is a Wellon VP-290, which accepts input in either BIN or HEX format.

    My observation is that the TMS320VC5502 bootloader loads the program code correctly, but variables are not initialized, or at least not correctly. So an array explicitly initialized array (for example, int xyz = 0x1000) does not contain the correct value (0x1000).
  • Hi,

    You can try by removing the -i option ? I remember "-i" option is for specifying input file & "-I" for intel format, this  based on C55xx bootloader document reference.

    Also, If you have option to boot from other peripheral, then you could even try that and check.This will isolate the issue if there is any between I2C or generated binary file.

    Regards

     Vasanth

  • Hello Vasanth. While I appreciate the reply and the advice, it's not getting me anywhere. One thing to keep in mind is that I am attempting to modify a program written for a TMS320VC5502 interfaced to a serial EEPROM that is working. What's changed is the compiler (now CCSV4) and the hex55 utility.

    After hours and hours of work, I have determined that:

    The TMS320VC5502 bootloader is correctly loading the program (.text) and .cinit sections. However, it is ignoring the .bss section, because hex55 is not including this section in the bootload table. I have an ".map" file from 4 years ago which was generated using an unknown version of hex55 that DID includes the .bss section in the bootload table. When the program is loaded from the EEPROM generated using the old hex55 version, it executes correctly.

    Note that .bss section contains initialized variables that are not getting initialized using the new hex55 version - the corresponding memory locations contain random data. In fact, document SPRU280I specifically states that "Uninitialized sections are never converted" (referring to hex55), and that the .bss section is an "uninitialized section". The assumption is, apparently, that .bss values are to be stored in ROM, not RAM. As far as I know, the TMS320C55xx series of DSPs contain no user programmable ROM. The linked is clearly allocating initialized variables into the .bss section.

    In the documentation for the C55xx bootloader I am reading (SPRU280I, "Hex Conversion Utility Description"), there is only a -i (Intel) option - no -I option exists. Am I using the wrong document or the wrong hex55 program?

    Please let me know if you think that this question should be posted on the CCS DSP forum instea

    Thanks.

    Mike

  • Hi Mike,

    If you suspect this is issue with the Hex / CCS and bootloader performs operation correctly and as expected, then you could try to parallely post this question in CCS forum as well.

    The options provided to hex utility to generate the respective out file looks fine to me. Will get back if I find any thing further on this (related to hex ).

    Regards

     Vasanth

     

     

  • Thanks! I'll do that.