nordic nrf52832的空中升级,其实很简单,对于初学者,只要是协议栈和sdk版本相同,都可以直接使用别人的boot和秘钥,以及setting 除了app以外的所有文件,所以只需要实现从app跳转到升级程序既可以。
关于那个应用程序跳转到bootloader 网上基本上都是使用什么添加服务啊绑定什么的,但是其实自己的程序中已经有了一些服务,如果添加服务只是为了实现跳转,那就不必要了,因为跳转很简单 只需要设置 NRF_POWER->GPREGRET寄存器即可:
以下是简单的操作即可实现跳转
在boot程序中只需要屏蔽 对 init_softdevice的检测 ,应用程序中只需要达到条件 ,按键或者收到特定的指令,设置NRF_POWER->GPREGRET ,然后启动重启 即可实现 跳转(特别提醒:如果没有开启NRF_LOG 则会出错 因为在重启的时候回调用到NRF_LOG 导致程序要一直停止在NRF_LOG中 所以如果没有使用NRF_LOG功能 则需要屏蔽:NRF_LOG_ERROR("Fatal error"); 和NRF_LOG_WARNING("System reset"); 这样就可以搞定了 ~~嘻嘻)