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.

TMS320F28375S: Jumping Issue

Part Number: TMS320F28375S
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

Hi,

I'm currently working on Boot loading of TMS320F28375S, using CAN protocol

When I try to bootload the application code ,it sometimes doesn't jump to application,like it goes to some other address,I have given the address of 2 sectors in Bank 1 namely FLASHE_F.

It should Jump to FlashG_H after few operations.But it stops jumping.

The code is first copied from flash to RAM and it is run

First time(while dumping using dumper),the code dumps into FLASH E_F and I'm trying to jump to FLASH G_H after bootloading 

The issue occurs after jumping to FLASH G_H but it doesn't run.

In bootloader, there is enabling of watchdog at the end, such that it should return to bootloader main after watchdog reset and jump to application code and run the application code.

The linker file is as follows:

Reset - 0x3FFFC0, length 0x2

Begin- 0x80000, length 0x4

Flash A- 0x80004, length 0x1EE8

Flash E_F - 0x88000, length - 17FFF

Flash G_H - 0xA0000, length - 17FFF

code_start : Begin

watchdog_dis: Flash A

copy_sections:  Flash A

Flash Func :  Flash A

Copy App to Ram: 0x88000 

Thanks in advance,

Geetha

  • Hello,

    It should Jump to FlashG_H after few operations.But it stops jumping.

    What are these operations in FLASHE_F?

    The issue occurs after jumping to FLASH G_H but it doesn't run.

    What do you mean by this? What is the state of the device i.e. does the device hit an ITRAP? Does it successfully branch to the code start at 0xA0000? 

    Best,
    Matt

  • Hi

    The operations refers to functions in bootloading process as per our proprietary protocol

    Yes, it successfully branch to the code start at 0xA0000. But it is not run.

    Previously, we have copied only few sections in the linker file, but when I copy the whole code and before jumping to application code, it works fine.

    Now I don't have any issue while bootloading.

    I want to know, what might be the reason for it and why is it only occurs after copying the entire application code?

    Geetha

  • Hello Geetha,

    Can you verify that there aren't any potential memory conflicts between the bootloader and application (like allocations in RAM)? 

    Are the code starts for the application in Flash G_H intended for those sectors? 

    First time(while dumping using dumper),the code dumps into FLASH E_F and I'm trying to jump to FLASH G_H after bootloading 

    I'm still a bit confused about your description of the bootloading flow. Is Flash E_F where the bootloader loads the latest code into? Then, the bootloader copies the code in Flash E_F to Flash G_H, and executes the application there?

    If not, what's the difference between content in Flash E_F and Flash G_H? 

    Best,

    Matt

  • Hi,

    Can you verify that there aren't any potential memory conflicts between the bootloader and application (like allocations in RAM)? 

    Yes, there is no memory conflict between bootloader and application. Separate memory is allocated for both of them.

    Lets say there are 2 different working codes(Application) say A1, A2. With debugger, I'm dumping A1 code into Flash E_F, while bootloading, I'll program A2 code into Flash G_H. And after completing this bootloading, I'll trigger a reset, meaning it will jump to Flash G_H and runs A2 code. This is the nominal process.

    But This all process happens correctly except running of A2 code.

    Previously, we have copied only few sections in the linker file, but when I copy the whole code and before jumping to application code, it works fine.

    Now I don't have any issue while bootloading.

    I want to know, what might be the reason for it and why is it only occurs after copying the entire application code?

    Thanks and Regards

    Geetha

  • Hello,

    Can you verify A2 was programmed correctly in Flash G_H? You can use the On-Chip Flash tool in CCS or UniFlash's verify image operation. Does A2 run if programmed with a debugger?

    Best,

    Matt

  • Hi Matt,

    A1 and A2 are programmed correctly with debugger and they run. When I bootload A1 for many times, it programs correctly. Similarly A2 too, when I bootload A2 for many times,it programs correctly.

    The process of bootloading of images as given below

    A1--> A1 --> A1 --> A1 --> A1 .... so on

    A2--> A2 --> A2 --> A2 --> A2 .... so on

    The code runs correctly in this above case

    But when I follow the below procedure, the code doesn't run and I am struck here

    A1--> A2.. A2 doesn't run here

    Thanks and Regards

    Geetha

  • Hello,

    Thank you for clarifying this for me, your boot flow makes sense to me now.

    A few more questions:

    1. Can you share the *.map files from the build for A1 and A2? You can upload the files directly in E2E.
    2. Are you programming ECC along with the flash content?
    3. What kind of error are you seeing (i.e. what state is the device in) when the device branches to A2? 

    Best,

    Matt

  • Hello,

    Since I haven't heard back in over a month, I will assume the thread is resolved and close the thread.

    Best,

    Matt