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 記錄...