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/TM4C1294NCPDT: programming custom board for first time(tm4c1294ncpdt)

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: MAX3232

Tool/software: TI-RTOS

Respected sir,

                  Please refer to the previous related thread by same thread title.

                  I tried boot loading using third method but it did not work. In debugger control goes up to ROM_UpdateUART() but can not track after that. I think i am not able to access ROM functions. I have attached code, LM FLASH programmer configuration and error snap in zip file.

8130.bootloader.zip

Regards,

Digvijay.

  • Hi,
    Is there any reason why you are creating a new thread here and not continue your discussion in the original thread? What is the third method? I wasn't involved with your original thread. I'm sure you might have tried some suggestions with some level of success. Please clearly state your question here. I cannot go through your original thread that has 50 responses in it.

  • Respected sir,

           I am trying to boot load rtos based application.  I am successful with flash based boot loader for normal embedded application. Now I am trying to use rom based boot loader with rtos application.  But not able to boot load.  I am trying to call ROM_updateUART function but it is not working.  I created this thread because I mistakenly clicked on resolved issue button and also I wanted to post thread in rtos forum. I have attached code and necessary snaps to post.

    Also I am not able to program vergin controller using Uart and rom based boot loader. I don't want to use JTAG at all.

    Regards,

    Digvijay

  • Dear digvijay,

    Was not previously asked in other thread how you were assuring UART0 was indeed connected and functional as a virtual COM in what ever OS you are using.

    Do you not simply assume all are aware what you have done in hind sight uses a functional UART0? Yet you expect all to know your configuration is indeed functional when you have not provided any evidence of any such results or even commented to believe that has been verified.

    That behavior seems a bit smug to me in that aspect alone!
  • Respected sir,

            I have mentioned again and again that I am able to program the controller using flash based boot loader and UART0 module. So definitely UART0 module is working fine. I have also confirmed by doing transmit receive operation using Terminal.

                    The problem is with ROM based boot loader. I think I am missing something while calling rom based boot loader on RTOS application.

    BP101 said:
    configuration

    What do you mean by configuration??

    I have already mentioned that I am using circuit which is used for normal UART communication with MAX3232. I have attached snap of  LM FLASH PROGRAMMER. l have attached my RTOS based code.

    So what else is remaining?? Please tell me , I ll share that information.

    Regards,

    Digvijay

  • Hi,
    Perhaps I'm not clear with the history of your problem since I didn't go through your different thread. Are you having problem to use the ROM base bootloader? Have you tried the ROM based bootloader with any TivaWare application? I have just tried doing so using the ROM based bootloader to load the TI TI-RTOS gpiointerrupt example project and it works for me. Please make sure before you run the ROM based bootloader the flash is fully erased. I test it on a Windows 7 machine.

  • Respected sir,
    I am also working on Windows 7. I have attached code to the post. I am not erasing the whole flash instead I am trying to call ROM_UpdateUART() function by adding some intelligence (here gpio interrupt) to the application. But it's not working .
    Can you please go through my attached code. I know definitely I am missing some steps. But I am not able to find it. Please can you share the steps like what is the configuration of LM flash programmer etc. That would be helpful.

    Regards,
    Digvijay
  • And one more question how to erase entire flash using LM flash programmer and UART module. I don't want to use JTAG.

    Regards,
    Digvijay
  • digvijay khambe said:
    I am trying to call ROM_UpdateUART() function by adding some intelligence (here gpio interrupt) to the application. But it's not working .

      Please answer me some questions:

      1. Do you have a flash based UART bootloader? The bootloader code will reside at 0x0?

      2. If you don't use the flash based bootloader then your application (your gpio interrupt project) will start at 0x0, correct?

      3. If you use the ROM based bootloader, then do you have the flash erased? You can use the CCS or in the LM flash programmer to erase. In LM flash programmer go to the Flash Utilities tab and click the "Erase" button for the Entire Flash.

      4. If the flash is fully erased then if you go to the Program tab and click the "Program button" did it load the program image (your gpio interrupt project) to the MCU? 

      5. When you call ROM_UpdateUART do you see UART activities on the RX/TX pin to the LM flash programmer. 

     I will suggest you take a look at the boot_demo_uart example in <TivaWare_Installation>/examples/boards/dk_tm4c129x/boot_demo_uart. This example calls the ROM_UpdateUART to update the firmware. 

  • Also, see the example I provided on your other thread:
    e2e.ti.com/.../685050
  • digvijay khambe said:
    I have already mentioned that I am using circuit which is used for normal UART communication with MAX3232. I have attached snap of  LM FLASH PROGRAMMER. l have attached my RTOS based code.

    You never confirmed my earlier question other post if UART0 loop back echo was successful or not. Your Copy/Pasted image opening post shows LM flash had failed to program flash 0x0000.4000. If LM-Flash was working in opening post why did serial boot loader not work and you then shifted over to use ROMBL. Perhaps you were unaware there were two different boot loaders, don't feel bad everyone falls the first time. 

    Perhaps one should not zip pasted images as attachment and expect helpers are going to open for an update of what you are suggesting in text. Take the time to properly insert copy/paste image into the post and it will be clear to all what is occurring. Especially since you ended up jumping from Serial boot loader into ROM boot loader in the same posted topic.

    This is the first to be made aware LM-Flash could indeed write to Flash via UART0 custom PCB. It would then seem Bob's suggestion option 3 the ROM-BL skips checking BOOTCFG address 0x4 being 0xFFFF.FFFF may not have been entirely true in all cases? At least Charles is having successful updates when flash memory is 0x0 at address 0x4. It was always my understanding from datasheet text the Flash had to be blank order to clear the EN bit in BOOTCFG register. Have to wonder if there are different embedded versions of ROM boot loader update firmware or how the BOOTCFG clears EN bit after POR to indicate it should be invoked or not in option 3. It is possible to clear RO EN bit by unlocking BOOTCFG allowing register writes to EN bit field. 

  • Respected sir,

                        Finally  solved the problem. Now i am able to boot load using ROM_updateUART function  and  also when flash is empty that is first and third method. In RTOS application  configuring  UART using

    UARTConfigSetExpClk() function was creating problem. When i configured UART by creating TASK and using UART_Params_init() , UART_open() function it started working.

                       Anyway thanks for all of your help. It was not possible without it. It is always appreciated. I am attaching the code if anybody needs it.

    gpiointerrupt_EK_TM4C1294XL_TI_TivaTM4C1294NCPDT.zip

    Regards,

    Digvijay