你好
我们希望将看门狗用作安全机制。我们的固件基于Demo Simple_BeAcon。我们的板只有XTAL16M,没有XTAL32K。我们使用内部时钟RC32K。
当我们通过Keil调试时,看门狗运行良好。如果我们不重新加载看门狗,固件将重新启动。但是,当我们将固件(.hex文件)刻录到板上时,看门狗即使我们不重新加载看门狗,看门狗也无法重新启动固件。
我们之前有过这个问题,我们通过禁用da1458x_config_basic.h中禁用cfg_development_debug来解决问题。但这次我们无法解决。
这是固件的一些配置。
在da1458x_config_basic.h.中
#define cfg_wdog.
//#define cfg_development_debug
在da1458x_config_advanced.h.中
#define cfg_lp_clk lp_clk_rcx20
#undef cfg_xtal16m_adaptive_settling.
在user_config.h.
static const sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
我们在函数中初始化看门狗system_init(void)经过wdg_init(1);
对不起我的英语,希望我的问题很清楚。
谢谢。
亲切的问候,
lib
设备:
lib
感谢您在线问题,并欣赏您对我们的BLE解决方案的兴趣。您能否澄清为什么CFG_Development_debug宏评论出来?您能否请发表评论,重建项目并以调试模式运行它?代码冻结的地方?这是由于WDOG到期吗?
恢复开发调试机制并提供额外的调试信息非常有帮助,以便我能够理解问题。
谢谢,PM_DIALOG.
嗨PM_DIALOG.
感谢你的回复。
1.评论宏CFG_Development_debug的原因是宏CFG_DEVELPMENT_DEBUG的注释说“对于生产模式构建它必须被禁用。”
2.当我在调试模式下进行评论并运行时,代码无处可行。但固件重新启动并运行闪存中的固件。
附件是此过程的屏幕记录。希望它有用。
谢谢
lib
lib
感谢您的反馈意见。我看到了你附加的视频,如果我没有弄错,你已经修改了main()。强烈建议不要修改SDK文件,因此您可以使用SDK提供的Main(),并在调试模式下再次运行它吗?
可能是设备重置..你可以看看DA14531:处理重置机制的不同方式这样您就可以检测重置的源。
是的,对于生产必须禁用,但在开发阶段应该定义,以便调试项目。
谢谢,PM_DIALOG.
嗨PM_DIALOG.
谢谢你的帮助
我已经修改了main()。但我只添加一行“如果(勾选> 10)”在重新加载看门狗之前。这只是在前10秒内重新加载看门狗。电路板启动后10秒钟后,将无法重新加载看门狗。所以,固件应该重启,但它不是。这是我的问题。
但是,当我在10秒后添加无限环路时,固件重启。所以,这意味着看门狗的工作。我的问题已经解决了。
非常感谢您的热情帮助。
此致,
lib
lib
很高兴你识上你的问题。
谢谢,PM_DIALOG.