工具/软件:Code Composer Studio
F28335中有两个项目、一个是引导加载程序、另一个是应用程序 上电时、第一个引导加载程序将从默认的 CODE_START 地址(0x33FFF6)运行代码。 然后分支到应用项目 code_start 地址(0x300008)。 两个 code_start 如下所示(即 DSP2833x_CodeStartBranch.asm)且看门狗已禁用。
code_start: .if WD_disable = 1 lb wd_disable 分支到看门狗禁用代码 .else LB _c_int00 ;分支到 RTS 库 .endif 中的 boot.asm 启动
;结束 codestart 段
我在应用项目中添加了代码以检查看门狗 WDFLAG 位、如下所示(按照勘误文档来解决 XINTF 模块错误)
EALLOW;
if ((SysCtrlRegs.WDCR & 0x0080)=0)
{
SysCtrlRegs.WDCR = 0x0028;
SysCtrlRegs.WDKEY = 0x0055;
SysCtrlRegs.WDKEY = 0x00AA;
}
其他
{
SysCtrlRegs.WDCR |= 0x0080;
}
EDIS;
但是、在看门狗复位后 、代码"SysCtrlRegs.WDCR |= 0x0080"似乎无法禁用看门狗。 但是、CODE_START 应该已禁用看门狗。 如何理解此问题? 加电和看门狗复位之间的 CODE_START 有何差异? 谢谢。