主题中讨论的其他器件: SysConfig、 LAUNCHXL-CC26X2R1
我有一个具有 CC1352P 处理器的电路板。 我的板类似于 CC1352P-2 Launchpad。 我的固件基于 CC1352P-2 Launchpad zed_switch 项目。 我有 Simplelink SDK 5.10.00.48。
我在项目中实现了看门狗。 我的看门狗代码与 SDK 随附的看门狗示例几乎相同。 我已经运行了看门狗示例、它可以正常工作(当看门狗计时器过期时、它会将板复位)。
但是、我的固件无法正常工作、我的问题是、当看门狗计时器过期时、我的板未复位。 我验证了我的回调实际上是被调用的、但我的电路板只是"挂起"而不重新启动。 以下是我的代码:
// Callback function that runs when the watchdog timer times out and the CPU is about to be reset.
void watchdogCallback(uintptr_t watchdogHandle)
{
// Loop until the device resets.
while (1) {}
}
// Initializes and opens watchdog driver.
void rit_initializeWatchdog(void)
{
// One-time initialization of driver
Watchdog_init();
// Initialize parameters
Watchdog_Params params;
Watchdog_Params_init(¶ms);
params.callbackFxn = (Watchdog_Callback) watchdogCallback;
params.debugStallMode = Watchdog_DEBUG_STALL_ON;
params.resetMode = Watchdog_RESET_ON;
// The watchdog timeout value is set in watchdog section of SysConfig.
// Open driver
watchdogHandle = Watchdog_open(CONFIG_WATCHDOG_0, ¶ms);
if (watchdogHandle == NULL)
System_printf("Error opening watchdog driver\n");
}
// And, in one of my TI_RTOS tasks, I "kick" the wathdog:
Watchdog_clear(watchdogHandle);
我在 SysConfig 中启用了看门狗、并为其提供了有效的超时值。
我是否遗漏了什么? 我是否必须配置或启用其他功能才能使看门狗复位正常工作?
谢谢
Tim