How to jump from current main function to other main function in the different section?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to jump from current main function to other main function in the different section?

ソリューションへジャンプ
1,284件の閲覧回数
cody1
Contributor III

I use MC56F83783 now. I created two projects A and B.

Project A is my application.

Project B is a boot code for checking all status in flash before jump to Project A.

I split flash into two parts. The section of Project A is from 0x6000 to 0x18000.

The section of Project B is from 0x0000 to 0x6000.

I would use the debug tool to write Project A into Flash. And then I use the flash programmer of CodeWarrior to write Project B into Flash and skip the section of Project A.

The end of the line of the main function has placed the assembly code "asm(JMP 0x6000;);" in Project B.

I saw the status after running Project B but don't saw any status when jumping to Project A.

All above are for updating the section of Project A in the future and no modify the section of Project B.

Thanks.

Cody

 

 

0 件の賞賛
返信
1 解決策
1,200件の閲覧回数
cody1
Contributor III
  1. Change from SDM to LDM
  2. After separating all the spaces of BOOT and APP, everything will operate normally.

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
1,201件の閲覧回数
cody1
Contributor III
  1. Change from SDM to LDM
  2. After separating all the spaces of BOOT and APP, everything will operate normally.
0 件の賞賛
返信
1,253件の閲覧回数
cody1
Contributor III

I do some modifies. I can let Project B jump to Project A now, but I meet a problem that needs help.

First I put a GPIO in while(1), then I can saw the toggle status of GPIO after jumping from Project B to Project A.

And then I modified my code to insert the pointer of the function array for creating more tasks.

There is no toggle status of GPIO after jumping from Project B to Project A.

And then I place a keyword __pmem, then it works.

If I use the function pointer of the array and no place __pmem, then the program would be restarted again and again after resetting the power.

Is there anyone who can help me and tell me what kind of thing I did wrong?

Thanks a lot.

Cody

DS0010.PNG

CH2(Blue) is the working status of Project B.

CH4(Green) is the jumping status after jump from Project B to Project A.

CH1(Yellow) is the working status of Project A.

My operation sequence:

1. I use debug tool erase and program Project A into Flash.

2. I use the flash programmer tool to erase and program the section of Project B.

3. Reset the power.

タグ(1)
0 件の賞賛
返信