RT Relocate Memory

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RT Relocate Memory

Jump to solution
479 Views
Bkaya
Contributor III

Hello everyone,

I am using custom board with i.mx.rt 1176 processor. On my board, i have 4MB flash and 32MB ram. I aim to split flash section two parts to jump main application from bootloader. 

Here is my explanation:

0x3000 0000 to 0x3003 6000 bootloader program, 0x3003 6000 to 0x3040 0000 main application.

In my main application, i set memory section as i mentioned. In main, i set SCB-> VTOR to 0x3003 6000 + offset. When i debug my main application code, i get error. I can not run this project.

Bkaya_1-1709544599794.png

In my bootloader project, i set memory section. Project gets .bin file from USB, deletes memory section from 0x3003 6000 to 0x3040 0000, writes new data that address. After boot process, i want to jump main application.

Bkaya_2-1709544919681.png

I will start from bootloader and check some inputs to start boot process. If boot process is not necessary, i will jump to main application.

1) Is my tihnking correct for boot process?

2) I try to debug my main application but i get error.(I am not loading my bootloader project) Am i missing something while referencing address?

3) How should i split flash and jump correctly as i mentioned?

Thanks for your help!

Best Regards,

Basri KAYA

 

0 Kudos
1 Solution
322 Views
nxf77486
NXP TechSupport
NXP TechSupport

Hello,

 

Thank you for the explanation, I think the following community post will be useful for your requirements.

View solution in original post

0 Kudos
4 Replies
374 Views
nxf77486
NXP TechSupport
NXP TechSupport

Hello,

 

Thank you for contacting NXP support.

I understand that you are changing and relocating the memory, but is important to make sure MCUXpresso is using this memory placements. In this case I will recommend the MCUXpresso User Guide in the chapter 20 you will find the memory and liker scripts information and configuration.

This is necessary so the linker script has also the same memory configuration.

Please let me know if there is anything else where I can help you.

0 Kudos
340 Views
Bkaya
Contributor III

@nxf77486 Hi,

I did the most of the problems succsessfully that i mentioned above. I just need some example or application note about this problem:

In my flash, I am starting debug section for my bootloader program (0x3000 0000 to 0x3003 6000) and writing the main application from bin file (0x3003 6000 to 0x3040 0000). After the boot process done, i reset the device with NVIC_SystemReset() function (it does not work while debugging) and the bootloader function re-started i want to jump address of the main application (0x3003 6000).

How can i do this? Which interrupts do i stop? Which registers should i change?

Thanks.

0 Kudos
323 Views
nxf77486
NXP TechSupport
NXP TechSupport

Hello,

 

Thank you for the explanation, I think the following community post will be useful for your requirements.

0 Kudos
306 Views
Bkaya
Contributor III
Hi,

Thanks for the answers. I was exactly looking for this solution. Have great day.

Best Regards,
Basri KAYA
0 Kudos