野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1931|回复: 2

[rt-thread] 关于rt_thread中的优先级表rt_thread_priority_table[ ]的插入问题;

[复制链接]
发表于 2023-5-12 19:20:46 | 显示全部楼层 |阅读模式
本帖最后由 caesura_k 于 2023-5-12 19:28 编辑

各位老哥来看一看,关于rt_thread中的优先级表rt_thread_priority_table[ ]的插入问题;

1 线程初始化的时候,把线程节点插入优先级列表,使用了rt_list_insert_before()函数;
野火论坛202305121908515412..png
优先级列表内的地址应该如图所示,插入的线程节点地址被放到了priority_table[ ].prev中;
野火论坛202305121910458095..jpg
那为什么调用的时候都是调用priority_table.next呢?
野火论坛202305121912502881..png
2 对于rt_thread_priority_table[ ]的链表插入,请问&rt_thread_priority_table的地址的链表是图中标注的红色链表地址吗?
野火论坛202305121917198102..png

回复

使用道具 举报

 楼主| 发表于 2023-5-15 16:18:56 | 显示全部楼层
有人吗?
管理员在吗?
水一水;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-1 15:55:59 | 显示全部楼层
1 调用的时候都是.next是因为一开始初始化的时候xx_prioity_table[].next和xx_priority_table[].prev中都是使用自身地址初始化的;
    l->prev里存的是&xx_prioity_table[],l->prev->next=n是把n存入了xx_prioity_table[].next;
    调用的xx_prioity_table[].next是第一个插入的优先级,也就是最早插入的优先级,这样有多个节点的话就等价于排队的队列先进先出;
    调用的xx_priority_table[].prev是最近插入的优先级,也就是最晚插入的优先级;
2 &rt_thread_priority_table[]就是图中标注的红色链表节点;
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:19 , Processed in 0.036068 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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