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.

TMS320F280039C: RAM specifies the variable strApp2BootData, switch from APP to Boot, and the variable strApp2BootData will be cleared before entering the Main function.

Part Number: TMS320F280039C

Hi Experts,

I am asking for my customer urgently. Thanks.

They are developed their own bootloader. And RAM specifies the variable strApp2BootData when jump from APP to Boot, and the variable strApp2BootData will be cleared before entering the Main function. we don't quite understand why it will be clear?

#1.If we use the variable strApp2BootData to do judge, the variable strApp2BootData will be cleared as below figure when code jump from APP to BOOT. You can see the 0x00000400 address no data and cleared.

#2.If we directly to access the 0x00000400 absolute address, the data would still you can see the below figure.

In addition, Boot Project and APP Project, define this variable at the same time, define the same RAM address. And the strApp2BootData is used by judging the upgrade operation.

They use the asm(LB "Program entry address") to jump from BOOT to APP, or also jump from APP to BOOT.

what we've done:

1.We check the RESC register, chip not reset, RAM data for strApp2BootData should not be cleared;

2.Direct operate the absolute address data exists, but through variable assignment, the data is cleared, why?

3.We check the usage- assign the fixed addresses for the variables in RAM, correct. Meanwhile, attached files about two project cmd.

280039C_APP-CMD.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MEMORY
{
PAGE 0 :
RAMM0 : origin = 0x00000128, length = 0x000002D8
RESET : origin = 0x003FFFC0, length = 0x00000002
RAMLS_Prog : origin = 0x00008000, length = 0x00001800
// RAMLS0 : origin = 0x00008000, length = 0x00000800 cla
// RAMLS1 : origin = 0x00008800, length = 0x00000800
// RAMLS2 : origin = 0x00009000, length = 0x00000800
// RAMGS_Prog : origin = 0x0000C000, length = 0x00003FF8
RAMGS_Prog : origin = 0x0000D000, length = 0x00002FF8
// RAMGS1 : origin = 0x0000D000, length = 0x00001000
// RAMGS2 : origin = 0x0000E000, length = 0x00001000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
280039C_BOOT-CMD.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MEMORY
{
PAGE 0 :
RAMM0 : origin = 0x00000128, length = 0x000002D8
RESET : origin = 0x003FFFC0, length = 0x00000002
RAMLS_Prog : origin = 0x00008000, length = 0x00001800
// RAMLS0 : origin = 0x00008000, length = 0x00000800 cla
// RAMLS1 : origin = 0x00008800, length = 0x00000800
// RAMLS2 : origin = 0x00009000, length = 0x00000800
RAMGS_Prog : origin = 0x0000C000, length = 0x00003FF8
// RAMGS0 : origin = 0x0000C000, length = 0x00001000
// RAMGS1 : origin = 0x0000D000, length = 0x00001000
// RAMGS2 : origin = 0x0000E000, length = 0x00001000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Do you have any suggestion here? Thanks.