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.

RTOS/TM4C129ENCPDT: Regarding bootloader

Part Number: TM4C129ENCPDT
Other Parts Discussed in Thread: LMFLASHPROGRAMMER, UNIFLASH, EK-TM4C1294XL

Tool/software: TI-RTOS

Hi,

We have built our USR-IoT using "TM4C129ENCPDTT3", got the fabricated board last week and we were in the process of getting this board up. Since this IC comes with initial ROM bootloader, we were expecting some message on the screen by connecting UART0 to minicom/hyperterminal and found none.

Before we start debugging the board, we had couple of queries, 

1. Will there be any boot message printed on the serial terminal?

2. If yes, then can you please send me any snapshot for the reference?

Referred links,

e2e.ti.com/.../2127932

  • Hi Nandish,

      Yes, the UART0 will be used by the ROM based bootloader. But there is no boot message printed on the serial terminal. 

  • Hi Charles,

    Thanks for the clarification. 

    Since there are no messages on UART0, how to evaluate if IC is booting properly and do initial programming or verifying the board?

    Using LMFlashProgrammer?

  • Nandish,

    You need to write an external application on your PC (or even using another ARM device, for example, based on a Launchpad), which will manage sending the firmware to your bare new IC.

    If you read chapter 3.3 of the bootloader manual, you will see that several commands can be sent, and the target will reply with documented answers.

    www.ti.com/.../spmu301d.pdf

    Regards

    Bruno

  • Hi Nandish,

     Did Bruno answer your question? The LM programmer can be used to send the firmware to your MCU. You will configure the interface to Serial (UART) in the Configuration tab. Specify your COM port and baudrate. In the Program tab, specify the binary file you want to transfer to the MCU and then hit Program button.

  • Charles,
    While we are on the theme, I noted that the later Uniflash does not have that serial port option. The even newer SmartRF Uniflash2 does, but it does not seem to accept TM4C family members.
    Has there been a "downgrade" from LMFlash on that aspect?
    And one more point I'm curious about: once you program a virgin MCU via serial/bootloader, assuming that it will then mark those control bytes to indicate it now has firmware, is it correct to say that firmware uploading via serial/bootloader is no longer an option for that one chip?
    Regards
    Bruno
  • Hi Bruno,
    I never remember the Uniflash is ever capable to download code via serial port. So I don't think it is a downgrade. For another MCU I worked with a separate PC based program was written to communicate with the bootloader. LM program kind of bundle everything together as a great convenience to the users.

    For your second question, if you have flash based UART bootloader then you can still download/upload via the serial port. But for ROM based bootloader it will not work since the 0x0 and 0x4 are already programmed with non-F's values.
  • Hi, Charles and Bruno,

    Thanks for the information. 

    We shall try programming simple LED blink program using LMFlashprogrammer as explained by Charles. 

    We have the LED's connected to PH1 and PM1, any sample binaries which can be used directly to test would be helpful.

  • Hi Nandish,
    You can find simple examples in Tivaware such as hello or project0, both of which will toggle LED but you will need to make slight modification to configure PH1/PM1 instead of different pins used in the examples. Check under <TivaWare_Installation>/examples/boards/ek-tm4c1294xl/
  • Hi, Charles,

    Thanks for the support. We were successfully able to flash sample LED blinking application and worked fine.

    Wanted to know if we can erase Flash using UART port?

    Do we have to erase flash every time we reprogram?

  • Hi,
    The ROM based bootloader will check if the address 0x4 is all F's or the EN bit of the BOOTCFG is zero. If either is true then the bootloader will interact with the LM programmer to reload a new application image. If the EN bit is one and the flash location at 0x4 is already non-F's then the bootloader will not reload your application image. You will need to erase the flash first. Please refer to the BOOTCFG register in the datasheet for details.