freeRTOS中文实用教程3--中断管理之中断服务例程中使用队列
1.前言
消息队列不仅可以用于事件通信,还可以用来传递数据
2.实例说明消息队列的执行过程

3.主要API
| API名称 | 说明 | 参数 | 返回值 |
| xQueueSendFromISR()完全等同于 xQueueSendToBackFromISR() |
xQueue 目标队列的句柄。这个句柄即是调用 xQueueCreate() pvItemToQueue 发送数据的指针。其指向将要复制到目标队列中的数据 pxHigherPriorityTaskWoken 对某个队列而言,可能有不止一个任务处于阻塞态在等待其数据有效。调用 xQueueSendToFrontFromISR()或 xQueueSendToBackFromISR()会使得队列数据变为有效,所以会让其中一个等待任务切出阻塞态。如果调用这两个 API 函数使得一个任务解除阻塞,并且这个任务的优先级高于当前任务(也就是被中断的任务),那 |
1. pdPASS 2. errQUEUE_FULL |
|
| xQueueReceiveFromISR() |
注:xQueueSendToFrontFromISR(), xQueueSendToBackFromISR()与 xQueueReceiveFromISR()
分别是 xQueueSendToFront(), xQueueSendToBack()与 xQueueReceive()的中断安全
版本,专门用于中断服务例程中
freeRTOS中文实用教程3--中断管理之中断服务例程中使用队列的更多相关文章
- freeRTOS中文实用教程3--中断管理之中断嵌套
1.前言 最新的 FreeRTOS 移植中允许中断嵌套.中断嵌套需要在 FreeRTOSConfig.h 中设置configKERNEL_INTERRUPT_PRIORITY 和configMAX_S ...
- freeRTOS中文实用教程4--资源管理互斥
1.前言 访问一个被多任务共享,或是被任务与中断共享的资源时,需要采用”互斥”技术以保证数据在任何时候都保持一致性.这样做的目的是要确保任务从开始访问资源就具有排它性,直至这个资源又恢复到完整状态 F ...
- freeRTOS中文实用教程5--内存管理
1.前言 不同的嵌入式系统具有不同的内存配置和时间要求.所以单一的内存分配算法只可能适合部分应用程序. FreeRTOS 将内存分配作为可移植层面(相对于基本的内核代码部分而言).这使得不同的应用程序 ...
- freeRTOS中文实用教程4--资源管理概述
1.前言 多任务系统中存在一种潜在的风险.当一个任务在使用某个资源的过程中,即还没有完全结束对资源的访问时,便被切出运行态,使得资源处于非一致,不完整的状态 2.并发抢占导致错误的场景 (1)访问外设 ...
- freeRTOS中文实用教程3--中断管理之计数信号量
1.前言 在中断不频繁的系统中,使用二值信号量没有问题,但是中断频繁发生时,则会有中断丢失的问题. 因为中断发生时延迟任务执行,延迟任务执行的过程中,如果又来了两次中断,则只会处理第一次,第二次将会丢 ...
- freeRTOS中文实用教程3--中断管理之延迟中断处理
1.前言 嵌入式实时操作系统需要对整个系统环境产生的事件作出响应.可以采用中断方式也可以采用轮询方式来进行处理.如果采用中断方式,则希望ISR(中断服务例程)的处理时间越短越好. 注:必须说明的是,只 ...
- freeRTOS中文实用教程6--错误排查
1.前言 本章主要是为刚接触FreeRTOS 的用户指出那些新手通常容易遇到的问题.这里把最主要的篇幅放在栈溢出以及栈溢出侦测上 2.printf-stdarg.c 当调用标准C 库函数时,栈空间使用 ...
- freeRTOS中文实用教程1--任务
1.前言 FreeRTOS是小型多任务嵌入式操作系统,硬实时性.本章主要讲述任务相关特性及调度相关的知识. 2. 任务的总体特点 任务的状态 (1)任务有两个状态,运行态和非运行态 (2)任务由非运行 ...
- freeRTOS中文实用教程2--队列
1.前言 freeRTOS中所有任务的通信和同步机制都是基于队列来实现. 2.队列的特点 图 队列的读写操作 队列的数据存储 (1)队列可以保存有限个具有确定长度的数据单元,队列可以保存的最大单元数目 ...
随机推荐
- 【BZOJ3551】【BZOJ3545】 【ONTAK2010】 Peaks (kruskal重构树+主席树)
Description 在\(Bytemountains\)有\(~n~\)座山峰,每座山峰有他的高度\(~h_i~\). 有些山峰之间有双向道路相连,共\(~m~\)条路径,每条路径有一个困难值 ...
- cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例
cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...
- [luogu2114][起床困难综合症]
luogu2114 思路 因为位运算对于每一位是独立的,所以对每一位都对这n个数进行操作,然后观察最后得出的是1还是0.并且保证每一位拼起来之后要比m小. 代码 #include<cstdio& ...
- MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)
图像二值化.反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域. 实现过程如下: close all; %关闭当前所有图形窗口 ...
- eclipse如何以指定JDK启动
eclipse如何以指定JDK启动 2018年01月11日 14:30:23 buerc 阅读数:11179 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- 洛谷 P3956 棋盘(BFS)
传送门:Problem P3956 https://www.cnblogs.com/violet-acmer/p/9827010.html 题解: BFS 相关变量解释: color[maxn][ma ...
- java基础基础总结----- 常用DOS命令(一)
常用DOS命令 dir(directory):列出当前目录下的文件以及文件夹 mkdir (make directory) : 创建目录 rd (remove directory): 删除目录 cd ...
- ping的作用
Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP工具.它主要的功能是用来检测网络的连通情况和分析网络速度. Ping有好的善的一面也有恶的一面.先说一 ...
- ElasticSearch集群介绍二
ElasticSearch集群 一个运行中的 Elasticsearch 实例称为一个 节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力. ...
- Python Machine Learning-Chapter3
Chapter 3:A Tour of Machine Learning Classifiers Using Scikit-learn 3.1:Training a perceptron via sc ...