嗨支持,
我正在进行设计的问题,我正在努力,我想使用看门狗定时器来尝试恢复。是否有任何文档描述了看门狗定时器和NMI的?谢谢。
嗨戴夫,
您可以在UM-B-051第7节中找到有关NMI和HardFault处理程序的一些信息,因为您在Development_debug中,NMI处理程序将保存Proccessor的状态,以便用户调试,如果您不在development_debug将重置DA,引导ROM将执行。
谢谢mt_dialog.
我看过UM-B051第7.2.5.2节的信息,需要一些澄清。从那部分开始:
“在开发调试模式下,定义了assert_error()和assert_warning()宏作为断点。在检测到错误状态后,程序将停止,用户可以附加调试器并找出导致错误的原因“
当我使用扩展睡眠模式时,我遇到的问题似乎正在发生。如果在Development_debug中使用手表狗计时器,我将能够在NMI中连接调试器?因为它现在,当扩展睡眠启用时,代码不会运行,并且在keil uvision 5中打开调试会话5.有没有办法恢复Keil中的调试会话?
在扩展睡眠中运行时,通过NMI处理程序打开调试模块的看门狗定时器开启,处理程序的寄存器也存储在地址0x81850(或通过硬盘处理程序的0x81800存储)。如果您的程序已停止在NMI中,您可以重新连接调试器以检查PC计数器并引发导致程序崩溃的原因。
要重新连接调试器,请执行以下操作:
1)在项目的应用程序文件夹中创建项目xxx.uvprojx的副本。
2)打开此新项目并转到项目选项,在“调试”选项卡中执行以下操作。
3)禁用“启动应用程序”中的“加载”复选框并删除初始化文件中的链接。
4)单击调试器的设置,然后在连接复选框后禁用复位。
5)单击“确定”并关闭项目选项。
现在,当出现问题时,您可以运行这个新项目才能重新安装调试器并读取之前提到的内存位置(在内存窗口中选择视图为无符号)。您可以在内存视图中找到该程序计数器作为第7个无符号的长号。
谢谢,这正是我需要的。
嗨戴夫,
您可以在UM-B-051第7节中找到有关NMI和HardFault处理程序的一些信息,因为您在Development_debug中,NMI处理程序将保存Proccessor的状态,以便用户调试,如果您不在development_debug将重置DA,引导ROM将执行。
谢谢mt_dialog.
我看过UM-B051第7.2.5.2节的信息,需要一些澄清。从那部分开始:
“在开发调试模式下,定义了assert_error()和assert_warning()宏
作为断点。在检测到错误状态后,程序将停止,用户可以附加
调试器并找出导致错误的原因“
当我使用扩展睡眠模式时,我遇到的问题似乎正在发生。如果在Development_debug中使用手表狗计时器,我将能够在NMI中连接调试器?因为它现在,当扩展睡眠启用时,代码不会运行,并且在keil uvision 5中打开调试会话5.有没有办法恢复Keil中的调试会话?
嗨戴夫,
在扩展睡眠中运行时,通过NMI处理程序打开调试模块的看门狗定时器开启,处理程序的寄存器也存储在地址0x81850(或通过硬盘处理程序的0x81800存储)。如果您的程序已停止在NMI中,您可以重新连接调试器以检查PC计数器并引发导致程序崩溃的原因。
要重新连接调试器,请执行以下操作:
1)在项目的应用程序文件夹中创建项目xxx.uvprojx的副本。
2)打开此新项目并转到项目选项,在“调试”选项卡中执行以下操作。
3)禁用“启动应用程序”中的“加载”复选框并删除初始化文件中的链接。
4)单击调试器的设置,然后在连接复选框后禁用复位。
5)单击“确定”并关闭项目选项。
现在,当出现问题时,您可以运行这个新项目才能重新安装调试器并读取之前提到的内存位置(在内存窗口中选择视图为无符号)。您可以在内存视图中找到该程序计数器作为第7个无符号的长号。
谢谢mt_dialog.
谢谢,这正是我需要的。