Hi everyone,
I'm struggling to end a bootloader project. Specificaly, I struggle to perform a clean jump to application after flashing it.
Bootloader Project
In the bootloader project, I'm flashing the application based on a .s19 file generated by IAR in the Application Project. I want the bootloader to jump to a specific address (0x6000 in my case) to run the application. The flashing is OK, I read data from 0x6000 until the end and I am able to flash it. So I don't think the issue is coming from the bootloader project.
Application Project
By itself, the application project is working. Then I convert it to a .s19 file that I use to send data to the bootloader. I modified the linker file to make sure everything is above address 0x6000. But when I'm look at the .s19 file, there is still data remaining below this address.
I was advised to check my Interrupt Vector table and to create a Virtual Interrupt Vector Table referring to the real one. The thing is, I really don't know how to do this in IAR (Version 7). I have seen other project using an irq_table.s87 file but I haven't this in my project, only a .xcl file for the linker.
Thanks in advance for your help, I hope I gave you enough information
Have a good day !
Alright thanks, I now understand the issue. I'll try to implement it but I might need to use Dual Image example since my bootloader is quit big for the moment. Thanks for your answer !
Hi all,
Sorry for late answer. So the solution was indeed to use boot cluster swapping as explained in this post : https://community.renesas.com/mcu-mpu/rl78/f/rl78-forum/29913/rl78-l13-bootloader-jump-to-app-problem/110915#110915
The Start program of the bootloader goes in Boot Cluster 0
The Start program of the application goes in Boot Cluster 1
The Bootloader program goes above the Boot Cluster 1
The Application program goes above the Bootloader program
Thanks for your answer, I know have another issue but I'll create new ticket