野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6194|回复: 3

9.空闲线程与阻塞延时的BUG

[复制链接]
发表于 2019-3-3 22:02:07 | 显示全部楼层 |阅读模式
1火花

我发现rtthread第九章 空闲线程与阻塞延时的实现 的一个bug这个 rt_list_t   tlist;        /* 线程链表节点 */  着这个位置的时候没问题 可以输出波形   然后换一个位置他就仿真不出来了  看了很久也没看出来怎么回事


TIM图片20190303220022.png
TIM图片20190303220026.png
TIM图片20190303220110.png
TIM图片20190303220115.jpg
回复

使用道具 举报

发表于 2019-3-4 06:52:19 | 显示全部楼层
我很赞同!
回复

使用道具 举报

发表于 2019-5-31 00:43:10 | 显示全部楼层
这个问题的导致原因就是我之前发的帖子里面说的,因为thread->remaining_tick除了空闲线程、flag1线程、flag2线程是实体定义的线程以外,在就绪列表里面其他的节点都是指向本节点的,执行遍历就绪列表中所有线程的thread->remaining_tick--的时候,如果不为0,执行thread->remaining_tick减减,引起了错误,C:\Users\Taizi\Desktop
回复

使用道具 举报

发表于 2019-5-31 01:04:24 来自手机 | 显示全部楼层
遍历就绪列表对剩余tick减减操作前加上判断列表元素非空就解决了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-21 20:03 , Processed in 0.046970 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表