void vListInitialiseItem( ListItem_t *constpxItem ) 功能:初始化列表条目指针 参数: pxItem列表条目指针 void vListInsertEnd( List_t *constpxList, ListItem_t *constpxNewListItem ) 功能:把pxNewListItem插入到pxList末尾 参数: pxList 列表指针 p
vListlnitialiseltem(): vListlnsert(): uxListRemove(): FreeRTOS源码阅读记录。期望与大家分享学习过程中的经验教训,互相学习成长。阅读记录中可能有些地方理解不是很恰当,欢迎批评指正。 概要: list.c文件是FreeRTOS操作系统中的一个核心组件,负责实现列表数据结构。列表在FreeRTOS中用于存储和管理任务控制块(TCB...
list.c文件: 链表节点的初始化: vListInitialiseItem:用于初始化普通节点。 vListInitialise:用于初始化头节点,设置链表的基本参数。 链表节点的操作: vListInsertEnd:在链表末尾添加新节点。 uxListRemove:删除链表中的节点。 vListInsert:按升序在链表中插入新节点。 链表状态的管...
TickType_t 是类型uint32_t或uint16_t,由portmacro.h中的configUSE_16_BIT_TICKS定义;参数xItemValue,用来做排序,一般降序;后面的lists.c文件中的函数void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )会用到。 pxNext和pxPrevious为xLIST_ITEM指针变量,分别指向下一个xLIST_...
前面了解了 FreeRTOS 的内存管理,接下来看看任务调度,这也是一个操作系统中最重要的一部分,而其任务调度大量使用了链表(list.c 实现),调度器使用链表跟踪不同状态下的任务(就绪、挂起、延时的任务,都会被挂接到各自的链表中),所以这里用一定篇幅介绍下主要供调度使用的链表文件是如何组织的。
FreeRTOS从简单的List入手 版本:FreeRTOS V9.0.0 前言:打开List.c文件来看,200多行,并不是很多,详细看内容,其实就是一个双向链表的增和删 ->删除流程 1.结构体List_t typedefstructxLIST{listFIRST_LIST_INTEGRITY_CHECK_VALUE/*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is se...
FreeRTOS 中的 list.c 和 list.h 文件是核心组件,用于构建链表数据结构。在生成 FreeRTOS 代码时,可在 "Middlewares" 目录下的 "Third_Party" 文件夹找到这些文件。在 list.h 文件中定义了链表节点的三种形式:普通节点 (xLIST_ITEM)、精简节点 (xMINI_LIST_ITEM) 和头节点 (xLIST)。链表实质...
Freertos C 列表= 链表 List 列表项 = 节点 List_Item C语言链表 单链表 List 链表 Next 节点指针 (用来指向下一个节点) Node0 节点号 节点本身还可以携带一些私有信息 一般用法 内嵌到一个数据结构里面 通常的做法是节点里面只包含一个用于指向下一个节点的指针。要通过链表存储的数据内嵌一个节点即可,这些要...
与列表相关的全部东西都在文件 list.c 和 list.h 中。在 list.h 中定义了一个叫 List_t 的结构体,如下: (1) 和 (5) 、这两个都是用来检查列表完整性的 , 需要将宏 configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES 设置为 1,开启以后会向这两个地方分别 添加一个变量 xListIntegrityValue1 和 xList...
既然知道列表与列表项的重要性,那么我们来解读FreeRTOS中的list.c与list.h的源码吧。从头文件lsit.h开始,看到定义了一些结构体: struct xLIST_ITEM { listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /* <如果configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES设置为1,则设置为已知值。*/ ...