• freeRTOS中文实用教程3--中断管理之中断服务例程中使用队列


    1.前言

     消息队列不仅可以用于事件通信,还可以用来传递数据

    2.实例说明消息队列的执行过程

    3.主要API

    API名称 说明 参数 返回值
    xQueueSendFromISR()完全等同于 xQueueSendToBackFromISR()
     

    xQueue

    目标队列的句柄。这个句柄即是调用 xQueueCreate()
    创建该队列时的返回值。


    pvItemToQueue

    发送数据的指针。其指向将要复制到目标队列中的数据
    单元。由于在创建队列时设置了队列中数据单元的长度,所以会从该指针指向的空间复制对应长度的数据到队列的
    存储区域。

    pxHigherPriorityTaskWoken 对某个队列而言,可能有不止一个任务处于阻塞态在等待其数据有效。调用 xQueueSendToFrontFromISR()xQueueSendToBackFromISR()会使得队列数据变为有效,所以会让其中一个等待任务切出阻塞态。如果调用这两个 API 函数使得一个任务解除阻塞,并且这个任务的优先级高于当前任务(也就是被中断的任务),那
    API 会在函数内部将*pxHigherPriorityTaskWoken
    pdTRUE。如果这两个 API 函数将此值设为 pdTRUE,则在中断退
    出前应当进行一次上下文切换。这样才能保证中断直接
    返回到就绪态任务中优先级最高的任务中。


    1. pdPASS
    返回 pdPASS 只会有一种情况, 那就是数据被成功发送
    到队列中。


    2. errQUEUE_FULL
    如 果 由 于 队 列 已 满 而 无 法 将 数 据 写 入 , 则 将 返 回
    errQUEUE_FULL

    xQueueReceiveFromISR()
         

    注:xQueueSendToFrontFromISR()xQueueSendToBackFromISR()xQueueReceiveFromISR()
    分别是 xQueueSendToFront()xQueueSendToBack()xQueueReceive()的中断安全
    版本,专门用于中断服务例程中

  • 相关阅读:
    vs2010 + .net3.5 MSCharts使用介绍与例子
    TFS服务连接TF31002 出错
    SharePoint CAML 通过时间查询
    SharePoint2010项目总结汇总
    jquery 获取和设置 select下拉框的值
    How to Create Multilingual Webpart in SharePoint 2010 (C# 方式)
    sharepoint母版页固定宽度与纵向滚动条靠右边(修改版)
    JavaScript进行GET和POST请求
    端口简介大全
    程序员学习能力提升三要素
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/7932260.html
Copyright © 2020-2023  润新知