主题中讨论的其他器件:MSP-FET430UIF
您好!
我的看门狗有一个奇怪的问题。 我希望使用 PUC 重新启动程序。 为此、我将不良的密码写入看门狗。
我在 SLA049f 10.2.2中读取"当 WDT 配置为在看门狗模式下运行时、使用不正确的密码写入 WDTCTL 或所选时间间隔到期会触发 PUC "
我在'CLR &WDTCTL'行中放置一个断点、并在汇编窗口中逐步进行。 此命令写入错误的密码、并且从不在 NMI 模式中设置 wathdog。然后我认为处理器读取复位向量并跳转到'init:"
根据所有预期、处理器跳转并在0xFFFC 执行代码!! 这是 NMI 向量(Wathdog 未配置为 NMI)! 但更奇怪的处理器不使用它作为跳转地址(矢量),而是执行代码并运行...
我们非常欢迎您进行解释
Didier
#include "msp430.h" ;#define controlled include 文件
名称 main ;模块名称
公共 主 ;使主标签可见
;在本模块之外
org 0FFFEh
DC16 init ;将复位矢量设置为'init'标签
RSEG CSTACK ;段的预先声明
RSEG 代码 ;将程序置于“代码”段中
初始化: MOV #SFE (CSTACK),SP ;设置堆栈
主 程序:NOP;主程序
// MOV.W #WDTPW+WDTHOLD,&WDTCTL ;停止看门狗计时器
CLR WDTCTL
JMP $ ;跳转至当前位置'$'
;(无限循环)
结束