2024-09-08 12:44 AM - edited 2024-09-08 01:12 AM
Hey everyone, I am using STM32WB55RGV7 processor. At the beginning of my bootloader program
if (((*(__IO uint32_t*)address) & 0x2FFE0000 ) == 0x20000000) // if there is an application at the APP_START_ADDRESS { typedef void(*pFunction)(void);
pFunction Jump_To_Application;
uint32_t jump_address = *(__IO uint32_t*)(address + 4);
Jump_To_Application=(pFunction)jump_address;
__set_PRIMASK(1);
SysTick->CTRL = 0;
__set_MSP(*(__IO uint32_t*) address);
Jump_To_Application();
}
I use the function and so my program jumps to address 0x8050000. When I jump to this program, I start with the commands
__set_PRIMASK(0);
SCB->VTOR = 0x8050000;
and I do not have access to my M0 core after this point. Before using the Bluetooth feature, I was starting the program from address 0x8050000 as I wanted and after that I had no problems. But after jumping, I can't access the shci functions at all and the program crashes. My problem is
https://community.st.com/t5/stm32-mcus-wireless/having-trouble-with-bluetooth/m-p/204476/highlight/true#M8330
matches this topic. I am having the exact same problems.
2024-09-08 07:05 AM
First of all, thank you very much for your help. I will check. I want to ask you for one last help. I understand that Application Note clearly tells the point where there is an error. I am not sure if I understand correctly. When I do what is explained, I am missing something and I cannot get a positive result.
2024-09-08 08:09 AM
What i can give you more then what is on the Application note is to suggest you to try to understand how this procedure happend starting from one off our examples sych as this one. You can follow all the implemtation step by step or debug it to understand more about it.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.