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.

CCS/TM4C123BE6PM: TM4C123BE6PM, Using serial I2C ROM_BOOTLOADER fail to write at offset 0x0000_0000 and offset 0x0000_0004.

Part Number: TM4C123BE6PM


Tool/software: Code Composer Studio

Hi,

I am using TM4C123BE6PM micro-controller as target board, using CCS v6, and working on serial(I2C) Boot-loader application. I tried to load my application image using ROM_BOOTLOADER in a blank microcontroller at 0x0000_0000 offset. 

When I read-back my image using LM flash programmer utility, 0x0000_0000 and 0x0000_0004 addresses are not written while every other offset got written with expected values.

Is there some extra protection to these addresses which I need to take care while sending my bin file?

I tried to write at some other offset(say, 0x0000_2000) the same bin file, and it got written perfectly.

Thanks in advance,

Abhishek

  • Hi Abhishek,

     I'm not sure why the first two locations are not programmed as this is the first time a problem as such is reported.

    • Is the flash first erased before you start the ROM bootloading?
    • Is this repeatable every time?
    • Can you download a different program image, perhaps a simple TivaWare blinky example, will it make a difference?
    • Do you have another device that you can try and see the same thing?
    • Which download utility on the PC side did you use to download the program image?
    • Can you use the same PC utility to download the same program image using UART interface? Do you see the same problem?

  • HI Charles,

    Thanks for quick response, 

    1. Yes Flash is been erased before programming.

    2. Yes it is repeatable every time.

    3. I tried with multiple images but same result with all.

    4. I didn't tried with another device, will try that and update if got some luck.

    5. It is custom utility I have developed, My source of I2C( I2C master) is FPGA.

    6. I don't have uart connection in same board, but will try to do if possible and let you know.

    In TI TM4C serial boot loader demo utility, is there any extra steps, like unlocking of flash etc. is happening??

    Thanks,

    Abhishek

  • Hi Abhishek,
    No, not that I'm aware of any extra steps needed to unlock the flash. You are using the ROM Bootloader so everything is run from the ROM. There is nothing you can change/modify in the ROM bootloader.

    Will you be able to confirm that it is not something on the FPGA side that may have caused the problem?

    Have you had a chance to try the flash based I2C bootloader?
  • Hi Charles,

    I tried with some more fresh micro-controllers, facing same issue.

    On FPGA side, I am not able to doubt as I can see it is able to write at addresses other than 0x0000_0000( I tried to write at 0x3000). Still I will check once again to be sure.

    Didn't tried flash based bootloader yet, will try and update soon.

    Thanks and Regards,

    Abhishek

  • Hi Charles,

    With Flash boot-loader, it is working.

    There is nothing you can change/modify in the ROM bootloader.

    No, I don't want to change in ROM bootloader, I am asking, what is meant by Privileged Software and Is Privileged Software only allowed to write 0x0000_0000?

    Thanks in advance,

    Abhishek

  • Hi Abhishek,
    I don't know why the ROM based I2C bootloader will behave differently than the flash based in your setup. Is it possible for you to capture and compare the I2C bus transactions between the flash-based and the ROM-based particularly when programming the locations 0x0 and 0x4?
  • Hi Abhishek,
    I have not heard back from you. I'm assuming you were able to resolve your issue. If not, just post a reply below or create a new thread. I will close this thread for now.