freertos代码分析之:全局链表

tedani tedani     2023-01-16     563

关键词:

注:有序插入:则根据xItemValue值从小到大(MAX:0xFF),排序插入

       无序插入:按照插入的时间先后顺序,从第一个节点到最后一个节点(vListEnd),依次插入

有序插入的执行时间较长,先后顺序即代表了执行的顺序,如CurrentTimerList上的当前节点,就是将最先执行的节点

无序插入的执行时间较短,如SuspendedTaskList上,只表示了一个集合(挂起态)

1、pxCurrentTimerList:                                         列表项为有序插入,vListInsert           。。。1、2两条链表的处理逻辑,待继续分析

2、pxOverflowTimerList:                                       列表项为有序插入,vListInsert           。。。1、2两条链表的处理逻辑,待继续分析

3、xTasksWaitingTermination:                             列表项为无序插入,vListInsertEnd     。。。

4、xPendintReadyList:                                          列表项为无序插入,vListInsertEnd     。。。

5、xSuspendedTaskList:                                      列表项为无序插入,vListInsertEnd      挂起态任务列表

6、pxOverflowDelayedTaskList:                           列表项为有序插入,vListInsert            延时溢出态任务列表

7、pxDelayedTaskList:                                         列表项为有序插入,vListInsert            延时态任务列表

8、pxReadyTaskLists[configMAX_PRIORITIES]:列表项为有序插入,vListInsert            就绪态任务列表

freertos数据结构--链表和链表项(代码片段)

结构体定义/*链表结构体*/typedefstructxLISTlistFIRST_LIST_INTEGRITY_CHECK_VALUE/*用于链表完整性检查*/configLIST_VOLATILEUBaseType_tuxNumberOfItems;/*记录链表项数目*/ListItem_t*configLIST_VOLATILEpxIndex;/*用于遍历链表,初始化会指向最后的链表项,这 查看详情

freertos高级篇4---freertos任务切换分析

  FreeRTOS任务相关的代码大约占总代码的一半左右,这些代码都在为一件事情而努力,即找到优先级最高的就绪任务,并使之获得CPU运行权。任务切换是这一过程的直接实施者,为了更快的找到优先级最高的就绪... 查看详情

freertos高级篇4---freertos任务切换分析

  FreeRTOS任务相关的代码大约占总代码的一半左右,这些代码都在为一件事情而努力,即找到优先级最高的就绪任务,并使之获得CPU运行权。任务切换是这一过程的直接实施者,为了更快的找到优先级最高的就绪... 查看详情

freertos之任务调度vportyield

freeRTOS支持多个任务具有相同的优先级,因此,当它被配置为可抢占内核时,调度算法既支持基于优先级的调度,也支持时间片轮流调度。任何时候调度器运行时它都选择处于就绪状态下的优先级最高的那个任务;如果有多个任... 查看详情

链表试题之链表分割(代码片段)

...链表的头指针ListNode*pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。链表分割思路分析代码实现structListNode*partition(pHead,x) //wri... 查看详情

esp32基础应用之freertos使用(代码片段)

文章目录前言1FreeRTOS任务的使用1.1任务状态1.2任务优先级1.3创建任务2FreeRTOS事件标志组的使用参考资料:《STM32F103FreeRTOS开发手册V1.1.pdf》前言1FreeRTOS任务的使用1.1任务状态FreeRTOS中的任务有运行态、就绪态、阻塞态、挂起态... 查看详情

freertos系列教程之第一章freertos概述与体验:1.1freertos目录结构(代码片段)

文章目录教程目录1.1FreeRTOS目录结构1.1FreeRTOS目录结构1.2核心文件1.3移植时涉及的文件1.4头文件相关1.4.1头文件目录1.4.2头文件1.5内存管理1.6Demo1.7数据类型和编程规范1.7.1数据类型1.7.2变量名1.7.3函数名1.7.4宏的名1.8安装Keil1.8.1下载K... 查看详情

freertos系列教程之第一章freertos概述与体验:1.1freertos的目录结构(代码片段)

文章目录教程目录1.1FreeRTOS目录结构1.1FreeRTOS目录结构1.2核心文件1.3移植时涉及的文件1.4头文件相关1.4.1头文件目录1.4.2头文件1.5内存管理1.6Demo1.7数据类型和编程规范1.7.1数据类型1.7.2变量名1.7.3函数名1.7.4宏的名1.8安装Keil1.8.1下载K... 查看详情

剑指offer十五之反转链表

一、题目  输入一个链表,反转链表后,输出链表的所有元素。二、思路   详细分析见代码注释三、代码publicclassSolution{    publicListNodeReverseList(ListNodehead){        if(h 查看详情

数据结构之链表(linkedlist)(代码片段)

数据结构之链表(LinkedList)(二)环形链表顾名思义环形列表是一个首尾相连的环形链表示意图循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。看一样著名的应用场景我们就可以用环... 查看详情

stm32cubemx之freertos(代码片段)

文章目录1STM32CubeMX参数配置及其说明1.1FreeRTOSMode1.2Configparameters1.2.1Kernelsetting1.2.2Memorymanagementsetting1.2.3Hookfunctionrelateddefinitions1.3创建任务Task和队列Queue1.3.1创建任务Task1.3.2创建队列Queue1.4FreeRTOSHeap 查看详情

freertosfreertos学习笔记—列表和列表项(链表和节点)(代码片段)

1、什么是列表和列表项?在FreeRTOS中存在着大量的基础数据结构列表和列表项的操作,要想读懂FreeRTOS的源码或者从0到1开始实现FreeRTOS,就必须弄懂列表和列表项的操作,其实也没那么难列表和列表项是直接从Free... 查看详情

死磕java集合之concurrentskiplistmap源码分析——发现个bug(代码片段)

...主要内部类内部类跟存储结构结合着来看,大概能预测到代码的组织 查看详情

轻量级操作系统freertos的内存管理机制

    上一篇文章"轻量级操作系统FreeRTOS的内存管理机制(一)"介绍了FreeRTOS多种内存管理机制中最简单的一种:全局声明一个静态数组ucHeap,然后通过指针偏移记录空间的分配情况,在这种内存机制下... 查看详情

精进之路之lru(代码片段)

原理LRU(Leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现1最常见的实现是使用一个链表保存缓存数据,详细算法实现... 查看详情

七,freertos之——队列同步与互斥(代码片段)

...栏参考韦东山,野火,正点原子以及其他博主的FreeRTOS教程,如若侵权请告知,马上删帖致歉,个人总结,如有不对,欢迎指正。转:同步与互斥概念理解link实验一:同步实验代码划重点创建队... 查看详情

力扣之删除中间节点(代码片段)

该题是力扣上面的一道难度为简单的题,虽然难度标志为简单,但是确实挺有意思的,下面就来分析分析这道题(原题传送门),题目描述如下:若链表中的某个节点,既不是链表头节点,也不是链... 查看详情

isr 中的 freertos 全局变量

】isr中的freertos全局变量【英文标题】:freertosglobalvariableinsideisr【发布时间】:2017-06-1101:28:58【问题描述】:我是RTOS新手,在理解一个奇怪的行为时遇到了一些麻烦:我有一个运行FreeRTOS的STM32微控制器,也有一个RTC中断正在运... 查看详情