热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nrf52832DUF功能加看门狗

篇首语:本文由编程笔记#小编为大家整理,主要介绍了nrf52832DUF功能加看门狗相关的知识,希望对你有一定的参考价值。环境:nrf52832

篇首语:本文由编程笔记#小编为大家整理,主要介绍了nrf52832 DUF功能加看门狗相关的知识,希望对你有一定的参考价值。


环境:nrf52832 ,SDK11
问题描述:应用程序中不加WDT时升级功能正常,加了WDT后会在升级一半就重启
原因分析:在升级过程中没有喂狗,导致看门狗发飙了

解决办法:

#ifdef ADD_WDT
static void Feed_WDT(void)
NRF_WDT->RR[0] = WDT_RR_RR_Reload;
#endif

static void wait_for_event()
// Transport is waiting for event?
while(true)

#ifdef ADD_WDT
Feed_WDT();
#endif
// Can't be emptied like this because of lack of static variables
#ifdef BLE_STACK_SUPPORT_REQD
(void)sd_app_evt_wait();
#else
__WFI();
#endif
app_sched_execute();

2、SDK12以后的版本
问题描述:不加WDT时,升级正常,加了WDT后需要升级两次才能切换到application
问题分析:升级过程是没错的,只是在copy bank1_code to bank0_code时出现了看门狗重启
解决办法:
不仅要在wait_event中喂狗,还要在copy code过程中喂狗

1、

static void wait_for_event()
// Transport is waiting for event?
while(true)

#ifdef ADD_WDT
Feed_WDT();
#endif
// Can't be emptied like this because of lack of static variables
#ifdef BLE_STACK_SUPPORT_REQD
(void)sd_app_evt_wait();
#else
__WFI();
#endif
app_sched_execute();

2、
在nrf_dfu_utils.c 中的 nrf_dfu_app_continue喂狗,修改类似下面这样

// Copy the application down safely
do

/* this fix up the bug that need dfu twice to enter application at 2017-10-25 11:43:34 */
// ADD_WDT
#if 1
NRF_WDT->RR[0] = WDT_RR_RR_Reload;
#endif
cur_len = (length_left > split_size) ? split_size : length_left;

推荐阅读
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
author-avatar
PHP小白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有