FreeRTOS学习笔记—③RTOS内存管理篇(正在更新中)

二、RTOS的核心功能

RTOS的核心功能块主要分为任务管理、内核管理、时间管理以及通信管理4部分,框架图如下所示:

(1)任务管理:负责管理和调度任务的执行,确保系统中的任务能够按照预期运行。

(2)内核管理:负责系统核心功能的管理,包括内存、中断、异常处理和系统启动等。

(3)时间管理:负责所有与时间相关的操作,包括系统时钟、定时器、任务延迟和周期性任务的执行。

(4)通信管理:提供任务之间的通信机制,确保任务能够有效地协作和共享资源。

2.2 内存管理

源码中对应了5种内存管理的方法,如下所示。不过在了解这5种方式前,需要对TCBStack 有个认识。

(1)TCB :即任务控制块 ,是操作系统用来管理每个任务的信息结构体。每个任务(或线程)在RTOS中都会有一个对应的TCB。TCB中存储了任务的所有关键信息,用于操作系统对任务的调度、状态管理和上下文切换。通常TCB包含如①任务ID:每个任务的唯一标识符。②任务状态:例如就绪、运行、阻塞、挂起等状态。③程序计数器(PC):保存任务执行的当前指令位置。④寄存器状态:保存任务执行时CPU的寄存器值。⑤任务优先级:用于任务调度中的优先级信息。⑥任务栈指针:指向任务的栈空间,保存任务的栈信息。⑦任务上下文信息:保存任务切换时的上下文信息,如寄存器内容等。

(2)Stack :即 , 是每个任务用来存储其运行时局部变量、函数调用链和返回地址等信息的内存空间。对于RTOS,每个任务通常都有自己独立的栈空间,这样可以确保任务之间的执行互不干扰。

相关推荐
JoneMaster15 分钟前
[读书日志]从零开始学习Chisel 第八篇:Scala的集合(敏捷硬件开发语言Chisel与数字系统设计)
开发语言·学习·scala
垂杨有暮鸦⊙_⊙1 小时前
有限元分析学习——Anasys Workbanch第一阶段笔记(8)水杯案例的对称与轴对称处理
笔记·学习·有限元分析
RickyWasYoung1 小时前
【笔记】Simulink与Workbench交互2:for循环内解决Constant模块无法赋值问题
笔记
Fiona.y1 小时前
Linux系统常用指令学习
linux·服务器·学习
LeoZY_2 小时前
CH348结合开源ModBus协议组成串口温度采集服务器
运维·笔记·嵌入式硬件·开源
杂货铺的小掌柜2 小时前
spring mvc源码学习笔记之十
学习·spring·mvc
JaneZJW2 小时前
江科大STM32入门——IIC通信笔记总结
c语言·笔记·stm32·单片机·嵌入式硬件·嵌入式·iic
JaneZJW2 小时前
江科大STM32入门——SPI通信笔记总结
笔记·stm32·单片机·嵌入式硬件·嵌入式·spi
studyForMokey3 小时前
【Android项目学习】2.抖音二级评论
android·学习
咬光空气3 小时前
Qt 5.14.2 学习记录 —— 오 信号与槽机制(2)
开发语言·qt·学习