基于项目“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()?
请帮帮我,谢谢!
关键词:
设备:
Z0806020433,
这是因为你已经定义了看门狗,你已经设置了.adv_scenario = def_adv_with_timeout,并且您已禁用睡眠模式,这意味着在某个点,设备将停止广告(def_adv_with_timeout),因此由于设备将无关,它将在WFI()中等待中断,而看门狗将仍然计数(因为您已启用它并且您删除睡眠状态,则在休眠模式下,当设备处于睡眠模式时,看门狗会禁用看门狗)。因此,由于看门狗正在计算最终,您将获得NMI中断,这意味着看门狗已经过去了。
此外,您也不必禁用CFG_MEM_MAP_EXT_SLEEP,它只是内存配置,如果您想禁用ARCH_SLEEP_OFF定义将执行。
谢谢mt_dialog.
非常感谢!