编译环境:MDK5.25 添加例程:来自BLE+UART刷机教程
官方SDK中bootloader是没有初始化看门狗的,在刷机过程中,难免会造成死机的不正常现象,看门狗就起到了很好的作用,刷机过程中死机了,看门狗可以拉回来,免得变砖 图中,官方只打印了一个log,没有做其他的操作,可能是在application中开启了,跳转回来bootloader的时候就直接运行了,所以不做初始化动作,以防万一,还是加上比较好,步骤如下:
一、打开nrf_bootloader_wdt.c文件,添加头文件引用 二、添加看门狗初始化部分代码 图中配置,看门狗溢出时间5s,配置在CPU睡眠和硬件调试中看门狗不运行
尝过过用库函数进行初始化(这个是从WDT里程里边拷贝过来的),老是失败,没找到原因,也懒得折腾了,呵呵
nrf_drv_wdt_config_t wdt_config = NRF_DRV_WDT_DEAFULT_CONFIG; err_code = nrf_drv_wdt_init(&wdt_config, wdt_event_handler); APP_ERROR_CHECK(err_code); err_code = nrf_drv_wdt_channel_alloc(&m_channel_id); APP_ERROR_CHECK(err_code); nrf_drv_wdt_enable();运行后,在J-Link RTT中会有如下错误log 三、打开sdk_config.h文件,使能看门狗相关宏定义 和前面配置一样即可,至于不一样就不知道会产生什么后果了,没有深究,有空再研究一下,呵呵
四、保存,编译后下载 五、程序运行后,打开J-Link RTT软件,会看到如下log信息,剪头处每隔4s左右会打印一句,表示已经喂狗了 六、启动升级后,会有相关的log信息打印
BLE刷机
弄完,准备长时间的压力测试,看下成功率多少
