推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

实验11_任务通知_轻量级信号量.docx

资料介绍

实验 11:任务通知 轻量级信号量

实验说明

实验概述

任务通知(Task Notification)是 FreeRTOS 提供的一种高效、轻量级的任务间通信机制。与信号量和队列相比,任务通知具有更快的执行速度(约快 45%)和更少的内存占用(无需创建独立的内核对象)。每个任务默认拥有一个 32 位的通知值,可以直接用于替代信号量、事件标志组甚至队列的部分功能。本实验演示如何使用任务通知替代计数型信号量,实现 ISR 与任务之间的同步。

实验原理

任务通知的底层实现利用了任务控制块(TCB)中内置的通知值字段,因此无需像信号量那样额外分配内核对象。xTaskNotifyGive() 用于递增任务的通知值,ulTaskNotifyTake() 用于等待并递减通知值。当通知值大于 0 时,ulTaskNotifyTake() 立即返回并递减;当通知值为 0 时,任务进入阻塞态。这种机制完美模拟了计数型信号量的行为,但效率更高。

关键知识点

1. 任务通知比信号量快约 45%,且节省 RAM

2. 每个任务默认有一个 32 位通知值,可作计数信号量使用。

3. 任务通知适合一对一通信,不适合一对多广播。

实验现象

模拟中断任务每 2 秒发送一次通知,处理任务接收通知并处理,可累积未处理事件。


部分文件列表

文件名 大小
实验11_任务通知_轻量级信号量.docx 38K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21下载积分 打赏60.00元   3天前

    用户:gsy幸运

  • 21下载积分 打赏70.00元   3天前

    用户:铁蛋锅

  • 21下载积分 打赏65.00元   3天前

    用户:xzxbybd

  • 21下载积分 打赏60.00元   3天前

    用户:jh0355

  • 21下载积分 打赏60.00元   3天前

    用户:w178191520

  • 21下载积分 打赏20.00元   3天前

    用户:jh03551

  • 21下载积分 打赏20.00元   3天前

    用户:sun2152

  • 21下载积分 打赏20.00元   3天前

    用户:kk1957135547

  • 21下载积分 打赏25.00元   3天前

    用户:w1966891335

  • 21下载积分 打赏20.00元   3天前

    用户:xuzhen1

  • 21下载积分 打赏15.00元   3天前

    用户:x15580286248

  • 21下载积分 打赏25.00元   3天前

    用户:pcb

  • 21下载积分 打赏20.00元   3天前

    用户:bhacker

  • 21下载积分 打赏15.00元   3天前

    用户:liqiang9090

  • 21下载积分 打赏25.00元   3天前

    用户:有理想666

  • 21下载积分 打赏15.00元   3天前

    用户:godbox

  • 21下载积分 打赏15.00元   3天前

    用户:aetek

  • 21下载积分 打赏5.00元   3天前

    用户:mulanhk

  • 21下载积分 打赏5.00元   3天前

    用户:JuneLin61

推荐下载