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

做期货主要看哪个网站武汉seo关键词优化

做期货主要看哪个网站,武汉seo关键词优化,网站制作公司 信科网络,重庆最便宜的网站建设目录 一、简介 二、 事件控制块 三、相关API 四、 应用场景 一、简介 在FreeRTOS中,使用信号量可以实现同步,但是使用信号量来同步的话任务只能与单个的任务进行同步。有时候某个任务可能会需要与多个任务进行同步,此时信号量就无能为力。…

目录

一、简介

二、 事件控制块

三、相关API

四、 应用场景


 

一、简介

        在FreeRTOS中,使用信号量可以实现同步,但是使用信号量来同步的话任务只能与单个的任务进行同步。有时候某个任务可能会需要与多个任务进行同步,此时信号量就无能为力。FreeRTOS为此提供了一个可选的解决方法,那就是事件标志组。

        FreeRTOS中的事件标志组(Event Groups) 是一种任务间同步机制,允许多个任务通过设置或等待标志位来同步彼此的行为。每个事件标志组由一组32 位的二进制标志组成,其中每一位标志位可以表示某个事件的状态(0 或 1),任务可以对这些标志进行设置、清除、等待,进而实现更灵活的任务间通信和同步。       

 

二、 事件控制块

        在 FreeRTOS 中,事件标志组(Event Group)控制块是对事件标志组进行管理和操作的核心数据结构。它存储了事件标志组的状态以及操作这些标志位所需的所有信息。每当创建事件标志组时,FreeRTOS 会为其分配一个控制块(即事件组的句柄),该控制块负责管理事件标志组的标志位及其相关的任务同步信息。

 

三、相关API

         事件标志组的使用一般包含创建事件、置位事件标志、等待事件标志、清除事件标志和删除事件。

1.创建事件

  • xEventGroupCreate() 
  • 无参数,创建成功返回事件句柄;创建失败返回 NULL。

 

 2.置位事件(置1)

  • xEventGroupSetBits(xEventGroup, uxBitsToSet)
  • 参数为事件句柄xEventGroup和需要置位的位,0x08置位位3(00001000),0x09置位位8和位0(00001001)。
  • 当位被置位之后,阻塞在该位上的任务将会被解锁。

3.中断服务例程(ISR)中的置位事件

4.等待事件

 

  • 等待时间xTicksToWait取0~portMAT_DELAY(0表示不等待, portMAT_DELAY表示一直等待)。

 

5.清除事件 (置0)

  •  若在上述等待事件并获取事件标志位时没有选择清除相应的位(复位,置0),则要使用这里的清除事件的函数来清除要清除的位。

 

6.删除事件

  • vEventGroupDelete(xEventGroup) 
  • 参数为事件句柄。
  • 该函数不允许在中断里面使用。
  • 当事件组被删除之后,阻塞在该事件组上的任务都会被解锁,并向等待事件的任务返回为0的事件组的值。

 

四、应用场景

 

同步多个任务

        在这个场景中,任务 A 必须等待任务 B 和任务 C 完成各自的操作,然后再继续执行。如下:


EventGroupHandle_t xEventGroup;                         //定义一个事件句柄
xEventGroup = xEventGroupCreate();                      //创建事件标志组
if (xEventGroup == NULL)                                //判断是否创建成功
{//处理创建失败的情况
}void vTaskA(void *pvParameters)                         //任务A
{EventBits_t uxBits;                                 //定义EventBits_t类型的变量uxBits = xEventGroupWaitBits(xEventGroup,(1 << 0) | (1 << 1),   //等待任务B、C完成(位0、位1被置位)pdTRUE,                //清除标志位pdTRUE,                //等待所有位portMAX_DELAY);        //无限期等待//任务B和C完成后继续执行接下来的操作}void vTaskB(void *pvParameters)                         //任务B
{//执行某些操作xEventGroupSetBits(xEventGroup, (1 << 0));          //操作完成,置位事件组的位0
}void vTaskC(void *pvParameters)                         //任务C
{//执行某些操作xEventGroupSetBits(xEventGroup, (1 << 1));          //操作完成,置位事件组的位1
}

2.等待任意一个事件发生

         在这个场景中,只需通过设置 xWaitForAllBits 参数为 pdFALSE 即可实现。

http://www.hrbkazy.com/news/41318.html

相关文章:

  • 做网站被骗算诈骗吗百度seo运营工作内容
  • 免费logo设计网址网站用户体验优化
  • 我在日本做动画视频网站广告文案经典范例200字
  • 延庆区住房和城乡建设委员会网站seo网页优化培训
  • 成都网站建设维护盐城seo培训
  • .tel域名不可以做网站域名吗长沙 建站优化
  • 谁知道美国做的色情网站app推广注册赚钱
  • 做代理记账网站2023百度秒收录技术
  • 车身做网站宣传图电商网站建设价格
  • 手机做wifi中继上外国网站东莞建设企业网站
  • wordpress专题功能福州seo优化
  • 寺院网站模板如何优化企业网站
  • 做网站用那个浏览器百度最新秒收录方法2023
  • 网站建设 财务归类爱链网中可以进行链接买卖
  • 做网站公司300元钱百度seo怎么查排名
  • 吴江公司网站建设电话自动交换友情链接
  • 咸鱼网站交易付款怎么做如何进行搜索引擎优化
  • 中国最近新闻大事件网站优化检测工具
  • 做网站一个程序员够吗近期时政热点新闻20条
  • 襄阳做公司网站的软件公司一键优化大师
  • 网站建设有免费的空间吗搜索引擎优化怎么做的
  • 重庆市建立网站的网络公司网站域名解析
  • 做国外wordpress賺钱seo优化是啥
  • 网站商城首页怎么做吸引人seo排名优化技术
  • 合肥企业模板建站站外引流推广渠道
  • 国家外汇局网站做预付报告无代码免费web开发平台
  • 济南网站建设找大标济南计算机培训机构哪个最好
  • 网站上的动效是用ae做的今日刚刚发生的军事新闻
  • 应用之星制作app软件官网深圳知名网络优化公司
  • 企业名录采集器济南seo网络优化公司