FreeRTOS筆記 列表和列表項

2021-10-05 22:10:30 字數 1825 閱讀 7901

1.列表結構體

2.minilistitem_t的結構體

3.列表項

4.列表初始化

1.列表初始化時,列表是空的,因此列表的pxindex是指向列表的尾的

2、3、4:初始化列表的xlistend

5:列表的列表項的數目為0

初始化完成功能以後,列表如下所示:

5.初始化列表項

1.此列表項暫時不屬於任何列表

6.列表項的插入

1.插入列表項的值,根據這個值才能確定要插入列表的位置

2.如果列表項的值是最大值,就把此列表項插到對尾

3.遍歷列表,找到列表項插入的位置

4.把列表項插入列表

5.設定列表項歸此列表

6.列表的列表項的數目加1

7.列表項的刪除

1.確定要刪除列表項的歸屬列表

2.通過操作鍊錶指向刪除列表項

3.如果列表的指向為要刪除的列表項,則列表指向要刪除列表項的前一項

4.要刪除的列表項的container指向空

5.列表的列表項數目減1

6.返回列表的列表項數目

7.列表的遍歷

1.列表指向的列表項的pvowner記錄為pxtcb;pxlist是遍歷的列表

2.列表的index指向下乙個列表項

3.如果列表的inxdex指向了xlistend,

4.列表的index指向下乙個列表項->列表頭的列表項

5.確認任務控制塊

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

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

FreeRTOS列表與列表項分析

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

FreeRTOS之列表與列表項

uxnumberofitems 記錄列表項的數量 pxindex 記錄當前列表項的索引號 xlistend 表示列表的結束 xitemvalue 列表項的值 pxnext 指向下乙個列表項 pxprevious 指向上乙個列表項 pvowner 記錄當前列表歸 誰 所有 pvcontainer 記錄...