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.

[VC5503] hex conversion utility

Guru 24520 points
Other Parts Discussed in Thread: TMS320VC5503

Hi TI Experts,

Please let me confirm the following question.

[Question]
My customer said that the output binary file by hex conversion utility was not 16bits unit. The file size is 8753 bytes. If use this image, it seems that it worked. However, they would like to know whether there is any problem for operation even though the bin file was not 16bits unit. If add the pad byte to this, would you teach me that values?

I attached the part of map file as below.

*************

********************************************************************************
TMS320C55x Hex Converter v4.3.2
********************************************************************************

INPUT FILE NAME: <xxx.out>
OUTPUT FORMAT: Binary

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


OUTPUT TRANSLATION MAP
--------------------------------------------------------------------------------
00000200..00003fff Page=0 Memory Width=8 ROM Width=16 "ROM1"
--------------------------------------------------------------------------------
OUTPUT FILES: xxx.bin [b0..b15]

CONTENTS: 00000200..000002ff vectors
00000300..0000030f main_prog0
00000310..000009f3 coef_rom
000009f4..00001d32 main_prog
00001d33..00002430 init_prog

************* 

Or would you please check whether there is any problem for this binary? If you can check, I will send the .out , .mxp file, .bin, cmd files to you on offline. So please teach me your Email address.

If you have any questions, please let me know.
Best regards.
Kaka

  • Hi Kaka-San,

    Has your customer seen http://www.ti.com/lit/ug/spru280i/spru280i.pdf Section 13 on the hex utility and its functionality, widths (13.3)?

    How were they checking the bin file's unit size?

    Lali

  • Hi Lali,

    Thank you for your response.
    Yes my customer have already check this documents.
    The have checked the output binary file by generating the hex55.exe.

    Please let me confirm the following
    When build the source codes, is there a potential that the start address mapped to the odd address?
    If yes, there is any problem for operation even though mapped the odd address?

    I got the linker command , map file when they have build. If you can teach me the Email-address, I can send you them(binary file, out file, linker, cmd files).
    I would like to know check whether there is any problem for those results.

    Best regards.
    Kaka
  • Hi Kaka,

    The code address space for C5503/4/5 is byte addressable, so it is OK to have a odd starting address. The data address space is 16-bit word addressable though. If you have a data address which is odd, then there is a problem.

    Best regards,

    Ming

  • Hi Ming,

    Thank you for your response.
    I could understand that the C55x is byte addressable.

    Please let me confirm the following question.
    If use the hex conversion utility for odd starting address of code in case of using the HPI boot, is there a potential to add a byte to the binary image to start the even start address?

    If yes, would you please teach me the padding value?

    If you have any questions, please let me know.
    Best regards.
    Kaka
  • Hi Ming,

    Would you please provide your answer for my question?

    Best regards.
    Kaka
  • Hi Kala,

    I do not aware of any utility that you can pad the boot image. In order to get rid of the odd starting address, you may have to work on the linker command file to make sure _c_int00() is put in the even address. If the boot image is bootloaded into RAM by the C55xx ROM bootloader, The padding is automatically happened, because the bootloader is copying data in 16 bit word unit. If you are using HPI, I think the HPI interface is also 16 bit, so the padding is automatically happened. If you are using USB or UART, you do not need to pad the boot image. The C55xx bootloader will take care of the padding.

    Best regards,

    Ming
  • Hi Ming,

    The map file is defined the entry points as below.
    ------------------------------------------------------
    ******************************************************************************
    TMS320C55x Linker PC v4.3.2
    ******************************************************************************
    OUTPUT FILE NAME: <xxx.out>
    ENTRY POINT SYMBOL: "_c_int00" address: 00000300
    ------------------------------------------------------
    Also I could share the linker command file and map files to you if you reach me the Email-address.

    The parameters for hex55 utility is as below.
    ------------------------------------------------------
    test.out
    -b /* output format = binary */
    -map test.mxp /* map file */
    -memwidth 8 /* Memory Width = 8bit (Binary must have memory width of 8) */
    ROMS
    { ROM1: origin=0200h len=03E00h romwidth=16
    files={bootimg.bin}
    }
    SECTIONS
    {
    vectors:
    main_prog0:
    coef_rom:
    main_prog:
    init_prog:
    }
    ------------------------------------------------------
    Would you please check whether there is any problem for them?
    There is no error on console.
    Also I noticed that if I used the following parameter, it showed the following error.
    ------------------------------------------------------
    *Parameter
    -boot
    -v5505
    -romwidth 16
    -memwidth 16
    .\test.out
    -map .\test.mxp
    -b
    -o .\bootimg.bin

    *Error
    error: Starting address of section init_prog is not aligned to an even
    byte boundary as required for a boot loader of the requested type
    ------------------------------------------------------
    So it seems that there is any problem for the parameter to generate the binary file.

    And I told the other thread, the boot file image size is odd byte size as below even though they will use the HPI boot.

    https://e2e.ti.com/support/dsp/c5000/f/109/p/517309/1881350

    So, customer would like to know the  last "1byte" data value which they should send to VC5503. If the hex utility will happen automatically padding a byte, would you please teach me the way or parameter to generate it?

    Or can they add the 1byte data with 0x00 or 0xFF to this image file on Host CPU? I think that if they add it to this image, there is any problem for operation. How do you think?

    Best regards.
    Kaka

  • Hi Ming,
    I am waiting for your kind feedback.
    Please help us.

    Best regards.
    Kaka
  • Hi Kaka,

    According to the information you sent, it is the starting address for the section init_prog was not even byte aligned. In your case, if you can make sure the section init_prog is started at the even byte aligned address in your link command file, then the problem is solved:

    init_prog       : > SARAM  ALIGN = 2

    C5503 does not support HPI. I am not sure how customer can use the HPI on C5503. In case you are wondering how to send a section with odd byte size over HPI, it is simple. The HPI is 16 bit interface, therefore each time when you send data, it must be in 16 bit word. You can simply set the last byte to be zero, because it is just a padding byte and will not be used at all.

    Best regards,

    Ming

  • Hi Ming,

    Thank you for your response.
    My customer is used the TMS320VC5503. It is support the HPI boot. Right?

    I will inform your comment to my customer. If I get more questions from them, please let me confirm them.
    Best regards.
    Kaka
  • Hi Kaka,

    Sorry, I messed up the C5503 with C5504/05. Yes C5503 does support HPI and it is 16 bit interface.

    Best regards,

    Ming