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.

ROMS directive ignored using CCS v5

Other Parts Discussed in Thread: TMS570LS20206

Hi everybody,

I amusing CCS v5 with TMS570LS20206 microcontroller and I need to create a raw binary executable file to be loaded in FLASH bank 0 sector 0 (32KB) of my microcontroller memory.

I took a look at the TI command file tiobj2bin.bat and I am trying to write my own version to be called as post-build step.

I am using the following directives:

%hexcmd% -q -b -image -o %binfile% %hextmp% %outfile% -fill 0xFFFFFFFF -map EACU_MON_BOOT_hex.map 

ROMS
{
	MON_BOOT:	origin=0x00000000, lenght=0x00008000,
}


but I see that the ROMS directive is ignored when creating the .bin file, which is exactly the size of the used portion of FLASH memory (9KB) and not 32KB.

Any suggestion is welcome...

Thanks a lot,

Elena

  • Hi Elena,

    Just checking back through forum posts without replies and saw this.  Did you figure out how to do what you wanted?

  • Hi Anthony,

    in the end I found out that it was enough to set the fill option in the linker command file:

    FLASH0_SECT0 (RX)     : origin=0x00000020 length=0x00007FD0     fill = 0xFFFFFFFF /* 32KB */

    and the following command with fill option in the batch file:

    %hexcmd% -q -b -image -o %binfile% %hextmp% %outfile% -fill 0xFFFFFFFF -map EACU_MON_BOOT_hex.map

    and removing the ROMS directive in the batch file:

    ROMS
    {
        MON_BOOT:    origin = 0x00000020, lenght = 0x00007FD0
    }

    In this way I got a binary image of the desired size.

    I do not still know why the ROMS directive was ignored. It should have been considered according to the CCS help guide... When compiling with the ROMS directive, I got the following message in the CCS console:

    <Linking>
    'Finished building target: EACU_MON_BOOT_SW.out'
    ' '
    C:/Programmi/ti/ccsv5/utils/bin/gmake --no-print-directory post-build
    'executable binary file generation'
    "C:\Documents and Settings\ebolzonella.DESIO-BLU\workspace_v5_2\EACU_MON_BOOT_SW/Debug/EACU_MON_BOOT_tiobj2bin.bat" "EACU_MON_BOOT_SW.out" "EACU_MON_BOOT_SW.bin" "C:\Documents and Settings\ebolzonella.DESIO-BLU\workspace_v5_2\EACU_MON_BOOT_SW/Debug/ofd470" "C:\Documents and Settings\ebolzonella.DESIO-BLU\workspace_v5_2\EACU_MON_BOOT_SW/Debug/hex470" "C:\Documents and Settings\ebolzonella.DESIO-BLU\workspace_v5_2\EACU_MON_BOOT_SW/Debug/mkhex4bin"
    "ROMS" non Š riconosciuto come comando interno o esterno,
     un programma eseguibile o un file batch.
    "{" non Š riconosciuto come comando interno o esterno,
     un programma eseguibile o un file batch.
    "MON_BOOT:" non Š riconosciuto come comando interno o esterno,
     un programma eseguibile o un file batch.
    "}" non Š riconosciuto come comando interno o esterno,
     un programma eseguibile o un file batch.
    ' '
    
    **** Build Finished ****

    Anyway, I haven't investigasted the problem anymore since I found my workaround.

    Thanks,

    Bye,

    Elena

  • Hi Elena,

    Pretty cool - I didn't know that the linker output italian ... 

    I had to run through google translate but it looks like there is a syntax error.

    It might be length is spelled wrong? 

        MON_BOOT:    origin = 0x00000020, lenght = 0x00007FD0

    Does just changing it to length fix the problem?

  • Hi Anthony,

    sorry, I didn't notice that the language was Italian... I am continuously switching betwen Italian and English so I don't mind which language I am reading...

    As you said, the meaning of the Italian sentence is: " "ROMS" is not known as an internal or external command, an executable program or a batch file."

    I tried to rebuild without the typo (lenght  --> length) but the error message still remains. Anyway, the .bin file length is 32KB as desired.

    Elena