首页 > 其他分享 >3.1任务创建-列表&列表项&初始化

3.1任务创建-列表&列表项&初始化

时间:2022-12-27 21:00:44浏览次数:43  
标签:初始化 指向 LIST 列表 pxNext 3.1 CHECK

 前言: FreeRTOS内核调度大量使用了列表(list)和列表项(list item)数据结构,对于FreeRTOS内核来说,列表就是它最基础的部分

一、列表

  与C语言链表类似。

  •  (1)、(5)行是宏检查列表的完整性,默认不开启的,暂时无用的
  •  (2)中 uxNumberOfItems 为列表项的数量
  •  (3)中 pxIndex 记录当前列表项的索引号,用于遍历列表
  •  (4)中 xListEnd 用来指定列表当中最后一个列表项

可用以下示例图表示

二、列表项

  •  (1)、(7)中listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE与listSECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE用于检测列表项的完整性
  •  (2) xItemValue:当前列表项的值
  •  (3) pxNext:指向下一个列表项
  •  (4)pxPrevious:指向上一个列表项(实现双向列表)
  •  (5)pvOwner:记录列表项的拥有者(归属TCB)
  •  (6)pvContainer:记录列表项归属列表

三、迷你列表项

列表项的阉割版(主要是节省资源),列表中最后一个列表项使用的是迷你列表项

  • (1)listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE用于检测迷你列表项的完整
  • (2)xItemValue:用于记录列表项值
  • (3)pxNext:指向下一个列表项
  • (4)pxPrevious:指向上一个列表项

四、列表的初始化

  • (1)列表索引指向列表项
  • (2)设置为最大可能值
  • (3)、(4)、(5)列表项xListEnd的pxNext和pxPrevious指针指向了它自己,空列表
  • (6)、(7)设置为已知值,用于检测列表数据是否完整

 初始化列表,由于列表项的数量为0,所以大多数据被初始化为0,各种指针指向xListEnd

五、列表项的初始化

 

标签:初始化,指向,LIST,列表,pxNext,3.1,CHECK
From: https://www.cnblogs.com/CC-C/p/17008854.html

相关文章

  • 欢迎加入Apache Mina高性能通信框架研究邮件列表.
    一直到现在,我都没有发现国内讨论ApacheMina高性能通信框架研究的好地方。我也经常被网友问起一些有关ApacheMina高性能通信框架研究相关的问题,有些问题是很基本的网络编......
  • Microsoft 365 解决方案:如何通过Powershell获取所有Private Channel及其成员列表
    Blog链接:​​​https://blog.51cto.com/13969817​​如上一篇​​Blog​​所分享,PrivateChannel是私有频道,只有Teams中属于PrivateChannel的所有者或成员的用户才能访问该......
  • Chapter_3_列表简介
    #In[1]"""3.1列表是什么?"""bicycles=['tiek','cannondale','redline','specialized']print(bicycles[0].title())print(bicycles[-1])"""3.2修改、添加和删除元......
  • Chapter_4_操作列表
    #In[1]magicians=['alice','david','carolina']foriinmagicians:print(i)'''4.1.1深入地研究循环'''a=list(range(1,10,2))print(a)print(sum(a))'''----......
  • Python中的列表条件求和方法
    列表条件求和方法 list_data=[[1.0,'配件','522422','铝扣板用纽扣','金色','',72.0,'PC',''],[2.0,'配件','500031','十字槽沉头自钻自攻螺钉4......
  • cocos2d-x 3.1 集成 云风pbc
    cocos2d-x3.x版本变动比较大,从改用cmake管理整个项目,到使用python集成一体化的项目工具。这些都是我喜欢的,我可以很容易的在我的ubuntu上面搭建环境,而且根本就不用考虑IDE......
  • beego阅读源码走通数据库的初始化
    一般初始化数据库会在main的运行的时候第一步进行,常用的方式dbhost:=beego.AppConfig.String("dbhost")dbport:=beego.AppConfig.String("dbport")dbu......
  • 列表搜索(过滤)
    在有些项目中,一些没分页的搜索功能需要做,搜索一般分为精确搜索和模糊搜索。搜索也要叫过滤,一般用filter来实现。consta=[1,2,3,4,5,7,23,12]constresult=a.filter(i......
  • C++11:列表初始化
    在C++98/03中,对象初始化方法有很多种,如下代码所示://初始化列表inti_arr[3]={1,2,3};//普通数组structA{intx;structB{inti;......
  • phonegap3.1.0自学笔记01_命令行界面(CLI)简单使用
    要使用phonegap的CLI必须首先安装好phonegap,phonegap的安装还请参看我的另外一篇文章:​​windows7搭建phonegap3Android开发环境​​。本篇文章介绍CLI的简单使用,由于本人......