野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4164|回复: 7

[freertos] 请教各位老师,书籍里面代码解释

[复制链接]
发表于 2022-2-24 09:34:37 | 显示全部楼层 |阅读模式
刚学FreeRTos这两天再琢磨火哥从0到1教你写FreeRTos内核的代码,看到了几处不理解。希望大家给答疑。

代码

代码

回复

使用道具 举报

 楼主| 发表于 2022-2-24 09:35:59 | 显示全部楼层
发表太快还没说清楚。上图是例程,后续根据示意图理解,
野火论坛202202240935475726..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-24 09:38:35 | 显示全部楼层
代码中的1 2 3 4 分别对应示意图的 1 2 3 4 ,其他几条都能理解和图示相同,但是第三条,为什么是pxIndex->pxPrevious->pxNext = pxNewListItem;,按照图示应该是PxNext指向插入的节点地址。那不是应该是pxIndex->pxNext = pxNewListItem;
回复 支持 反对

使用道具 举报

发表于 2022-2-27 11:44:25 | 显示全部楼层
将一个节点插入到一个双向循环链表的尾部,最直接的方式就是插入链表头节点的previous指向的位置,
野火论坛202202271143155103..png
在链表头节点的前面插入,所以这里使用的是前插法,所以不会操作头节点的pxNext指针
回复 支持 反对

使用道具 举报

发表于 2022-2-28 07:33:42 来自手机 | 显示全部楼层
将第三步的pxIdex换成pxNewListItem就对了,代码写错了
回复 支持 反对

使用道具 举报

发表于 2022-2-28 07:42:01 来自手机 | 显示全部楼层
你的疑问是因为你看到了示意图中要这样操作,而代码要求适应循环操作的逻辑,当链表为空和链表中有成员,都得适用这套逻辑
回复 支持 反对

使用道具 举报

发表于 2022-2-28 07:53:37 来自手机 | 显示全部楼层
你把xLIST_ITEM画到xLIST的左面,按照代码步骤画线连接,你就容易懂了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-18 10:44:58 | 显示全部楼层
梦落雨深 发表于 2022-2-28 07:53
你把xLIST_ITEM画到xLIST的左面,按照代码步骤画线连接,你就容易懂了

谢谢老哥
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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