当前位置: 首页 > news >正文

360网站seo青岛市网站建设

360网站seo,青岛市网站建设,浪子做的阿哲喊麦网站多少,投票网站怎么做freertos信号量之计数信号量 简介例程 简介 计数信号量(Counting Semaphore)用于管理共享资源的访问。以下是计数信号量的常用函数及其说明: 1)xSemaphoreCreateCounting(unsignedportBASE_TYPE uxMaxCount, unsignedportBASE_T…

freertos信号量之计数信号量

    • 简介
    • 例程

简介

计数信号量(Counting Semaphore)用于管理共享资源的访问。以下是计数信号量的常用函数及其说明:

1)xSemaphoreCreateCounting(unsignedportBASE_TYPE uxMaxCount, unsignedportBASE_TYPE uxInitialCount)
创建一个计数信号量。uxMaxCount参数指定计数信号量的最大值,即共享资源的数量;uxInitialCount参数指定计数信号量的初始值,即共享资源的可用数量。

2)xQueueCreateCountingSemaphore(unsignedportBASE_TYPE uxCountValue, unsignedportBASE_TYPE uxInitialCount):创建一个计数信号量。该函数与xSemaphoreCreateCounting()功能类似,但参数略有不同。

3)xSemaphoreTake(SemaphoreHandle_t xSemaphore, portTickType xBlockTime)
获取计数信号量。该函数会尝试获取计数信号量,如果计数信号量可用,则获取成功并立即返回;否则,如果计数信号量不可用,函数会阻塞调用任务,直到计数信号量可用或超时。

4)xSemaphoreGive(SemaphoreHandle_t xSemaphore)
释放计数信号量。该函数会将计数信号量的值加1,表示共享资源可用。如果有任务正在等待该共享资源,则其中一个任务将被唤醒并继续执行。

5)xSemaphoreGetCount(SemaphoreHandle_t xSemaphore)
获取计数信号量的当前值。该函数返回计数信号量的当前值,即0到uxMaxCount之间的一个整数值。

6)xSemaphoreDelete(SemaphoreHandle_t xSemaphore):删除一个计数信号量。该函数会释放与计数信号量关联的资源,并使计数信号量无效。

使用注意点:

计数信号量的值表示共享资源的可用数量。任务在使用完共享资源后,必须释放相应的计数信号量,以使其他任务可以继续使用共享资源。
计数信号量的最大值由uxMaxCount参数指定。当计数信号量的值达到最大值时,表示没有空闲共享资源可用。
可以通过xSemaphoreGetCount()函数获取当前可用的共享资源数量,以便任务根据实际情况做出相应处理。

例程

#include <FreeRTOS.h>  
#include <task.h>  // 定义计数信号量的初始状态为0  
static SemaphoreHandle_t countingSemaphore = 0;  void vATask( void * pvParameters )  
{  portTickType xDelay;  for( ;; )  {  // 任务进入临界区,获取计数信号量  xSemaphoreTake( countingSemaphore, ( portTickType ) 0 ); // 等待信号量大于0  // 临界区代码,访问共享资源  // ...  // 释放计数信号量,允许其他任务访问共享资源  xSemaphoreGive( countingSemaphore );  // 延时一定时间后再次进入临界区  xDelay = pdMS_TO_TICKS( 1000 ); // 延时1秒  portYIELD_WITHIN( xDelay );  }  
}

在上述示例中,任务vATask首先进入临界区并尝试获取计数信号量。如果计数信号量的值为零,任务会阻塞等待。一旦任务获取到计数信号量,就可以访问共享资源。当任务完成对共享资源的访问后,释放计数信号量,允许其他任务获取该资源。同时,任务进入临界区的代码执行完成后,会释放计数信号量,以便其他任务可以获取该资源。

http://www.yayakq.cn/news/986140/

相关文章:

  • 一家专门做印刷的网站河南网站优化推广
  • 女生wordpress网站适合wordpress 文件夹权限
  • 用php做美食网站有哪些湛江手机建站模板
  • 汽车网页设计作品欣赏seo软件推荐
  • 银铃建设通官方网站北京网站制作公司哪家好
  • 北京网站设计公司cg成都柚米科技15网页设计工资一般多少
  • 厦门广告公司网站建设忻州网站建设费用
  • 漯河市建设局网站英文字体设计网站
  • 中国万网轻云服务器 如何发布网站职业生涯规划大赛是干什么的
  • wap网站制作怎么做电商网站建设常见问题
  • 网站建设南阳wordpress做的网站效果
  • 特产网站建设的目的wordpress付费剧集网站
  • 帝国cms小说网站模板下载地址wordpress回复看内容
  • 百度站长工具怎么查排名服装库存管理软件
  • 网站建设可以自己建设服务器吗hexo框架做网站
  • 江西建设安全网站营销型网站规划
  • 沈阳网站建设策划做家装的网站有什么不同
  • 一站式网站建设顾问济南网页设计
  • 专业建设网站专家c 精品课程建设网站源程序
  • 新浪网站源代码网校网站建设方案
  • 简述网站设计基本流程郑州网站制作公司哪家好
  • 回龙观手机网站建设服务自己做的网站加载慢
  • 生态农业网站建设方案网站建设广找金手指排名贰肆
  • 程序员会搭建非法网站吗如何自己做直播网站
  • 环保网站 下载网站建设需要写语句吗
  • 软件大全链接网站如何登录微信公众号管理平台
  • 企业内部的网站系统最新wordpress 优化版
  • 像wordpress之类的框架网站优化总结报告
  • 网站建设标语文案书香气的域名做网站
  • 坪山网站建设机构对网站建设有什么样意见