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

网站 建设需求wordpress 页码

网站 建设需求,wordpress 页码,加速游戏流畅的软件,wordpress任务插件freertos信号量之二值信号量 简介例程 简介 FreeRTOS的二值信号量(Binary Semaphore)是用于实现进程间同步和临界资源保护的重要工具。以下是一些二值信号量的常用函数及其说明: 1)xSemaphoreCreateBinary() 创建一个二值信号量…

freertos信号量之二值信号量

    • 简介
    • 例程

简介

FreeRTOS的二值信号量(Binary Semaphore)是用于实现进程间同步和临界资源保护的重要工具。以下是一些二值信号量的常用函数及其说明:

1)xSemaphoreCreateBinary()
创建一个二值信号量。该函数接受一个无符号整型参数,用于指定信号量的初始值。如果初始值为0,则表示信号量未被占用;否则,表示信号量已被占用。

2)xSemaphoreTake(SemaphoreHandle_t xSemaphore, portTickType xBlockTime)
获取二值信号量。该函数会尝试获取信号量,如果信号量可用,则获取成功并立即返回;否则,如果信号量不可用,函数会阻塞调用任务,直到信号量可用或超时。xBlockTime参数指定阻塞时间,单位为系统时钟节拍数。

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

4)xSemaphoreGetCount(SemaphoreHandle_t xSemaphore)
获取二值信号量的当前值。该函数返回信号量的当前值,即0或1。

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

使用注意点
二值信号量只有两个状态,0和1,因此只能用于简单的同步和资源保护场景。
二值信号量不支持优先级继承,因此不会出现优先级反转的问题。
在释放信号量时,需要注意保证调用xSemaphoreGive()函数的代码能够正确执行,否则可能导致信号量无法释放而引起死锁。

例程

#include <FreeRTOS.h>  
#include <task.h>  // 定义二值信号量的初始状态为0  
static SemaphoreHandle_t binarySemaphore = 0;  void vATask( void * pvParameters )  
{  portTickType xDelay;  for( ;; )  {  // 任务进入临界区,保护临界资源  xSemaphoreTake( binarySemaphore, ( portTickType ) 0 ); // 等待信号量变为1  // 临界区代码,保护临界资源  // ...  // 释放信号量,使信号量状态变为0,允许其他任务或中断服务程序进入临界区  xSemaphoreGive( binarySemaphore );  // 延时一定时间后再次进入临界区  xDelay = pdMS_TO_TICKS( 1000 ); // 延时1秒  portYIELD_WITHIN( xDelay );  }  
}  void vAnInterruptServiceRoutine( void )  
{  
// 中断服务程序中获取二值信号量,保护中断服务程序的代码不被打断  
xSemaphoreTakeFromISR( binarySemaphore, &xHigherPriorityTaskWoken );  
// 中断服务程序代码,保护中断服务程序的代码不被打断  
// ...  
// 中断服务程序释放二值信号量,允许任务进入临界区  
xSemaphoreGiveFromISR( binarySemaphore, &xHigherPriorityTaskWoken );  
}

在上述示例中,任务vATask首先进入临界区并等待二值信号量。当二值信号量的状态为0时,任务会阻塞等待。一旦任务进入临界区,就可以执行保护临界资源的代码。当任务完成临界区代码后,释放二值信号量,使其状态变为0,允许其他任务或中断服务程序进入临界区。

在中断服务程序中,也可以使用二值信号量来保护中断服务程序的代码不被打断。当低优先级的中断发生时,中断服务程序会获取二值信号量并快速处理少部分工作。一旦中断服务程序完成工作,就会释放二值信号量,允许高优先级的中断或任务进入临界区。


文章转载自:

http://RDKxEvi6.wztLr.cn
http://BrP5j6bd.wztLr.cn
http://5tKUMDDX.wztLr.cn
http://rpyspLMV.wztLr.cn
http://idsbJcN7.wztLr.cn
http://NzQl1eAt.wztLr.cn
http://21mSodKP.wztLr.cn
http://9ptwUD9D.wztLr.cn
http://GfJWnYOt.wztLr.cn
http://sYg0X9kz.wztLr.cn
http://YgsQAuqk.wztLr.cn
http://AhlVLlKG.wztLr.cn
http://fam4drW7.wztLr.cn
http://6hoBOKiw.wztLr.cn
http://zQxdWsxS.wztLr.cn
http://YjHC4JlU.wztLr.cn
http://5himeciO.wztLr.cn
http://YtRqe77p.wztLr.cn
http://6jUoPkI6.wztLr.cn
http://O9dnZBj7.wztLr.cn
http://YWo886Tx.wztLr.cn
http://qCSKcTD4.wztLr.cn
http://yfJ5WykR.wztLr.cn
http://eRTys4VF.wztLr.cn
http://PnxIObR1.wztLr.cn
http://D12WxQS3.wztLr.cn
http://fjztJK7D.wztLr.cn
http://M7iCExo8.wztLr.cn
http://nuQrJx12.wztLr.cn
http://PSb2aVps.wztLr.cn
http://www.dtcms.com/wzjs/767607.html

相关文章:

  • 长沙企业网站设计百度关键词点击价格查询
  • 最牛的SEO教程网站物业公司排名2020最新排名
  • 免费flash网站源码水煮鱼wordpress模板
  • 电影网站内页中国企业商务网站建设
  • 温州 网站优化搜狗 优化网站
  • 网站建设伍金手指下拉3免费 片
  • 企业网站备案 淘宝客怎么查询网站建设期
  • 海南学校网站建设网站建设与推广合肥
  • 英文网站案例好的用户体验网站 学校
  • 深圳松岗 网站建设最良心的网页传奇
  • 网页建站软件重庆网站建设技术外包
  • 湖南省城乡和住房建设厅网站wordpress支付宝微信支付
  • 网站开发是什么环境百度字体如何转换wordpress
  • 传奇网站模板免费下载福建省建设资格注册管理中心网站
  • PHP网站建设的课后笔记flash网站动画
  • 泉州开发网站的公司有哪些局域网小网站网站建设软件
  • 有模版之后怎么做网站怎样免费建公司网站
  • 泗阳网站定制如何做淘宝商城网站设计
  • 官方网站开发与定制公司logo标志设计免费
  • 网站建设柒金手指花总11建设摩托车官方旗舰店
  • 网站规划书市场分析wordpress需要什么配置文件
  • 建设公司网站源码常州便宜的做网站服务
  • 网络文学网站开发如何做服装的微商城网站建设
  • 做网站的费用会计分录做网站需要哪些钱
  • 潍坊网站建设 中公asp+php+mysql+aspx环境搭建与6种网站安装2
  • 自己做视频网站资源从哪里来wordpress修改文章页面模板
  • 网站建设公司广告标题语白银市建设管理处网站
  • 做网站什么主题比较好wordpress 支付宝捐赠
  • 高质量的常州网站建设甘肃省建设信息平台
  • 网站开发工具特点总结域名备案和网站备案有什么区别