FreeRTOS——任务通知

news2024/9/25 9:28:09

一、任务通知

1.1 任务通知简介

任务通知:用来通知任务的,任务控制块中的结构体成员变量 ulNotifiedValue就是这个通知值

(1)使用队列、信号量、事件标志组时都需另外 创建一个结构体 ,通过中间的结构体进行间接通信

(2)使用任务通知时,任务结构体TCB中就包含了内部对象,可以直接接收别人发过来的"通知" 

 只要合理,灵活的利用任务通知的特点,可以在一些场合中替代队列、信号量、事件标志组

优点:

(1)效率高使用任务通知向任务发送事件或数据比使用队列、事件标志组或信号量快得多

(2)占用内存更小使用其他方法时都要先创建对应的结构体,使用任务通知时无需创建结构体

缺点:

(1)无法发送数据给中断ISR没有任务结构体,所以无法给ISR发送数据。但是ISR可以使用任务通知的功能,发数据给任务

(2)无法广播给多个任务任务通知只能是被指定的一个任务接收并处理(一对一

(3)无法缓存多个数据任务通知是通过更新任务通知值来发送数据的,任务结构体中只有一个任务通知值,只能保持一个数据

(4)发送受阻不支持阻塞发送方无法进入阻塞状态等待

1.2 任务通知值和通知状态

注:这两个成员变量均为数组

任务通知值:

任务通知状态:

 二、相关API

任务通知API函数主要有两类:①发送通知 ②接收通知

注意:发送通知API函数可以用于任务和中断服务函数中接收 通知API函数只能用在 任务中。

(1)发送通知函数

函数

描述

xTaskNotify()

发送通知,带有通知值

xTaskNotifyAndQuery()

发送通知,带有通知值并且保留接收任务的原通知值

xTaskNotifyGive()

发送通知,不带通知值,此函数会将接收任务的通知值加一,常用于信号量

xTaskNotifyFromISR()

在中断中发送任务通知

xTaskNotifyAndQueryFromISR()

vTaskNotifyGiveFromISR()

 注:uxIndexToNotify:任务通知相关数组的成员,实际上就是TCB中任务通知数组的第一个元素(下标为0)

(2)接收通知

函数

描述

ulTaskNotifyTake()

获取任务通知,可以设置在退出此函数的时候将任务通知值清零(模拟二值信号量)或者减一(模拟计数型信号量)

当任务通知用作二值信号量或者计数信号量的时候,使用此函数来获取信号量

xTaskNotifyWait()

获取任务通知,比 ulTaskNotifyTak()更为复杂,可获取通知值和清除通知值的指定位

 总结:

1. 当任务通知用作于信号量时,使用函数获取信号量:ulTaskNotifyTake()

2. 当任务通知用作于事件标志组或队列时,使用此函数来获取: xTaskNotifyWait()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1910073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文华财经多空波段均线交易黄金分割线指标公式源码

文华财经多空波段均线交易黄金分割线指标公式源码: 多:EMA(C,3),COLORYELLOW; 空:EMA(C,5),COLOR00FF00; 均衡:EMA(空,5),COLORWHITE; VARF1:COUNT(CROSS(多,均衡),2)1; VARF2:COUNT(CROSS(空,均衡),2)1; ZAI:FILTER(VARF1 AND VARF2,2); DRAWTEXT(ZAI,均衡*…

浅谈VPS主机上的数据库性能优化

如何提高网站性能?一个显而易见的解决方案是升级托管账户。您的网站将拥有更多硬件资源,因此可以同时处理更多请求并更快地传递数据。 无论如何,人们都是这么认为的。但事实总是不一样。 现代网站是一个复杂的系统,包含许多必须…

迅狐抖音机构号授权矩阵系统源码

在数字化营销的浪潮中,抖音以其独特的短视频形式迅速崛起,成为品牌传播和用户互动的重要平台。迅狐抖音机构号授权矩阵系统源码作为一项创新技术,为品牌在抖音上的深度运营提供了强大支持。 迅狐抖音机构号授权矩阵系统源码简介 迅狐抖音机…

7/8 复盘

后端数据传输? 后端代码的耦合:打点调用、方法调用、接口、继承。 Dao、Service、servlet(controller)各层的作用? Dao负责与数据库交互,执行SQL语句,例如简单的增删改查等等。(要创建对应的接口和实现类…

从RL的专业角度解惑 instruct GPT的目标函数

作为早期chatGPT背后的核心技术,instruct GPT一直被业界奉为里程碑式的著作。但是这篇论文关于RL的部分确写的非常模糊,几乎一笔带过。当我们去仔细审查它的目标函数的时候,心中不免有诸多困惑。特别是作者提到用PPO来做强化学习,…

企业为什么需要透明加密软件?5款透明加密软件推荐

透明加密技术(Transparent Encryption)是一种自动化的数据加密方法,旨在保护敏感数据不受未经授权的访问,而无需用户进行任何显式操作。 透明加密技术通常在操作系统或文件系统级别工作,实时加密和解密数据。这意味着…

RK3568------Openharmony 4.0-Release 浏览器部署安装

RK3568------Openharmony 4.0-Release 浏览器部署安装 文章目录 RK3568------Openharmony 4.0-Release 浏览器部署安装前言一、DevEco Studio开发工具安装与使用二、浏览器(Browser)样例代码编译三 、浏览器(Browser)部署四、遇到的问题五、效果展示总结 前言 上一篇文章讲解了…

AUTOSAR NM介绍

AUTOSAR NM介绍 NM简介 NM是Network Management的简称,是出于具体总线网络管理模块与ComM之间的适配层,为ComM提供所有总线网络管理的服务。在AUTOSAR BSW 层中,其上层是通信管理模块(ComM),下层是具体总线网络管理模块(如CanNm,J1939Nm,FrNm,LinNm,UdpNm等)。 为…

国内AI大模型技术深度解析与前沿应用探索

在人工智能的浪潮中,AI大模型正以其强大的数据处理能力和学习潜力,成为技术创新和产业升级的核心驱动力。本文将深入探讨国内AI大模型的技术特点、应用实践以及未来发展趋势。 技术架构与创新 国内AI大模型技术主要基于以下几个核心架构: T…

AI:助力开发者翱翔,而非抢夺其舞台

在当今这个科技飞速发展的时代,人工智能(AI)犹如一股春风,悄然渗透进全球各个行业,尤其在软件开发领域,其影响力日益显著。从初创企业到跨国巨头,无一不在积极探索AI如何重塑编程的面貌&#xf…

Resid核心问题总结(三)

什么是缓存击穿?该如何解决 缓存击穿是指一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个完好无…

第三届图像处理、目标检测与跟踪国际学术会议(IPODT 2024,8月9-11)

第三届图像处理、目标检测与跟踪国际学术会议(IPODT 2024)将于2024年8月9-11日在中国南京召开。 本次会议旨在为全球的研究人员、工程师、学者和业界专家提供一个展示和讨论图像处理、目标检测与跟踪最新进展的平台,促进这些领域的科研与技术…

WebRTC群发消息API接口选型指南!怎么用?

WebRTC群发消息API接口安全性如何?API接口怎么优化? WebRTC技术在现代实时通信中占据了重要地位。对于需要实现群发消息功能的应用程序来说,选择合适的WebRTC群发消息API接口是至关重要的。AokSend将详细介绍WebRTC群发消息API接口的选型指南…

设置和取消Excel“打开密码”的3种方法

在日常工作中,Excel文件中常常包含敏感数据。为了防止未经授权的访问,给Excel文件设置打开密码是一个非常有效的方法。下面分享3种设置Excel打开密码的方法,以及如何取消这些密码。 先来看看设置Excel打开密码的3种方法。 方法一&#xff1…

PMP--计算--挣值分析

文章目录 挣值分析进度一、本质二、关键概念三、衍生概念四、练习 成本一、本质二、关键概念三、衍生概念 小结软考真题 预测技术深入理解一、概念二、填空大法真题1真题2真题3真题4 三、预测-二维图 真题真题1真题2 概念大全 挣值分析 是将范围、进度、成本整合起来进而客观测…

68.SAP FICO - 记账码学习

在会计中,“借”和“贷”是记账符号,代表了记账的方向。而在SAP中却没有大家熟知的记账符号“借”和“贷”,那SAP中如何录入凭证呢?其实,SAP通过记账码来实现记账方向的控制。 定义 记账码是由两个字符组成的…

如何在 Microsoft Edge 上使用开发人员工具

Microsoft Edge 提供了一套强大的开发人员工具,可帮助 Web 开发人员检查、调试和优化他们的网站或 Web 应用程序。 无论您是经验丰富的 Web 开发人员还是刚刚起步,了解如何有效地使用这些工具都可以对开发过程产生重大影响。 在本文中,我们…

华为、H3C、锐捷、思科四大设备厂商交换机配置命令总结合辑

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 一直以来,对于华为、H3C、锐捷、思科交换机的命令配置,不断的有朋友留言,四…

idea提交代码或更新代码一直提示token然后登陆失败无法提交或者更新代码

最近因为换了电脑需要对开发环境做配置, 遇到了这个问题, 应该是因为我们用到了gitlab,默认的最新的idea会有gitlab插件 强制录入gitlab的token,如果gitlab不支持token的验证那么问题就来了 , 不管怎么操作都无法提交或…

孟德尔随机化--代谢生活方式与消化道癌

写在前面 今天阅读的文献是多种暴露与某结局的孟德尔随机化,算是以量取胜了。 The effect of metabolism-related lifestyle and clinical risk factors on digestive system cancers in East Asian populations: a two-sample Mendelian randomization analysis …