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.

RM46L430: How can I download and install nowECC?

Part Number: RM46L430
Other Parts Discussed in Thread: NOWECC, UNIFLASH, , TMS570LC4357, RM46L852

I need to the nowECC tool, but cannot find it. So far:

    • No download link in the nowECC page.
  • 'ti nowecc download' Internet search finds the user manual, and the nowECC home page but no download.

  • Hello Mark,

    Both code composer studio and Uniflash have the capability to generate ECC and program the ECC. I just noticed that the nowECC was removed from ti.com.

    Regards,

    QJ

  • Hello QJ,

    Thanks for the answer.

    I'm trying to flash with a third party tool and want to generate an ELF file that is compete (i.e. 1MB for my RM46L430), but when I add 'fill=0' to the memory definition then the armlnk executable just runs forever (it's been running for over 10 minutes and is still going). 'vfill=0' produces and ELF file, but only fills the gaps.

    The ARM Assembly Language Tool v16.9.0.LTS does not have a very good description of the linker definition options, so I'm not sure if 'fill=0' is correct.

    How can I produce an ELF file that contains initialised values for the entire 1MB of flash?

    Regards,

    Mark.

  • Mark Kingston said:
    How can I produce an ELF file that contains initialised values for the entire 1MB of flash?

    fill should do that. I just looked at an example for a TMS570LC4357 built using TI ARM v16.9.3.LTS which used fill = 0xffffffff in the linker command file for the flash and the cg_xml sectti program reported that the ELF file had filled the entire 4MB of flash:

    C:\Program Files (x86)\Texas Instruments\cg_xml\bin>..\utils\ofd6x.exe -x \Users\Mr_Halfword\workspace_v6_1_3\TMS570LC4357_flash_ecc_investigation\Debug\TMS570LC4357_flash_ecc_investigation.out | sectti.exe
    Reading from stdin ...
    
    ************************************************************
    REPORT FOR FILE: \Users\Mr_Halfword\workspace_v6_1_3\TMS570LC4357_flash_ecc_investigation\Debug\TMS570LC4357_flash_ecc_investigation
    .out
    ************************************************************
                    Name : Size (dec)  Size (hex)  Type   Load Addr   Run Addr
    -------------------- : ----------  ----------  ----   ----------  ----------
                .intvecs :         32  0x00000020  CODE   0x00000000  0x00000000
                   .text :      24544  0x00005fe0  CODE   0x00000020  0x00000020
                  .const :        904  0x00000388  DATA   0x00006000  0x00006000
                  .cinit :         56  0x00000038  DATA   0x00006388  0x00006388
                    .bss :         80  0x00000050  UDATA  0x08001500  0x08001500
                   .data :         24  0x00000018  UDATA  0x08001550  0x08001550
                $fill000 :    2071616  0x001f9c40  DATA   0x000063c0  0x000063c0
                $fill001 :    2097152  0x00200000  DATA   0x00200000  0x00200000
                   .ecc0 :          4  0x00000004  DATA   0xf0400000  0xf0400000
                   .ecc1 :     262140  0x0003fffc  DATA   0xf0400004  0xf0400004
                   .ecc2 :     262144  0x00040000  DATA   0xf0440000  0xf0440000
    
    ------------------------------------------------------------
    Totals by section type
    ------------------------------------------------------------
      Uninitialized Data :        104  0x00000068
        Initialized Data :    4694016  0x0047a000
                    Code :      24576  0x00006000

    Can you show how your linker command file is trying to fill the flash range?

    As for an example for a RM46L430, the closest I can find is example Memory Map for RM46L852 and TMS570LS1227. The RM46L852 has more flash than the RM46L430, so you would need to adjust the MEMORY regions accordingly.

    Also, are you using the ECC directive in the linker command file to get the linker to generate the flash ECC contents (as per the referenced example) or will the third party tool generate the flash ECC contents?

  • Thanks, in the end I used 'arm-none-eabi-objcopy' to create a filled binary of the entire size of the FLASH.

    I actually create two binaries, one full size (1MB) and a smaller one that is sector aligned to the size of the binary. I use the 1MB to prepare a new FLASH and then the smaller smaller one after for developement.