找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 31|回复: 0

[Nordic] 怎么打开DFU升级开始回调

[复制链接]
连续签到天数:1天
签到总天数:8天
签到总奖励:36金币
发表于 昨天 09:10 | 显示全部楼层 |阅读模式
在NCS上面开启DFU之后确认是否开始DFU以及传输过程
一、添加宏
在prj.conf添加如下宏
#enable MCUbootCONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y#enable MCUboot_mamageCONFIG_MODULE_BT_MGMT_DFU=yCONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=yCONFIG_MCUMGR_GRP_IMG_UPLOAD_CHECK_HOOK=yCONFIG_MCUMGR_GRP_IMG_STATUS_HOOKS=y二、在main添加如下内容///添加宏定义#include <zephyr/mgmt/mcumgr/grp/img_mgmt/img_mgmt.h>#include <zephyr/mgmt/mcumgr/mgmt/callbacks.h>#include <zephyr/mgmt/mcumgr/mgmt/mgmt.h>///添加回调static enum mgmt_cb_return upload_confirm_cb(uint32_t event,enum mgmt_cb_return prev_status,int32_t *rc, uint16_t *group,bool *abort_more, void *data,size_t data_size){struct img_mgmt_upload_check *imgData = (struct img_mgmt_upload_check *)data;switch (event) {case MGMT_EVT_OP_IMG_MGMT_DFU_STARTED:LOG_INF("BLE Download start");break;case MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK:LOG_INF("BLE Download %u/%llu bytes", imgData->req->off, imgData->action->size);break;case MGMT_EVT_OP_IMG_MGMT_DFU_STOPPED:LOG_INF("BLE Download stop");break;default:LOG_ERR("Unknown event %u", event);break;}return MGMT_CB_OK;}///初始化 DFU_updatestatic int app_update_init(void){int err;static struct mgmt_callback mgmt_callback = {.callback = upload_confirm_cb,.event_id = MGMT_EVT_OP_IMG_MGMT_DFU_STARTED | MGMT_EVT_OP_IMG_MGMT_DFU_CHUNK | MGMT_EVT_OP_IMG_MGMT_DFU_STOPPED,};mgmt_callback_register(&mgmt_callback);return 0;}/////初始化SYS_INIT(app_update_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);三、在Cmakelist.txt添加DFU库zephyr_link_libraries(MCUBOOT_BOOTUTIL)四、测试
可以看到点击DFU之后LOG开始打印 文件开始下载,以及文件下载的过程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2026-1-5 12:38 , Processed in 0.083161 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表