uCOS-iii学习笔记(11)——任务信号量和任务消息队列

2023-05-16

理解:

任务信号量、任务消息队列是跟随任务创建而来的,不需要额外创建,并且他和多值信号量、消息队列有一些不同,多值信号量他们是建立于1对多得关系,而我们的任务信号量还有任务消息队列是建立在多对一或者一对一的关系下的,这样可以更好的控制任务的执行顺序。

一、任务信号量发布、等待

OSTaskSemPost ((OS_TCB *)&Task_2_TCB,
										 (OS_OPT  )OS_OPT_POST_NONE,
										 (OS_ERR *)&err);

/*
    参数:
    1、就是你要发给哪个任务
    2、发完之后是否进行调度,一般就用默认
    3、错误值
*/


OSTaskSemPend ((OS_TICK )0,
									 (OS_OPT  )OS_OPT_PEND_BLOCKING,
									 (CPU_TS *)0,
									 (OS_ERR *)&err);
/*
    参数:
    1、超时选项
    2、是否阻塞
    3、是否拿哪个时间戳
    4、错误值
*/

二、任务消息队列的发布、等待

OSTaskQPost ((OS_TCB     *)&Task_2_TCB,
									 (void       *)"i love you rick",
									 (OS_MSG_SIZE )sizeof("i love you rick"),
									 (OS_OPT      )OS_OPT_POST_FIFO,
									 (OS_ERR     *)&err);


/*
    参数:
    1、发布给哪个任务
    2、发送的消息体,可以是结构体啥都行,因为这里是void * 类型
    3、发送的消息大小
    4、发送的模式
    5、错误值
*/

p_Msg = OSTaskQPend ((OS_TICK      )0,
								         (OS_OPT       )OS_OPT_PEND_BLOCKING,
								         (OS_MSG_SIZE *)&msg_size,
								         (CPU_TS      *)0,
								         (OS_ERR      *)&err);

/*
    参数:
    1、超时值
    2、是否是阻塞等待
    3、输出参数,消息的大小
    4、时间戳要不要
    5、错误值
*/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uCOS-iii学习笔记(11)——任务信号量和任务消息队列 的相关文章

  • Vi/Vim 编辑器常见命令

    Vim的三种模式 经过以上的使用演示 xff0c 我们体验到了Vim编辑器的三种工作模式 xff1a 一般模式 xff08 normal mode xff09 xff1a 一般模式用来浏览文本 xff0c 查找内容 xff0c 但是不可以编
  • make oldconfig && make prepare

    Ubuntu编译开发板驱动时遇到 mac 64 mac virtual machine driver test test 1 ls led test Makefile mac 64 mac virtual machine driver te
  • 【Linux】资源查看top显示信息说明|top、iftop、iotop、htop、atop工具

    目录 一 Top 1 Top返回结果说明 统计信息区说明 进程信息区说明 2 Top交互操作 更改显示项目 更改排序顺序 过滤 3 top使用格式 4 附常用操作命令 二 查看磁盘 IO 性能 1 1 top 命令 1 2 sar 命令 1
  • raw_copy_to_user和 copy_to_user区别

    mac 64 ubuntu driver test 1 driver make make C home mac driver test preparation linux nano 5 2 tf M 61 home mac driver t
  • 以镜像的方式备份整张TF卡备份

    准备 待备份的TF卡 读卡器 Linux电脑 需在Linux系统下操作 xff0c 电脑磁盘空间需大于TF卡存储空间 步骤 1 插入TF卡 xff0c 执行以下命令 xff0c 查看TF卡磁盘号 sudo parted l 1 2 在roo
  • Linux scp命令

    Linux scp命令 菜鸟教程 Linux scp命令 Linux 命令大全 Linux scp 命令用于 Linux 之间复制文件和目录 scp 是 secure copy 的缩写 scp 是 linux 系统下基于 ssh 登陆进行安
  • stm32+mxl90614测温+蓝牙app数据实时显示折线图+syn6288语音播报体温+oled显示

    设计要求 xff1a stm32主控 mxl90614实现测温功能 蓝牙发送数据到手机app界面实时显示数据变换 xff0c 折线图形式 syn6288语音播报当前体温数据 效果展示 qq1633003977 源码 链接 xff1a htt
  • HY-SRF05超声波测距模块的使用

    HY SRF05超声波测距模块的使用 测距模块介绍 VCC和GND 接电源的正负极 xff0c 也可接单片机的5V或3 3V xff0c 注意与单片机共地Trig xff1a 触发控制信号输入 通过这个引脚输入10us以上的高电平触发信号
  • SG90 180°舵机的使用

    SG90 180 舵机的使用 SG90的介绍 舵机是一种位置 xff08 角度 xff09 伺服的驱动器 xff0c 适用于需要角度不断变化并可以保持的控制系统 xff0c 可以根据控制信号来输出指定的角度 xff08 常见的有0 90 0
  • 蓝牙模块的使用

    蓝牙模块的连接与使用 蓝牙模块的介绍 蓝牙模块可通过与单片机的串口相连 xff0c 借助电脑或手机的蓝牙与单片机实现异步全双工通信 常见的蓝牙模块有HC 05主从一体蓝牙模块 HC 06从机蓝牙模块 低功耗BLE蓝牙模块 cc2540或cc
  • PID算法的原理和公式

    PID算法的原理和公式 64 PID PID算法原理 P xff1a 即Proportion xff0c 输入偏差乘以比例常数I xff1a 即Integral xff0c 对输入偏差进行积分运算D xff1a 即Derivative xf
  • PID控制器中的常见问题

    PID控制器中的常见问题 64 PID PID各部分的作用 P控制器 P控制器不能让稳态误差为零 xff0c 然而随着增大 K p Kp K p 参数 xff0c 可以减小稳态误差 稳态误差是系统从一个稳态过渡到新的稳态 xff0c 或系统
  • PID串级控制

    PID串级控制 64 PID 串级控制的基本环路模型 串级控制包含了主控制器和从控制器两个独立的部分 xff0c 其中从控制器的控制变量是由主控制器回路得到的 xff0c 主控制决定了次控制回路的设定值 即从控制器的设定值是主控制器的的输出
  • ocos 信号量

    信号量分为 xff1a 声明信号量 互斥信号量 转 xff1a ucos ii学习笔记 信号量的原理 ucos ii学习笔记 信号量的原理及使用 include 34 INCLUDES h 34 define TASK STK SIZE 5
  • PID调谐方法:根据开环响应特性调谐(一)

    PID调谐方法 xff1a 根据开环响应特性调谐 xff08 一 xff09 64 PID Ziegler Nichols method xff1a 首先将积分和微分增益设置为0 xff0c 然后比例增益从零开始逐渐增加 xff0c 直到到
  • PID调谐方法:根据开环响应特性调谐(二)

    PID调谐方法 xff1a 根据开环响应特性调谐 xff08 二 xff09 64 PID 齐格勒 尼科尔斯和科恩 库恩方法的一个问题是 xff0c 它们会产生一组相当激进的增益 xff0c 这可能导致不稳定 xff08 或稳定性裕度降低
  • STM32 串口的使用

    STM32 串口的使用 以串口调试助手为例 64 STM32基本外设 串口介绍 USART Universal Synchronous Asynchronous Receiver and Transmitter 通用同步异步收发器 是一 个
  • 中断里使用延时函数

    中断里使用延时函数 64 STM32和MSP432常见问题 STM32 在实际应用中发现 xff0c 在STM32的中断里使用延时函数HAL Delay Delay 容易出现问题 与SysTick中断的优先级 xff0c 故采用while
  • Python中的PID库

    Python中的PID库 64 树莓派学习笔记 PID 加入了条件积分抗积分饱和 xff0c 加入了一阶低通滤波滤除高频噪声 链接 xff1a https github com EduardoNigro Things DAQ Code bl
  • 数字信号处理上机实验一

    数字信号处理上机实验一 给定信号 x n 61

随机推荐

  • 如何使用arduino 更改传感器寄存器的内容,这里以更改MLX90614的地址为例

    这里参考了这篇文章 xff08 ARDUINO使用MLX90614红外温度传感器研究笔记 雨田大大的博客 CSDN博客 mlx90614红外传感器 xff09 xff0c 构建了一个修改地址的程序关于crc校验的部分 xff08 CRC x
  • linux网络编程之udp

    这里写目录标题 UDP服务器代码UDP客服端代码结果 UDP服务器代码 ucp ser c span class token macro property span class token directive hash span span
  • 【Jetson Orin NX 开发板烧录启动系统】

    64 英伟达Jetson Orin NX 开发板上市有一段时间了 xff0c 其中16G套件能提供100TOPS算力 xff0c 性能是上一代Jetson Xavier NX 的 5 倍 其启动系统安装于之前Jetpack SD 烧录完全不
  • 起航-GitLens使用

    目录 GitLens 插件功能介绍准备工作开始使用加入暂存区 xff0c 和取消修改操作取消暂存区 xff0c 取消add操作加入到本地分支 xff0c 提交到远程提交记录远程被修改提示分支合并功能管理所有分支记录工作区暂存 GitLens
  • 在Docker环境下使用ROS

    在Docker环境下使用ROS Docker安装 参考 https docs docker com install linux docker ce ubuntu 卸载老旧版本 sudo apt get remove docker docke
  • 嵌入式linux项目之智能仓储(基于正点原子IMX6ULL开发板)

    基于正点原子的IMX6ULL开发板的智能仓储项目 提示 xff1a 该项目根据华清远见智能仓储项目改版 xff0c 将他的A9开发板换成了自己的IMX6ULL开发板 同时等我将该项目整个流程完成之后 xff0c 会为大家附上适配正点原子li
  • STM32电路知识学习

    STM32最小系统板电路知识学习 单片机最小系统是指用最少的电路组成单片机可以工作的系统 xff0c 通常最小系统包含 xff1a 电源电路 时钟电路 复位电路 调试 下载电路 xff0c 对于STM32还需要启动选择电路 总之 xff0c
  • ubuntu18.04运行vins-fusion跑通自己的数据集

    博主是双目加imu 命令 xff1a xff08 一定要记得改成自己的路径哦 xff09 cd catkin ws source devel setup bash roslaunch vins vins rviz launch source
  • 17.C语言 常见面试题

    嵌入式工程师必备0x10到题目 宏定义 1 用预处理指令 define声明一个常数 xff0c 用于表明1年中有多少秒 define 宏名 宏体 宏名 xff1a 大写字母表示 define SECOND OF YEAR 365 24 36
  • 自动控制原理第一章

    开环控制系统 xff1a 输入量与输出量没有反向联系 被控量 xff08 输出信号 xff09 xff0c 系统在特定输入下的输出称系统对该输入的响应 控制量 xff08 输入信号 xff09 给定值 扰动 xff1a 破坏控制量与被控量正
  • 利用Mavros控制无人机

    准备 xff1a 1 ubuntu18 04 2 Qgc 3 Mavros 4 ROS 5 PX4 Mavros安装 xff1a 参考安装链接 xff1a Ubuntu18 04安装px4 43 mavros xff08 解决mavros报
  • 5分钟搭建MySQL监控平台(mysql-exporter+Prometheus+Grafana)

    一 工具介绍 Prometheus 普罗米修斯可以简单理解为一个监控工具 xff0c 以时间为单位展示指定数据维度的变化 趋势 span style color fe2c24 strong mysqld exporter strong sp
  • Prometheus环境搭建

    实验环境 xff1a 准备三台虚拟机 xff0c 本文用Centos7为例 xff1b 我这里所使用的的虚拟机地址分别为 xff1a 主机名 xff1a IP prometheus weme 192 168 10 63 agent weme
  • 无人机飞控系统硬件设计

    目录 一 飞行控制系统简介 1 飞控系统功能分析 2 飞控系统基本原理 3 飞控系统的组成部分 3 1 地面部分 3 2 中央处理器 3 3 传感器模块 3 4 传输定位模块 二 飞控系统硬件平台设计 一 飞行控制系统简介 1 飞控系统功能
  • Ubuntu20.04中怎么更换源都不行install或者update始终报错,解决方案

    更换源后安装或者更新依旧报错 xff0c 试试下面两种方法 xff0c 亲测可行 方法一 xff1a 静态ip改成动态ip 如果ip是静态改成动态ip后 xff0c 重新在试试apt update 1 vi etc netplan 00 i
  • AlphaGo 引发的中国象棋之路

    笔者是一位多年的象棋爱好者 xff0c 早在2005 xff0c 中国象棋有款软件奇兵1 04 xff0c 当时打败特级大师于幼华 xff0c 又打败了柳大华 xff0c 后期软件和计算机硬件的发展 xff0c 象棋软件又有了质的飞越 xf
  • linux驱动IO模型

    1 非阻塞 当应用层读取驱动中的数据时 xff0c 无论数据是否准备号 xff0c 都需要立即返回 open 34 dev mycdev 34 O RDWR O NOBLOCK 非阻塞方式打开 默认打开方式为阻塞方式打开 O NOBLIOC
  • ROS学习(一)工作空间,功能包,节点

    本文主要介绍建立一个功能包 xff0c 一个publisher结点 xff0c 实现话题的发布 一工作空间 1创建所需的文件夹 mkdir ros cd ros mkdir src 2工作空间的初始化 cd src catkin init
  • NVIDIA Jetson Xavier NX搭建pytorch gpu环境(超详细)

    NVIDIA Jetson Xavier NX开发套件在搭建tensorflow gpu环境时可以使用指令直接安装或者官网下载whl文件安装 作者在安装pytorch环境时总是安装不上gpu版本 报错 AssertionError Torc
  • uCOS-iii学习笔记(11)——任务信号量和任务消息队列

    理解 xff1a 任务信号量 任务消息队列是跟随任务创建而来的 xff0c 不需要额外创建 xff0c 并且他和多值信号量 消息队列有一些不同 xff0c 多值信号量他们是建立于1对多得关系 xff0c 而我们的任务信号量还有任务消息队列是