Adv超时后,程序进入NMI_Handlerc()

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
3个帖子/ 0新
最后一篇
Z0806020433.
离线
最后一次露面:1年前1年前
加入:2016-05-05 13:32
Adv超时后,程序进入NMI_Handlerc()

基于项目“da1458x_dsps_v_5.150.2”,我只是修改一些配置,查看以下内容:
1.“user_config.h”
const static sleep_state_t app_default_sleep_mode = arch_sleep_off;

static const struct default_handlers_configuration user_default_hnd_conf = {
//配置默认处理程序使用的通告操作
//可能的值:
// - def_adv_forever
// - def_adv_with_timeout.
。adv_scenario = def_adv_with_timeout,

//在def_add_with_timeout的情况下配置通告期间。
//以定时器单元(10ms)测量。使用ms_to_timerUnits宏转换
//从毫秒(ms)到定时器单位。
.Advertise_Period = MS_TO_TIMERUNITS(10000),

//配置默认处理程序的安全开始操作
//如果启用了安全性(cfg_app_security)
.security_request_scenario = def_sec_req_never
};

2.“da1458x_config_basic.h”
#define cfg_wdog.

#undef cfg_mem_map_ext_sleep.
#undef cfg_mem_map_deep_sleep.

#define cfg_development_debug.

然后我开始调试,之后,程序将进入nmi_handlerc()的函数。
为什么它进入nmi_handlerc()?

请帮帮我,谢谢!

关键词:
设备:
mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
Z0806020433,

Z0806020433,

这是因为你已经定义了看门狗,你已经设置了.adv_scenario = def_adv_with_timeout,并且您已禁用睡眠模式,这意味着在某个点,设备将停止广告(def_adv_with_timeout),因此由于设备将无关,它将在WFI()中等待中断,而看门狗将仍然计数(因为您已启用它并且您删除睡眠状态,则在休眠模式下,当设备处于睡眠模式时,看门狗会禁用看门狗)。因此,由于看门狗正在计算最终,您将获得NMI中断,这意味着看门狗已经过去了。

此外,您也不必禁用CFG_MEM_MAP_EXT_SLEEP,它只是内存配置,如果您想禁用ARCH_SLEEP_OFF定义将执行。

谢谢mt_dialog.

Z0806020433.
离线
最后一次露面:1年前1年前
加入:2016-05-05 13:32
非常感谢!

非常感谢!