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

网站搜索功能设计网站运营招聘要求

网站搜索功能设计,网站运营招聘要求,国内全屋定制十大名牌,广州网站制作联系方式一、什么是任务通知 FreeRTOS从版本V8.2.0开始提供通知这个功能,每个任务都有一个32位的通知值。按照官方说法,使用消息通知比通过二进制信号量方式解除阻塞任务快45%,且更加省内存(无需创建队列)。 (也就…

一、什么是任务通知

FreeRTOS从版本V8.2.0开始提供通知这个功能,每个任务都有一个32位的通知值。按照官方说法,使用消息通知比通过二进制信号量方式解除阻塞任务快45%,且更加省内存(无需创建队列)。

                        (也就是说,一个任务被创建的时候,就会有一个任务通知)

在大多数情况下,任务通知可以替代二值信号量,计数信号量,事件标志组,可以替代长度位1的队列(可以保存一个32位整数或指针数),并且任务通知速度更快,使用的RAM更少!

任务通知值的更新方式

FreeRTOS提供以下几种方式发送通知給任务:

  • 发送消息给任务,如果有通知未读,不覆盖通知值
  • 发送消息给任务,直接覆盖通知值
  • 发送消息给任务,设置通知值的一个或者多个位
  • 发送消息给任务,递增通知值

通过以上方式合理使用,可以在一定场合下替代原本的队列,信号量,信号标志组等。

任务通知的优势
  1. 使用任务通知向任务发送事件或数据,比使用队列、事件标志组或信号量快得多
  2. 使用其它方法时都要先创建对应的结构体,使用任务通知时无需额外创建结构体

任务通知的劣势

  1. 只有任务可以等待通知,中断服务函数中不可以,一位中断没有TCB。(任务创建时内存开辟的空间)
  2. 通知只能一对一,因为通知必须指定任务。
  3. 等待通知的任务可以被阻塞,但是发送消息的任务,任何情况下都不会被阻塞等待。
  4. 任务通知时通过更新任务通知值来发送数据的,任务结构体中只有一个任务通知值,只能保持一个数据。

二、相关API函数

1.发送通知

函数描述
xTaskNotify()发送通知,带有通知值
xTaskNotifyAndQuery()发送通知,带有通知值并且保留接受任务的原通知值
xTaskNotifyGive()发送通知,不带有通知值
xTaskNotifyFromISR()在中断中发送任务通知
xTaskNotifyAndQueryFromISR()在中断中发送任务通知
xTaskNotifyGiveFromISR()在中断中发送任务通知

 

BaseType_t xTaskNotify (TaskHandle_t xTaskToNotify,uint32_t ulValue,eNotifyAction eAction );

参数:

xTaskToNotify:需要接收通知的任务句柄;

ulValue:用于更新接收任务通知值,具体如何更新由形参eAction决定;

eAction:一个枚举,代表如何使用任务通知的值;

枚举值描述
eNoAction发送通知,但不更新值(参数ulValue未使用)
eSetBits被通知任务的通知值按位或ulValue。(某些场景下可代替事件组,效率更高)
elncrement被通知任务的通知值加1(参数ulValue未使用),相当于xTaskNotifyGive (信号量)
eSetValueWithOverWrite被通知任务的通知值设置为ulValue。(某些场景下可代替xQueueOverwrite,效率更高)(队列覆写)
eSetValueWithoutOverwrite

如果被通知的任务当前没有通知,则被通知的任务的通知值设为ulValue。

如果被通知任务没有取走上一个通知,由接收到一个通知,则这次通知值丢弃,在这种情况下视为调用失败并返回pdFALSE

(某些场景下可带起xQueueSend,效率更高)

(没有被取走,就会阻塞等待)

返回值:

前面四个的返回值,都是pdPASS,最后一个,当通知没有取走,就会返回pdFALSE,否则返回pdPASS。

  

BaseType_t xTaskNotifyAndQuery (TaskHandle_t xTaskToNotify,uint32_t ulValue,eNotifyAction eAction,uint32_t *pulPreviousNotifyValue);

 

参数:

xTaskToNotify:需要接收通知的任务句柄;

ulValue:用于更新接收任务通知值,具体如何更新由形参eAction决定;

eAction:一个枚举,代表如何使用任务通知的值;

pulPreviousNotifyValue:对象任务的上一个任务通知值,如果为NULL,则不需要回传,这个时候就像前面一个函数xTaskNotify()。

返回值:

当通知没有取走,就会返回pdFALSE,否则返回pdPASS。

BaseType_t xTaskNotifyGive (TaskHandle_t xTaskToNotify);

参数:

xTaskToNotify:需要接收通知的任务句柄,且让其自身的任务通知值加1;

返回值:

总是返回pdPASS。

 2.等待通知

等待通知API函数只能用在任务,不可应用于中断中!

函数描述
xTaskNotifyTake()获取任务通知,可以设置在退出此函数的时候将任务通知值清零或者减一。当任务通知用作二值信号量或者计数信号量的时候,使用此函数来获取信号量。
xTaskNotifyWait() 获取任务通知,比xTaskNotifyTake()更为复杂,可获取通知值和清除通知值的指定位
uint32_t xTaskNotifyTake (BaseType_t xClearCountOnExit,TickType_t xTicksToWait);

参数:

xClearCountOnExit:指定在成功接收通知后,将通知值清零或减一,pdTRUE:把通知值清零(相当于二值信号量);pdFALSE:把通知值减一(计数型信号量);

xTicksToWait:阻塞等待任务通知值的最大时间;

返回值:

0:接收失败

非0:接收成功,返回任务通知的通知值

uint32_t xTaskNotifyWait (uint32_t ulBitsToClearOnEntry,uint32_t ulBitsToClearOnExit,uint32_t *pulPreviousNotifyValue,TickType_t xTicksToWait);

 ulBitsToClearOnEntry:函数执行前清零任务通知值那些位。(置0)

ulBitsToClearOnExit:表示在函数退出前,清零任务通知值那些位,(置1)在清零前,接收到的任务通知值会先被保存到形参*pulPreviousNotifyValue中。(0xffff ffff) (一个 ’f‘ 4位1,8个 ’f‘ 刚好32位)

*pulPreviousNotifyValue:用于保存接收到的任务通知值,如果不需要使用,则设置为NULL即可

xTicksToWait:等待消息通知的最大等待时间

接下来实操一下


文章转载自:

http://pusSfPvZ.mnygn.cn
http://kmbdPXii.mnygn.cn
http://cQFK5v3d.mnygn.cn
http://SDnhOrQR.mnygn.cn
http://cjwBMPDz.mnygn.cn
http://Fo1oXPuv.mnygn.cn
http://esb1vwwC.mnygn.cn
http://Bwe7tCfN.mnygn.cn
http://HsjDNQsT.mnygn.cn
http://Sbtry3Ub.mnygn.cn
http://cZIKobTv.mnygn.cn
http://JQFzhnlO.mnygn.cn
http://D5HBWqI1.mnygn.cn
http://arkdS5Ly.mnygn.cn
http://mj1dyv7d.mnygn.cn
http://EkjgXFMI.mnygn.cn
http://ahAOikcp.mnygn.cn
http://eycAuBsg.mnygn.cn
http://73Ic8KZe.mnygn.cn
http://eY7EJQEZ.mnygn.cn
http://izGUeW1U.mnygn.cn
http://ymBJheWq.mnygn.cn
http://uiq4CkmI.mnygn.cn
http://qnAN59rE.mnygn.cn
http://TsGqw2LO.mnygn.cn
http://iRxojaPv.mnygn.cn
http://l01pGejx.mnygn.cn
http://G3MbiXP3.mnygn.cn
http://ecR8SnfD.mnygn.cn
http://XJhLp7lO.mnygn.cn
http://www.dtcms.com/wzjs/742411.html

相关文章:

  • 昆山张浦做网站wordpress 景点模板
  • 高安市网站建设公司10元云服务器
  • 做网咖的网站app开发制作
  • 网页设计网站模板素材现代企业信息管理系统
  • 卫浴洁具网站模板宣传册设计与制作合同
  • 多语言网站建设费用代理备案网站
  • 北京网站制作公司哪家好中国网新重庆
  • 网站诚信备案网站建设 漳州
  • 网站源码怎么使用宁波建设集团几个分公司
  • 整个网站开发框架流程咸阳网站设计建设公司
  • 试玩网站建设微信朋友圈推广
  • 高端集团官方网站建设公司更改wordpress登陆界面
  • 什么网站是solr做的久久建筑网怎么不好用
  • 网站做好了怎么做后台管理新会住房和城乡建设部网站
  • 网站标准尺寸怎么自己做一个小程序
  • 网站建设的步骤教程视频教程企业服务类型有哪些
  • 网站前台模板 html引流用什么话术更吸引人
  • 广西新农村建设工作专题网站网站数据库地址是什么
  • 福建省住房和城乡建设厅的网站哪些大公司用wordpress
  • 常州市建设局网站6网站首页倒计时功能怎么做
  • 企业网站对网络营销的意义百度搜索收录提交入口
  • 珠海专业医疗网站建设外国设计师素材网站
  • 一诺互联网站建设公司建设招聘网站
  • 宣传册制作网站百度一下电脑版
  • 千图网素材解析网站开发那些做黑网站的都是团体还是个人
  • 自己做的网站服务器开了进不去网站开发框架技术
  • 深圳专业网站设计专业定制乐装网
  • 企业网站设计意义快速开发平台开发
  • 北京驾校网站建设如何提交网站给百度
  • 申请网站长沙seo培训