2024-11-29 05:41 AM
Here is my development environment:
Software: STM32Cube_FW_WL_V1.3.0
Hardware: NUCLEO-WL55JC1
When I run 1_Image_BFU based on the original project, it works fine and can be upgraded in different versions. But when I ported my own project to use, the upgrade was abnormal and didn't start. So I want to enable SFU_DEBUG_MODE to see what exception is happening in 1_Image_BFU. So, I enabled SFU_DEBUG_MODE in app_sfu.h Then I compiled the project there is a reminder of memory overflow.
then i add SBSFU Code region and other regions in mapping_sbsfu.h,like this:
and mapping_fwimg.h
Then recompiled 1_Image_SECoreBin, 1_Image_BFU, and 1_Image_UserApp, it was successful without any errors.
I use tool to 'full chip erase' and programming BFU_UserApp.bin at 0x08000000.Then connect to the UART tool to view logs.
when i load the UserApp.sfb file and update it.
The fw seems invalid.
I use tools to read memory: The location of the application slot appears to have been erased
Take a look at the memory of BFU_UserApp.bin , it doesn't seem to be at this address but at 0x00010000
Anyway, I suspect the generated bin file address anomaly caused this.Maybe something else was missing,Is there a professional who can take a look at it, thanks!
Solved! Go to Solution.
2024-12-03 06:11 PM
After a lot of trouble I finally solved it.The cause of the problem is the irregular syntax, which does not use parentheses to cause address exceptions.
before:
When parentheses are not used, the slot address in the generated Bin is abnormal.Therefore, when downloading to DK, invalid data is detected and erased
It works fine when parentheses are added.
Serve as a warning to all !
2024-12-01 07:31 PM
I've been referring to some posts like:
2024-12-03 06:11 PM
After a lot of trouble I finally solved it.The cause of the problem is the irregular syntax, which does not use parentheses to cause address exceptions.
before:
When parentheses are not used, the slot address in the generated Bin is abnormal.Therefore, when downloading to DK, invalid data is detected and erased
It works fine when parentheses are added.
Serve as a warning to all !