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.
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.
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
Solved! Go to Solution.
Hello,
Thank you for the explanation, I think the following community post will be useful for your requirements.
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.
@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.
Hello,
Thank you for the explanation, I think the following community post will be useful for your requirements.