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.

TMS570LS0432 - issue in .bin generation with ECC data

Other Parts Discussed in Thread: NOWECC, TMS570LS0432

Hi All,

I have an issue trying to generate a (.bin) file, starting from a file (.out) containing the ECC data

generated with nowECC tool.

Without ECC data I have no problem.

I am using the TMS570LS0432 processor and here below are reported the details

of my test command launched:

 

****  To generate ECC *********

Command:

 nowecc -a PRJ_TMS570LS0432.out -o PRJ_TMS570LS0432_ECC.out -F021 16M_ADD -r4

 Response:

 This is nowECC Version 2.21

Mapping: F021-16MB

ECC calculation from 0x00020000 to 0x00034D8F

*** Appending ECC section to file -> PRJ_TMS570LS0432_ECC.out

No Errors

 **** To generate   .bin using a batch file  *********

Command:

 tiobj2bin PRJ_TMS570LS0432_ECC.out PRJ_TMS570LS0432.bin armofd armhex mkhex4bin

 .... at this point the batch file is locked. Pressing a ^C to abort, the following message has been reported:

 INTERNAL ERROR: armhex experienced a fatal internal fault

This is a serious problem.  Please contact Customer

Support with this message and a copy of the input file

and help us to continue to make the tools more robust.

Please can someone help me about this issue or give me any suggestion?

 Thanks in advance

Claudio

  • I know very little about nowECC, but I do know tiobj2bin.  Please attach PRJ_TMS570LS0432_ECC.out to your next post.  I'll use it to recreate the error.

    Thanks and regards,

    -George

  • Hi George,

    sorry for delay in my answer but I was out of office in the past days.

    In attach you can find 2 zip files containing respectively my Ecc generation environment with PRJ_TMS570LS0432_ECC.out file and my CCS project.

    Thanks a lot in advance for your support.

    regards6116.ECC_Generation_Data.7z0513.PRJ_TMS570LS0432.7z

    Claudio

  • I understand what is going on.  I cannot tell you how to fix it.

    Use armofd to get some information about the sections in the file ...

    % armofd --obj_display=none,sections PRJ_TMS570LS0432_ECC.out | find " Y "
         1 .intvecs                  0x00020000 0x00020000    0x20     4   Y
         2 .text                     0x00020020 0x00020020  0x41d8     4   Y
         3 .const                    0x000241f8 0x000241f8   0x624     4   Y
         4 .cinit                    0x00024820 0x00024820    0x28     8   Y
         7 .data                     0x08001500 0x08001500    0x19     4   Y
        21 .ecc0                     0xf0404000 0xf0404000   0x909     0   Y

    That --obj_display option disables the display of everything except sections.  Piping it through that find command limits the output to sections which have Y in the last column.  Those sections contain initialized code or data.  

    The important thing to notice is the memory range of these sections.  It goes from 0x20000 to 0xf0404909.  This binary file format has no mechanism for representing holes in memory.  All of the memory holes are filled with 0.  In this case, there are two large holes to consider.  One is between .cinit and .data.  The other is between .data and .ecc0.  Total binary file size comes to 0xf03e4909 bytes.  That is about 3.75 gigabytes of mostly 0.  I didn't bother to let it finish either.  But, if you waited it out, I think it would eventually finish.

    Clearly, this is impractical.  But I don't know enough about the intended use of nowECC to tell you what to do next.  I'll try to get further attention to this thread.

    Thanks and regards,

    -George

  • Hi George,


    thanks for your time and explanation of the problem.


    I have already seen that sooner or later a .bin file is generated after the command launch but with a size

    too  big and in any case it is not valid for the download on target (the download via boot loader doesn't start).


    I'll appreciate your effort for the further investigation because I need to use the ECC data inside my application code .


    Let me know if you have any news or if you see a possible workaround to bypass the problem rather than the final solution.

    Thanks in advance

    Claudio

  • Hi George,

    did you have a bit of time to do further investigation on how I can generate a .bin file containing my ECC data ?

    There is a workaround?

    Thanks in advance.

    Regards Claudio

  • I lack the expertise needed in this case.  I asked others for help earlier, and I'll do so again.

    Thanks and regards,

    -George

  • Hi George,

    ok I'll wait any news with confident.

    Thanks and regards.

    Claudio

  • Hi all,
    Any news about this post?
    I need to create the output file in .bin format with ECC.

    I'm using Code Composer Studio 5.5.0 with TMS570 MCU.
    I have used the following post-build steps to create the output file with ECC and the bin file:

    ${NOWECC}\nowECC.exe -i "${ProjName}.out" -F021 16M_ADD -R4 -a "${ProjName}.out" & "${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd470" "${CG_TOOL_ROOT}/bin/hex470" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

    The build output is:

    C:/ti/Hercules/nowECC/2.21.00\nowECC.exe -i "APPLICATION_SB_SIM.out" -F021 16M_ADD -R4 -a "APPLICATION_SB_SIM.out" & "C:/ti550/ccsv5/utils/tiobj2bin/tiobj2bin.bat" "APPLICATION_SB_SIM.out" "APPLICATION_SB_SIM.bin" "C:/ti550/ccsv5/tools/compiler/arm_5.1.2/bin/ofd470" "C:/ti550/ccsv5/tools/compiler/arm_5.1.2/bin/hex470" "C:/ti550/ccsv5/utils/tiobj2bin/mkhex4bin"
    This is nowECC Version 2.21

    Mapping: F021-16MB


    ECC calculation from 0x00020000 to 0x0002005F

    ECC calculation from 0x00020080 to 0x00023807

    ECC calculation from 0x00024000 to 0x0003A2DF

    *** Appending ECC section to file -> APPLICATION_SB_SIM.out

    No Errors

    .................................. at this point, I have stopped the compilation

    INTERNAL ERROR: C:\ti550\ccsv5\tools\compiler\arm_5.1.2\bin\armhex experienced a fatal internal fault

    This is a serious problem. Please contact Customer
    Support with this message and a copy of the input file
    and help us to continue to make the tools more robust.

    gmake: *** Deleting file `APPLICATION_SB_SIM.out'
    gmake: unlink: APPLICATION_SB_SIM.out: Permission denied
    Terminare il processo batch (S/N)?
    gmake: *** [APPLICATION_SB_SIM.out] Error 130

    **** Build of configuration Debug for project APPLICATION_SB_SIM ****

    !CommandLauncher.error.commandCanceled!
    Error: Program "C:/ti550/ccsv5/utils/bin/gmake" is not found in PATH

    PATH=[C:/ti550/ccsv5/eclipse/jre/bin/client;C:/ti550/ccsv5/eclipse/jre/bin;C:/ti550/ccsv5/eclipse/jre/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\CollabNet\Subversion Client;C:\Program Files (x86)\Embarcadero\Studio\14.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl;C:\Program Files (x86)\Embarcadero\Studio\14.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl\Win64;C:\Program Files (x86)\Embarcadero\Studio\14.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl;C:\SynaptiCAD\bin\win32;C:/Program Files (x86)/Texas Instruments/v423/xdctools_3_20_08_88;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\doxygen\bin;C:\PROGRA~2\ATT\Graphviz\bin;c:\python23;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\IVI Foundation\VISA\Win64\Bin\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin\;c:\altera\90sp2\quartus\bin;C:\SynaptiCAD\bin;C:\VISA\WinNTBin;C:\Program Files (x86)\Flash Magic;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:/Program Files (x86)/Texas Instruments/v423/xdctools_3_20_08_88;C:\ti550\ccsv5\eclipse;]

    **** Build Finished ****

    Please can someone help me about this issue or give me any suggestion?

    Thanks in advance

    Enrico
  • I do not understand why you are creating a .bin file in the first place.  What is the purpose of this file?  How is it used?  What documentation are you using which tells you to create this file?  Where did that documentation come from?

    Thanks and regards,

    -George

  • Hi,
    I have a bootloder and with the hyperterminal windows send the .bin file (Y MODEM protocol) to MCU for upgrade the firmware.
    The hyperterminal use the .bin file.
    The post-build step documentation is in this forum.

    Thanks
  • enrico terraneo said:
    I have a bootloder and with the hyperterminal windows send the .bin file (Y MODEM protocol) to MCU for upgrade the firmware.
    The hyperterminal use the .bin file.

    What documentation says to use that method?  Where does this documentation come from?  I am asking because it does not make sense to use a .bin file in your case.  The .bin file is so huge it is impractical to create and manage.  Some other method must be found.  And to find that other method we have to make contact with the team that documented this use of a .bin file.

    Thanks and regards,

    -George

  • Hi George,
    I needed to generate a .bin file for use it in the bootloader project. For creating the UART bootloader project, I used the following documentation: UART Bootloader for Hercules TMS570LS04x MCU (see www.ti.com/.../spna191.pdf link). This documentation come from Application Notes of Texas Instruments.
    I found the post-build script to create the .bin file in the posts of this forum. And It works.

    Now, I need to add the ECC of the flash memory. So I thought to add ECC with NOWECC software in the post-build step and to add the .bin file generation.
    Is there other method to do this?

    Thanks and regaeds,

    Enrico
  • enrico terraneo said:
    Now, I need to add the ECC of the flash memory. So I thought to add ECC with NOWECC software in the post-build step and to add the .bin file generation.
    Is there other method to do this?

    I haven't fully investigated, but the bl_flash.c source file in the http://www.ti.com/lit/zip/spna191 referenced by SPNA191 passes the Fapi_AutoEccGeneration option to the Fapi_issueProgrammingCommand function which I think means the bootloader will automatically generate the ECC when programming a .bin file (where there is no ECC data in the bin file).

    Suggest you ask on the https://e2e.ti.com/support/microcontrollers/hercules forum to get a definitive answer from the device experts.

    [I haven't used the UART bootloader described in SPNA191 myself]