IDE:RTT-stduio
系统:WIN10 x64 20H2
STM32芯片:STM32F103ZET6(正点原子STM32F1精英版)
RT-Thread版本:lts-3.1.4
/*
问题场景:
定义了一个看门狗,在启动的时候报了“(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer) assertion failed at function:rt_timer_stop, line number:428 ”
*/
/**
* 看门狗代码:
*/
/* 1、创建喂狗线程 */
rt_thread_t feedDogThread = rt_thread_create(
"feedDogThread", // 线程的名称
feedDog_thread_entry, // 线程的入口函数
RT_NULL, // 入口函数的传入参数
128, // 线程堆栈的大小
1, // 线程的优先级
5 // 线程的时间片大小
);
if (feedDogThread != RT_NULL)
{
rt_thread_startup(feedDogThread);
}
/*
解决方案:
初步认为是创建的线程堆栈给少了,增加即可。(未涉及源码DEBUG,可能这还不是最好的解决方案。)
*/
/* 1、创建喂狗线程 */
rt_thread_t feedDogThread = rt_thread_create(
"feedDogThread", // 线程的名称
feedDog_thread_entry, // 线程的入口函数
RT_NULL, // 入口函数的传入参数
256, // 线程堆栈的大小
1, // 线程的优先级
5 // 线程的时间片大小
);
if (feedDogThread != RT_NULL)
{
rt_thread_startup(feedDogThread);
}