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.

hex2000 c28346 DSP ascii output problem

Hello,

I am using hex2000.exe in order to convert my .out file into ASCII format with the following options:

-a -boot -spi8 -lospcp 0x00 -spibrr 0x07  -o asc_file_name

Then I use the generated output file to program the external flash memory.

The figure below is a snapshot of the hex file where the block
parameters for the 1st block are indicated:

And the figure below is another snapshot of the hex file where the block
parameters for the 2nd block are indicated:

When I program the flash memory, the DSP c28346 boots successfully. However when I monitor the RAM using CCS, I observe the following:

As you see, locations 0x30FFFF, 0x310000 and 0x310001 are loaded with the 2nd block parameters (length and starting address), which is not expected.

What am i doing wrong? Might that be bug related to hex2000, which occurs when the length of the first block is 0xFFFF ?

I have used the two versions of hex2000.exe, v6.2.5 and v5.2.12, the same error occured.

The .out and the generated file can be found in attached .zip file. 

Thanks and best regards.

 

test.zip
  • Ahmet Batur1 said:
    As you see, locations 0x30FFFF, 0x310000 and 0x310001 are loaded with the 2nd block parameters (length and starting address), which is not expected.

    See the section titled Building a Table for an On-Chip Boot Loader in the C28x assembly language tools manual.  Pay particular attention to the sub-sections titled Leaving Room for the Boot Table and Using the C28x Boot Loader.  You'll see that things like the address of a memory block are among the items programmed into target memory.

    Thanks and regards,

    -George

  • Hi George,


    I understand that the flash memory is programmed with the complete boot table including block addresses and block lengths. What i am monitoring is the DSP RAM content after flash programming and reboot.

    The 1st block has 0xFFFF data words starting from 0x300000 to 0x30FFFE. Until 0x30FFFE i see the data words as i expect. The 2nd block must start at address 0x30FFFF with the first data word 0x01A9, but the 2nd block is somehow treated as the extension of the 1st block.


    Thanks and regards,

    Ahmet

  • It turns out there is a problem with the boot loader in some C2000 devices.  It cannot handle a block size of exactly 0xFFFF words.  SDSCM00044254 has been filed in the SDOWP system to request that the hex utility to be changed so that 0xFFFE is the max block size.  Feel free to follow it with the SDOWP link below in my signature.

    Other forum threads that discuss this issue may be found here and here.

    Thanks and regards,

    -George