Conmi的正确答案——“assertion failed at function:rt_timer_stop”的解决方案

博客介绍了基于WIN10 x64 20H2系统的开发环境,使用RTT-stduio作为IDE,采用STM32F103ZET6芯片(正点原子STM32F1精英版),RT-Thread版本为lts-3.1.4,涉及C/C++、STM32和RT-Thread相关开发。

 

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);
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值