FreeRTOS之列表與列表項

2021-10-09 11:01:25 字數 864 閱讀 3957

uxnumberofitems 記錄列表項的數量

pxindex 記錄當前列表項的索引號

xlistend 表示列表的結束

xitemvalue 列表項的值

pxnext 指向下乙個列表項

pxprevious 指向上乙個列表項

pvowner 記錄當前列表歸「誰」所有

pvcontainer 記錄此列表項歸「哪個」列表

xitemvalue 列表項的值

pxnext 指向下乙個列表項

pxprevious 指向上乙個列表項

以xstatelistitem為例,當建立乙個任務後,xstatelistitem的pwowner變數就指向這個任務的任務控制塊,表示xstatelistitem屬於此任務。當任務就緒態後,xstatelistitem的變數pvcontainer就指向就緒列表,表示此列表項在就緒列表中。

通俗的講:小王在上二年級,他的父親是老王。小王是列表項老王是pvowner屬性值,二年級是pvcontainer屬性值

定義列表: list_t testlist;

定義列表項: listitem_t listitem1;

vlistinitialise(&testlist); 初始化列表

vlistinitialiseitem(&listitem1); 初始化列表項

vlistinsert(&testlist,&listitem1); 新增列表項

1uxlistremove(&listitem1); 刪除列表項

1testlist.pxindex = testlist.pxindex ->pxnext;

1vlistinsertend(&testlist,&listitem1); 在末尾新增列表項 結束

FreeRTOS列表與列表項分析

本部落格中部分,來自 freertos開發手冊 正點原子 列表與列表項是freertos中的之中的資料結構。列表的底層實際是使用鍊錶實現的。乙個簡單的列表與列表項如下圖 需要注意的是,列表並不是鍊錶,也不是列表項的集合,而是乙個結構體。列表的定義如下 typedef struct xlist lis...

FreeRTOS筆記 列表和列表項

1.列表結構體 2.minilistitem t的結構體 3.列表項 4.列表初始化 1.列表初始化時,列表是空的,因此列表的pxindex是指向列表的尾的 2 3 4 初始化列表的xlistend 5 列表的列表項的數目為0 初始化完成功能以後,列表如下所示 5.初始化列表項 1.此列表項暫時不屬...

FreeRTOS 列表和列表項原始碼分析

前面在排程器啟動之前先建立了兩個任務,乙個啟動任務乙個空閒任務,然後排程器會跳到啟動任務去執行。在分析任務建立的原始碼之前,需要先分析一下列表和列表項,建立任務實際上就是初始化任務的各個成員變數 即初始化任務控制塊的成員 在初始化完後這個任務就會進入到就緒狀態,等待排程器來執行它,其中任務控制塊就有...