187***543
蓝牙升级,用的是自定义的BootLoader,代码由BootLoader代码跳转到app代码段后,蓝牙协议栈无法使用,两边都有使用到蓝牙协议栈初始化ble_stack_init,调用的是dfu_start_jump去跳转的代码段
1、是否有提供蓝牙协议栈反初始化的功能,或者有没有类似的解决方案
2、代码跳转的原理不是一个完整的app切换吗,为什么上一个代码的东西还存在
walt
你好,从bootloader跳转到应用可以使用接口jump_app():
void user_jmp_fw(void){
rom_init();
__disable_irq();
SysTick->CTRL = 0;
__enable_irq();
jump_app(0x01020000); // here 0x01020000 is load addr of app
}
然后在bootloader协议栈初始化之前调用 user_jmp_fw()
如果在BL中调用过ble_stack_init(),由于暂无反初始化协议栈的操作,再次在应用中初始化会导致初始化错误
谢谢
打开微信,使用“扫一扫”即可关注