TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640: 初始化过程种,在Watchdog_Open()中死机

Part Number:CC2640

CC2640WatchDog初始化中,在Watchdog_Open()中死机。原代码及死机位置如下。

Watchdog_Handle handle = NULL;
Watchdog_Params params;
uint32_t tickValue;

void WatchDog_Init()
{
Watchdog_Params_init(&params);
params.callbackFxn = watchdogCallback;
params.resetMode = Watchdog_RESET_OFF;
handle = Watchdog_open(0, &params);
// set timeout period to 100 ms
tickValue = Watchdog_convertMsToTicks(handle, 1000);
Watchdog_setReload(handle, tickValue);
}

void watchdogCallback(UArg handle)
{
// User-defined code here
Watchdog_clear((Watchdog_Handle)handle);
}

Galaxy Yue:

您好,

在初始化参数之前,您似乎缺少对Watchdog_init()函数的调用。

如文档中所述,在调用任何其他 Watchdog API 之前, 必须通过调用Watchdog_init()来初始化 Watchdog 驱动程序。

这是如何设置看门狗的示例:

Watchdog_Params params;
Watchdog_Handle watchdog;
Watchdog_init();
Watchdog_Params_init(&params);
params.resetMode = Watchdog_RESET_ON;
params.callbackFxn = UserCallbackFxn;
watchdog = Watchdog_open(Board_WATCHDOG, &params);
if (watchdog == NULL) {`Error opening watchdog`
}

,

Li Allen:

谢谢,Board_WATCHDOG的原定义处在哪?我这边总是编译不过去,提示未定义。可能是缺少某个文件。

,

Galaxy Yue:

https://blog.csdn.net/qq_36347513/article/details/88695341

您好,您可以参考下这篇帖子

,

Li Allen:

这个帖子我看过,也用过,和你前面提供的代码基本一致的。一样出现编译提示Board_WATCHDOG未定义。包括下面这个帖子:https://blog.csdn.net/zzfenglin/article/details/52253536?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170443517316800197097937%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170443517316800197097937&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-52253536-null-null.142^v99^pc_search_result_base1&utm_term=CC2640%20%E7%9C%8B%E9%97%A8%E7%8B%97&spm=1018.2226.3001.4187

其评论区也有很多和我一样遇到类似问题的,但是楼主没有回答。

另外,我看到watchdog函数里面的index>=Watchdog_count.。而Watchdog_count 的定义是-。还有Watchdog_config[index],是不是也要定义?有没有定义好的模板?

,

Galaxy Yue:

你可以在CCS里面尝试一下watchdog例程

你检查一下在board.c中是否有CONFIG_WATCHDOG的宏定义

然后在index进行改写编号

 IAR环境和CCS不甚相同 你需要看看你的IAR

赞(0)
未经允许不得转载:TI中文支持网 » CC2640: 初始化过程种,在Watchdog_Open()中死机
分享到: 更多 (0)