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.

Compiler/TMS320F28335: Boot ROM not jumping to custom bootloader location

Part Number: TMS320F28335
Other Parts Discussed in Thread: UNIFLASH

Tool/software: TI C/C++ Compiler

Designed a custom bootloader for F28335 board, I am storing my custom bootloader in Section A (0X338000) and application code in Sector B-H.

I am toggling a GPIO in Custom bootloader code, to notify me when the control reaches my Custom bootloader.

But I am failing to jump to custom bootloader.  Attached is my boot28.asm file.

Any idea what could have gone wrong?

Appreciate any quick replies,

Thanks in advance

boot28.asm

  • Chandana,

    1.  Did you check whether your custom bootloader is executing fine or not?

        Maybe you can toggle a GPIO in your custom loader entry and before exit - to make sure it is executing as intended. 

    2. Did you verify the jump of control from boot loader to application with debugger connected?  

    3. Please check if there is any reset happening (check XRSn) that is preventing the boot/application execution?

    4. Hope you confirmed that the boot mode GPIOs are properly configured for it to boot to flash where your boot loader exists.

    Note: I did not review your code.

    Thanks and regards,
    Vamsi

  • Vamsi Gudivada said:

    Chandana,

    1.  Did you check whether your custom bootloader is executing fine or not?

        Maybe you can toggle a GPIO in your custom loader entry and before exit - to make sure it is executing as intended. 

    Yes, I am toggling a LED in custom bootloader code

    2. Did you verify the jump of control from boot loader to application with debugger connected?  

    Yes, I did in debug mode, custom bootloader jumps into the application code properly,

    3. Please check if there is any reset happening (check XRSn) that is preventing the boot/application execution?

    Do I need to monitor, XRSn pin here ?

    4. Hope you confirmed that the boot mode GPIOs are properly configured for it to boot to flash where your boot loader exists.

    Yes, I verified the memory map using Uniflash, the bootloader and application code are properly located in memory.

    and I am booting from Flash, so GPIO 84 to 87 are reserved..

    Note: I did not review your code.

    Thanks and regards,
    Vamsi

  • Chandana,

    Thank you for the info.

    #3. Yes, you can monitor XRSn pin.

    #4. Do you have external pull-ups on the boot mode pins as per Table 2-3. Boot Mode Selection (TRM) flash boot?

    Thanks and regards,

    Vamsi

  • Hi Vamsi,

    thank you for the quick response.

    Below is my response

    Vamsi Gudivada said:

    Chandana,

    Thank you for the info.

    #3. Yes, you can monitor XRSn pin.

    I did probe this pin, it was high.

    #4. Do you have external pull-ups on the boot mode pins as per Table 2-3. Boot Mode Selection (TRM) flash boot?

    the pins are not externally pulled up, they are routed to one more IC(CPLD), but we are not uisng them, in the current code, we have kept them as reserved. I probed the GPIOs as well, all of them are high, (Jump to Flash ).

    Thanks and regards,

    Vamsi

    adding to above comments when I checked memory location 0x33 FFF6 [ this is where the bootloader ends up when it boots to flash according to technical ref manual] it read as below.

    the value in the location 0x33 FFF6 should be my custom bootloader location(0x338000) isn't it?

  • Chandana,

    Thank you for the update.

    At that address, there should be a branch instruction to your boot loader.

    Please take a look at this post: https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/875932

    Thanks and regards,

    Vamsi