Jump from Secondary boot loader to application in IMXRT1064 is not working

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

Jump from Secondary boot loader to application in IMXRT1064 is not working

1,905件の閲覧回数
vikram_tathe
Contributor II

I am trying to jump from Secondary boot loader to application but I am unable to do this.

In the main.c (Secondary bootloader), I have written the code shown below.

pastedImage_1.png

I have attached the bootloader and application linker files and map files here.

Here, the LED blinky code from SDK is used as application code. I have modified the memory configuration in application code as below:

pastedImage_2.png

I am expecting the primary bootloader is jumped to secondary bootloader(by default) and then the secondary bootloader will jump to application code. So, when I write bootloader binary at 0x70000000 and application at 0x70008400 location using GUI flash tool, the application should run (should blink the LED).

Could you please help me with that?

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

1,532件の閲覧回数
jorge_a_vazquez
NXP Employee
NXP Employee

Hi Vikram Tathe

The secondary bootloader that we provide with the SDK is only available to run in RAM memory, are you modifying this bootloader to boot from flash? I saw in your images that you actually have a different main file from the one that we provide. Could you clarify how do you set the change of from Flash to RAM, in order to program the hyperflash?

Regards

0 件の賞賛
返信

1,535件の閲覧回数
vikram_tathe
Contributor II

I have two separate projects, one is a bootloader project and another is an application project.

Right now the bootloader code has only main() and inside that, we have written jump to application functionality.

 

I am writing the bootloader binary first at the default location 0x70000000

and writing the application at 0x70008400 by setting the base address in the GUI flash tool. (Please correct me if I am doing wrong).

 

I have added IVT and related data in the secondary Bootloader only started at memory location 0x70000000.

I have not included the  Image Vector Table (IVT) in the application image.

The end target is the primary bootloader will call the secondary bootloader by default (stored at address 0x70000000) then the secondary bootloader will call the application starting from memory address 0x70008400.

Could you clarify how do you set the change of from Flash to RAM, in order to program the hyperflash?

I didn't get this point.

If you have bootloader example code, could you please share it?

0 件の賞賛
返信

1,535件の閲覧回数
jorge_a_vazquez
NXP Employee
NXP Employee

Hi Vikram Tathe

You can download the ram bootloader along with the SDK package that you download from:

Welcome | MCUXpresso SDK Builder 

Please remember that you have to add the MCUboot support as a middleware in the options of the SDK package.

Also, I saw that you have another community post with Jeremyzou, in order to avoid double effort in the same issue, Please follow your questions in one community post:

Jump from Secondary boot loader to application in IMXRT1064 is not working 

Regards

Jorge Alcala

0 件の賞賛
返信