2024-07-11 04:08 AM
Hello everyone,
I have been working on a custom bootloader for the STM32H735 microcontroller and I am encountering an issue when attempting to jump to my main application stored in external flash memory. Here's a brief overview of what I've done so far:
Developed a Demo Bootloader: I started by creating a demo bootloader based on the ExtMem_Boot example. This bootloader successfully jumps to applications stored in external flash memory. Both a simple application (printing RTC values, just for TESTING) and a more complex application with multiple functionalities work perfectly when jumped to from this demo bootloader.
Developed a More Complex Bootloader: I then developed a more complex bootloader that includes functionalities like CRC calculation, erasing sectors, and loading a new image from an SD card. This bootloader also successfully jumps to the simple RTC application without any problems.
Encountered Issues with Main Application: However, when I attempt to jump to my main application (which has multiple functionalities and is much more complex) from this complex bootloader, I encounter the following error:
This error occurs right after calling JumpToApplication(). After executing the jump, it sends me to the address 0x900064d0. I've double-checked the memory addresses and ensured that the application is correctly placed in the external flash.
I would greatly appreciate any guidance or suggestions on what might be causing this issue. Specifically, I am looking for advice on:
Thank you in advance for your help and support!
Best regards,
EmoSolved! Go to Solution.
2024-07-12 01:43 AM
Hello everyone,
I'm happy to report that I have resolved the issue I was facing with my bootloader project. I'm posting this solution because I regularly turn to this forum for help with challenging problems, and I hope this post can assist other developers facing similar issues.
Problem Summary: I developed a complex bootloader that calculates CRC, erases memory, copies images from an SD card, etc. When jumping to a simple application like an RTC printout, everything worked fine. However, when trying to jump to my main project with multiple functionalities, I encountered the following error:
Break at address "0x900064d0" with no debug information available, or outside of program code.
Solution: The root of the problem was that the complex bootloader project was not configuring the HyperRAM. Unlike the simple RTC project, the main project relies on the HyperRAM, and its absence was causing the jump to fail.
By ensuring that the HyperRAM was properly configured in the bootloader, I was able to successfully jump to the main application without any issues.
Steps Taken:
I hope this helps anyone facing similar issues. It's always rewarding to overcome these hurdles, and sharing solutions is a great way to support our developer community.
Best regards,
Emo
2024-07-12 01:43 AM
Hello everyone,
I'm happy to report that I have resolved the issue I was facing with my bootloader project. I'm posting this solution because I regularly turn to this forum for help with challenging problems, and I hope this post can assist other developers facing similar issues.
Problem Summary: I developed a complex bootloader that calculates CRC, erases memory, copies images from an SD card, etc. When jumping to a simple application like an RTC printout, everything worked fine. However, when trying to jump to my main project with multiple functionalities, I encountered the following error:
Break at address "0x900064d0" with no debug information available, or outside of program code.
Solution: The root of the problem was that the complex bootloader project was not configuring the HyperRAM. Unlike the simple RTC project, the main project relies on the HyperRAM, and its absence was causing the jump to fail.
By ensuring that the HyperRAM was properly configured in the bootloader, I was able to successfully jump to the main application without any issues.
Steps Taken:
I hope this helps anyone facing similar issues. It's always rewarding to overcome these hurdles, and sharing solutions is a great way to support our developer community.
Best regards,
Emo