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.

TM4C129ENCPDT: LMFlash programmer and ROM Boot loader

Part Number: TM4C129ENCPDT

Hello,

I am trying to use LM Flash Programmer build 1588 to program a TM4C129 empty board using UART, but I get error all the time.
When I use Auto Buad Enable, it think for a few seconds and then say "failed to syncronized..."
When I Disable Auto Buad it think for a few seconds and then say "failed to establish connection..."

Interesting to know that when I elect "TM4C129X Development" and JTAG/ICDI interface, it manage to program ok - no problems.
BUT, I want to use the UART interface with the factory ROM-Boot loader (not mine!)

I know that the FLASH few first dwords must be clear to 0xFF in order for the BOOT ROM code to start working, and I do clear them using the JTAG
However the ROM refuse to connect over serial.

What do I do wrong? Where the hell is the instructions or documentation about the ROM-Version of boot-loader.

  • Hello Amir,
    What is the state of the BOOTCFG register? Is the EN bit in the BOOTCFG clear? Which GPIO pin did you specify to enable for serial bootloading?

    Please refer to the ROM section as well as the BOOTCFG at 0x400FE1D0 in the datasheet about ROM-based bootloading.
  • Hello Amir,
    One thing for you to also check is that in your COM port do you have the baudrate matching what you use in the LM Flash Programmer. I happened to have this mistake where the baudrate setting in the LM Flash Programmer is set to 115200 while the COM port baudrate on the PC side is at 9600.
  • Hi again,

    Thanks for reply.
    There is NO connection to BOOTCFG, as the manual say that when the FLASH 2 first words are cleared (0xFF) the ROM loader will automaticly start.

    In the meantime, I've manage to program it.
    It seems that only after reseting the board it waits for incoing over serial, and uncheck of auto-baud do the work.
    It not very clear in the manuals, but it works ... :-)

    Still 2 questions:

    1. How can I instruct TI-BOOT-ROM to load the given BIN file to SRAM instead of burning into FLASH?

    2. If not, Do you have sample IAR / TM4C129 environment example code that load itself to SRAM from FLASH?

  • Amir-Yungman said:
    1. How can I instruct TI-BOOT-ROM to load the given BIN file to SRAM instead of burning into FLASH?

    I would be really surprised if the bootloader supported such a futile operation.

    Amir-Yungman said:
    2. If not, Do you have sample IAR / TM4C129 environment example code that load itself to SRAM from FLASH?

    With IAR-WB, use '__ramfunc'.

  • f.m. wrote:
    "I would be really surprised if the bootloader supported such a futile operation."

    If you surprised, that might be because you never develop actual product that need to be manufactured!
    Ever hear about ATP stage? Ever hear about "do not burn the FLASH" until you verify H/W is completly ok?

    f.m. wrote:
    With IAR-WB, use '__ramfunc'.

    That I know, that will not give the result I'm asking.
  • If you, "do not burn the Flash" how have you verified that the MCU's flash (which is H/W) performs properly & is "ok?"

    Must not the code change from your proposed, "Storage entirely w/in Sram" (which assumes that's even possible - as Flash size most always exceeds Sram size.)    Thus - at some (later) point - different code must be created & test/verified running from Flash - is that not true?     Such can only delay & complicate the release of product...

    Having been in the biz beyond 20 years - I cannot recall such, "do not burn advice!" (and firm/I produced sufficient product numbers to "go public...")    You are correct for past/retired "OTP" devices - yet modern MCUs accept hundreds of program cycles - MANY here would LOVE to discover your reference to/for such advice...    (which likely is "out of context" or very mistaken!)

    Poster f.m. is a highly skilled, caring contributor - both this forum & others - not every post or submitted approach is to be applauded...

  • guys. I already manage to find odd ways to do simple things but your long long answers suggest I didn't explain myself right.
    let me try again.

    I was looking fo a very simple and very (very) usefull option:
    On a BLANK FLASH board, I would like the TI-ROM to load a code directly to SRAM and not to FLASH. That's all.

    What so complicate about that? what so futile about that?
    You may simply answer yes we can or no we cannot instead of trying to "explain" that my request is silly.
    if your super-duper friend Poster f.m would like, I will be more than happy to light out his eys what so important in that option during ATP stages.

    till then thanks.
  • This is what I tried.

    I modified the .cmd file like below. I use the CCS to load a blinky program and it is working. Only the vector table resides in the flash and the rest of code is in SRAM. However, I have to say that I cannot get the same to work with the LM Flash Programmer.

    SECTIONS
    {
    .intvecs: > APP_BASE

    .text : > SRAM
    .const : > SRAM
    .cinit : > SRAM
    .pinit : > SRAM
    .init_array : > SRAM

    .vtable : > RAM_BASE
    .data : > SRAM
    .bss : > SRAM
    .sysmem : > SRAM
    .stack : > SRAM


    }