小羊先生car头像
关注
暑假总结(rots学习内容)封面图

暑假总结(rots学习内容)

目录

一、RTOS 基础概念与任务模型

二、任务调度与时间管理

三、任务同步与通信

四、临界区、中断和优先级管理

五、FreeRTOS 内核底层

六、内存管理与低功耗

1:内存管理

2:低功耗

七:汇总


RTOS 内容可以分成 6 类。这样比按实验日期回顾更清楚

一、RTOS 基础概念与任务模型

主要内容:

  • RTOS 和裸机程序的区别
  • 调度器的作用
  • 抢占式调度
  • 时间片轮转
  • 优先级
  • SysTick 和系统节拍
  • vTaskStartScheduler()
  • 任务创建、删除、挂起和恢复
  • 动态任务和静态任务

核心理解:

任务负责功能
调度器负责决定谁运行
SysTick提供时间节拍
优先级决定抢占关系

二、任务调度与时间管理

主要内容:

  • vTaskDelay()
  • 相对延时
  • vTaskDelayUntil()
  • 绝对延时
  • 周期任务
  • 任务运行时间统计
  • 任务状态查询
  • 软件定时器
  • Tickless 低功耗

重点区别:

相对延时:
从当前时刻开始等待

绝对延时:
按照固定时间点周期运行,适合采样和周期任务

三、任务同步与通信

主要内容:

  • 队列
  • 二值信号量
  • 计数信号量
  • 互斥锁
  • 事件组
  • 队列集
  • 任务通知

可以按用途记:

机制主要作用
队列传递数据
二值信号量同步事件
计数信号量统计资源数量或事件次数
互斥锁保护共享资源
事件组等待多个事件组合
队列集同时等待多个队列或信号量
任务通知轻量级任务间通信

项目1中的应用:

ADC DMA中断 → 任务通知 → AcquireTask
AcquireTask → 队列 → LogTask
多个任务访问寄存器 → 互斥锁

四、临界区、中断和优先级管理

主要内容:

  • 临界区
  • 中断安全 API
  • 中断优先级
  • FromISR 系列函数
  • PendSV
  • SVC
  • SysTick
  • 任务切换
  • 中断嵌套
  • 临界段保护
  • 优先级翻转

重点理解:

普通任务中:
    使用普通 FreeRTOS API

中断服务函数中:
    使用 FromISR API

临界区:
    暂时禁止任务切换或中断,保护短时间关键操作

你截图里的“临界段保护及任务调度器挂起”“中断管理”“任务挂起和恢复”都属于这一类。

五、FreeRTOS 内核底层

这是你暑假学习里比较深入的一部分。

主要内容:

  • vTaskStartScheduler() 启动过程
  • SVC 启动第一个任务
  • SysTick 产生系统节拍
  • PendSV 触发任务切换
  • TCB 任务控制块
  • 就绪列表和延时列表
  • pxCurrentTCB
  • MSP 和 PSP 双栈
  • CPU 寄存器现场保存与恢复
  • R0~R3、R12、LR、PC、xPSR
  • FPU 懒保存机制
  • 任务插入和删除链表
  • list_tlist_item_t
  • heap_1heap_5

任务切换可以简化成:

SysTick到来
    ↓
判断是否需要切换任务
    ↓
触发PendSV
    ↓
保存当前任务上下文
    ↓
选择下一个最高优先级就绪任务
    ↓
恢复下一个任务上下文
    ↓
继续运行

这部分说明你不只是会调用 API,也理解 Cortex-M 如何完成任务切换。

六、内存管理与低功耗

1:内存管理

学习了:

  • 堆和栈
  • 动态任务内存
  • heap_1
  • heap_2
  • heap_3
  • heap_4
  • heap_5
  • 内存碎片
  • 首次分配和释放
  • 多内存区域
  • SRAM1、SRAM2、CCM等内存区域

大致区别:

heap_1:
只分配,不释放

heap_2:
可以分配和释放,但容易产生碎片

heap_3:
调用系统malloc/free

heap_4:
支持合并空闲块,较常用

heap_5:
支持多个不连续内存区域

2:低功耗

学习了:

  • 空闲任务
  • configUSE_TICKLESS_IDLE
  • WFI
  • WFE
  • Sleep
  • Stop
  • Standby
  • Tickless低功耗
  • 中断唤醒

核心逻辑:

没有任务需要运行
    ↓
进入Idle任务
    ↓
关闭或减少SysTick唤醒
    ↓
执行WFI进入低功耗
    ↓
外部中断或定时事件唤醒

七:汇总

可以压缩成:

RTOS概念
→ 任务创建和调度
→ 延时和时间管理
→ 队列与信号量
→ 互斥锁和事件组
→ 中断与任务通信
→ 优先级和临界区
→ 任务切换底层
→ 内存管理
→ 软件定时器
→ Tickless低功耗

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2301_82190326/article/details/165008681

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--