TMS320F28379S: Controller not branching to application after SCI bootloader process

Part Number: TMS320F28379S

Tool/software:

Hello,

I'm facing an issue where the controller is not branching to the application code after completing the SCI bootloader process.

Here’s a summary of what I have done so far (full details are shared in another post: <Link>

  • The Flash boot (0x0B) entry point address is set to 0x80000.

  • Application code is placed at 0x80000 as required.

  • Modified the linker command file to store the application in Flash A instead of Flash B.

  • Updated the codestart (BEGIN) address to 0x80000.

  • Verified the generated .map file — it looks correct.

  • Used the Serial Flash Programmer:

    • Performed "1-DFU" to flash the application.

    • Then "6-Run" with the application's entry point (0x80000).

  • Verified flash content using the C2000 Flash Utility's "Verify Only" — verification passed.

  • Specified address 0x80000 while doing "6-Run" — still not working.

  • Tried branching to the application's codestart manually — still not working.

Additional Information:

  • The application boots correctly when booting directly from Flash.

  • The issue happens only when trying to jump to the application after the SCI bootloader process.

Could you please help me understand what could be causing this issue?
Is there anything else I should check or modify to successfully branch to the application?

Thanks in advance!

  • Rajamurugan,

    Can you try using the attached kernel and application files? I am able to successfully load and branch to the application using these. Please download them instead of copy/pasting, as there are some special characters that tend to get lost.

    Best,

    Alex

    0513.led_ex1_blinky.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ·
    AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 12 00
    08 00 88 09 00 00 33 00 01 00 00 00 02 00 54 00 66 09 08 00 10 00 F0 FF
    03 07 08 00 6F 09 08 00 88 09 08 00 00 A8 00 00
    02 00 08 00 00 00 48 00 67 09
    3E 02 09 00 00 00 2F 00 68 00 6F 00 6D 00 65 00 2F 00 75 00 62 00 6E 00
    75 00 73 00 65 00 72 00 2F 00 74 00 69 00 2F 00 72 00 65 00 70 00 6F 00
    73 00 2F 00 63 00 32 00 30 00 30 00 30 00 77 00 61 00 72 00 65 00 2F 00
    72 00 65 00 70 00 6F 00 73 00 2F 00 66 00 32 00 38 00 33 00 37 00 78 00
    73 00 2F 00 72 00 65 00 6C 00 65 00 61 00 73 00 65 00 5F 00 70 00 6B 00
    67 00 2F 00 64 00 72 00 69 00 76 00 65 00 72 00 6C 00 69 00 62 00 2F 00
    66 00 32 00 38 00 33 00 37 00 78 00 73 00 2F 00 64 00 72 00 69 00 76 00
    65 00 72 00 6C 00 69 00 62 00 2F 00 63 00 70 00 75 00 74 00 69 00 6D 00
    65 00 72 00 2E 00 68 00 00 00 2F 00 68 00 6F 00 6D 00 65 00 2F 00 75 00
    62 00 6E 00 75 00 73 00 65 00 72 00 2F 00 74 00 69 00 2F 00 72 00 65 00
    70 00 6F 00 73 00 2F 00 63 00 32 00 30 00 30 00 30 00 77 00 61 00 72 00
    65 00 2F 00 72 00 65 00 70 00 6F 00 73 00 2F 00 66 00 32 00 38 00 33 00
    37 00 78 00 73 00 2F 00 72 00 65 00 6C 00 65 00 61 00 73 00 65 00 5F 00
    70 00 6B 00 67 00 2F 00 64 00 72 00 69 00 76 00 65 00 72 00 6C 00 69 00
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    0513.kernel.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ·
    AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00
    00 00 00 00 41 00 6C 04
    29 00 00 00 84 C0 E4 FF 54 DB 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 7C DB
    00 00 00 00 FF FF 7D DB 00 00 00 00 00 00 00 00
    54 00 00 00 00 DB 00 00 08 00 00 20 08 00 00 40 08 00 00 60 08 00 00 80
    08 00 00 00 09 00 00 80 09 00 00 00 0A 00 00 80 0A 00 00 00 0B 00 00 80
    0B 00 00 A0 0B 00 00 C0 0B 00 00 E0 0B 00 00 00 0C 00 00 20 0C 00 00 40
    0C 00 00 60 0C 00 00 80 0C 00 00 00 0D 00 00 80 0D 00 00 00 0E 00 00 80
    0E 00 00 00 0F 00 00 80 0F 00 00 A0 0F 00 00 C0 0F 00 00 E0 0F 00 00 10
    00 10 00 10 00 10 00 40 00 40 00 40 00 40 00 40 00 40 00 10 00 10 00 10
    00 10 00 10 00 10 00 10 00 10 00 40 00 40 00 40 00 40 00 40 00 40 00 10
    00 10 00 10 00 10
    84 00 00 00 00 C0 40 76 CD D0 22 76 1F 76 E0 17 1E CC 00 FF 14 50 1E 96
    24 1A 01 00 20 1A 03 00 1F 76 E6 17 00 18 FD FF 00 18 FE FF 1F 76 E0 17
    00 CC FF F0 A9 1A 00 03 00 96 1F 76 E6 17 00 1A 02 00 00 1A 01 00 1F 76
    EC 17 00 CC F0 FF 0A 50 00 96 1A 76 69 FF 40 76 E1 D0 07 F6 00 77 69 FF
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Hi Alex,

    I tried using the provided kernel file but it's not working as expected. Below I've attached my result 

    The process get struck at "Attempting autobaud to send function message..."

    For information here I've mentioned my setup for your reference.

    1.A custom PCB with TMS320F28379S micro controller.

    2.OTP memory programmed with 0x004A 0B5A.

    3.BMSP1 - GPIO72 and BMSP0 - GPIO73 BMODE - Flash.

    4.LED is connected to GPIO99 for blink test.

    Kindly suggest what to do next.

  • Rajamurugan,

    Could you share your kernel .txt and/or application file (if able)?

    Were you able to determine where execution is going after you send the branch/run instruction?

    By default, the LED blink example is configured to use GPIO31, have you updated the pin number to match your board?

    Best,

    Alex

  • Hi Alex,

    Below I've attached my kernel and application file

    Application Code :-

    ups-gpio.zip

    Kernel Code :-

    3755.cpu01.zip

    Kernel txt file :-

    F2837xS_sci_flash_kernel.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ·
    AA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00
    00 00 00 00 41 00 6C 04
    29 00 00 00 84 C0 E4 FF 54 DB 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 7C DB
    00 00 00 00 FF FF 7D DB 00 00 00 00 00 00 00 00
    54 00 00 00 00 DB 00 00 08 00 00 20 08 00 00 40 08 00 00 60 08 00 00 80
    08 00 00 00 09 00 00 80 09 00 00 00 0A 00 00 80 0A 00 00 00 0B 00 00 80
    0B 00 00 A0 0B 00 00 C0 0B 00 00 E0 0B 00 00 00 0C 00 00 20 0C 00 00 40
    0C 00 00 60 0C 00 00 80 0C 00 00 00 0D 00 00 80 0D 00 00 00 0E 00 00 80
    0E 00 00 00 0F 00 00 80 0F 00 00 A0 0F 00 00 C0 0F 00 00 E0 0F 00 00 10
    00 10 00 10 00 10 00 40 00 40 00 40 00 40 00 40 00 40 00 10 00 10 00 10
    00 10 00 10 00 10 00 10 00 10 00 40 00 40 00 40 00 40 00 40 00 40 00 10
    00 10 00 10 00 10
    84 00 00 00 00 C0 40 76 CD D0 22 76 1F 76 E0 17 1E CC 00 FF 14 50 1E 96
    24 1A 01 00 20 1A 03 00 1F 76 E6 17 00 18 FD FF 00 18 FE FF 1F 76 E0 17
    00 CC FF F0 A9 1A 00 03 00 96 1F 76 E6 17 00 1A 02 00 00 1A 01 00 1F 76
    EC 17 00 CC F0 FF 0A 50 00 96 1A 76 69 FF 40 76 E1 D0 07 F6 00 77 69 FF
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Rajamurugan,

    I am still working on replicating this and should have a response early next week. Your kernel .txt is identical to mine outside of the GPIOs used for SCI (I am using a ControlCard, which requires 28/29).

    Again, were you able to determine where execution is going after you send the branch/run instruction? This will help me to determine what state the CPU is in.

    Best,

    Alex

  • Hi Alex,

    Sorry for the delayed response.

    Below I've attached my screenshot 

    These are my steps.

    1.I've run the F2837xS_SCI_flash_kernel example code in debug mode and started the process.

    2.Used Serial_flash_programmer_appln.exe to load only application.

    3.Selected DFU and then selected RUN 

    4.Copied and pasted the shown address and then paused the code and took screenshot.

    Kindly correct me if I'm wrong.

    I hope this helps!

  • Rajamurugan,

    After opening the disassembly, could you also load the symbols for the kernel to identify which function it is stuck in? If what you see doesn't make sense, try loading the symbols for your application next.

    An additional (maybe easier) step would be to load the kernel through JTAG again and pause to see where it is stuck. Is it able to reach the entry point assign (see screenshot below, located in SCI_GetFunction)? Stepping from here, does it return successfully from the kernel?

    Is your application in COFF or EABI format?

    The kernel does not reside at address 0x8000, looking at your application map file (ups-gpio.map) I see the below, which makes me think the branch is successful:

    Is there some kind of delay being set in your application? Can you confirm the LED GPIOs are correct?

    Best,

    Alex

  • Hi Alex,

    Below are the steps I tried:

    1. I ran the F2837xS_SCI_flash_kernel example code in debug mode and started the process.

    2. I used Serial_Flash_Programmer_appln.exe to load only the application.

    3. I selected DFU and then clicked Run.

    4. I tried to branch to the application code by copying and pasting the address manually — and it works!

    However, when I try to upload both the kernel file and the application code through SCI mode, it doesn't branch to the application code from the kernel.

    So, my observation is:
                                   when I upload the kernel code using the XDS110 Debug Probe and then use Serial_Flash_Programmer_appln.exe to perform DFU and run the application code, it works as expected.

    This makes me suspect that there might be an issue with the Serial_Flash_Programmer.exe tool when used for both kernel and application uploads via SCI mode.

    Application code is COFF format (generates .out file which I then convert .hex file using hex2000) good and no issues such as delay or wrong GPIO pin.

    Please let m know do you need any other information.