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

社区门户网站模板网站建站的步骤流程

社区门户网站模板,网站建站的步骤流程,车网站建设策划,手机微网站制作freertos信号量之二值信号量 简介例程 简介 FreeRTOS的二值信号量#xff08;Binary Semaphore#xff09;是用于实现进程间同步和临界资源保护的重要工具。以下是一些二值信号量的常用函数及其说明#xff1a; 1#xff09;xSemaphoreCreateBinary() 创建一个二值信号量… freertos信号量之二值信号量 简介例程 简介 FreeRTOS的二值信号量Binary Semaphore是用于实现进程间同步和临界资源保护的重要工具。以下是一些二值信号量的常用函数及其说明 1xSemaphoreCreateBinary() 创建一个二值信号量。该函数接受一个无符号整型参数用于指定信号量的初始值。如果初始值为0则表示信号量未被占用否则表示信号量已被占用。 2xSemaphoreTake(SemaphoreHandle_t xSemaphore, portTickType xBlockTime) 获取二值信号量。该函数会尝试获取信号量如果信号量可用则获取成功并立即返回否则如果信号量不可用函数会阻塞调用任务直到信号量可用或超时。xBlockTime参数指定阻塞时间单位为系统时钟节拍数。 3xSemaphoreGive(SemaphoreHandle_t xSemaphore) 释放二值信号量。该函数会将信号量的值置为1表示信号量可用。如果有任务正在等待该信号量则其中一个任务将被唤醒并继续执行。 4xSemaphoreGetCount(SemaphoreHandle_t xSemaphore) 获取二值信号量的当前值。该函数返回信号量的当前值即0或1。 5xSemaphoreDelete(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://www.dnsts.com.cn/news/197505.html

相关文章:

  • 怎么选择网站模板北京网站开发公司一网天行
  • 网站怎么制作 优帮云企业网站搜索优化
  • 康定网站建设营销软文100字
  • wordpress15天教程网站改名 seo
  • 建立一个网站需要多久wordpress 糗百
  • 旅游网站建设的目标建设视频网站多少钱
  • 休闲食品网站建设策划书钓鱼转转网站在线生成
  • 建设积分兑换官方网站wordpress去版权插件
  • 网站开发代理合同制作微信网页
  • 梧州单身相亲网站erp网站建设
  • 网站手机端和电脑端禁止百度收录的网站
  • 盐城百度推广公司上海seo优化培训机构
  • dede网站百度统计怎么做Wordpress iPhone 上传
  • 昆明猫咪网站建设公司代刷网站推广链接免费
  • 网站建设论文二稿网站对于一个企业的优势
  • wordpress做网站优点wordpress智能小程序
  • 服务器怎么发布网站徐州网站建设公司哪个好
  • 寺庙网站开发建设方案wordpress留言板设置
  • 多媒体网站设计开发是指什么建网站做商城个体户资质可以
  • 免费网站建设能做吗网站设计流程的步骤
  • 贵阳市城乡建设部网站公司做一个静态网站多少钱
  • 个人网站开发是学什么语言做视频网站盈利模式
  • 做销售在哪个网站找客户端廊坊seo建站
  • 阿里巴巴国际网站建设wordpress+书店
  • 内蒙古住房与城乡建设厅网站网站公司 北京
  • 昆明网站运营临沂网站建设首选浩瀚网络
  • 宜昌网站建设宜昌南昌建站推广公司
  • 花卉网站建设项目策划书网站建设万禾
  • 我做的网站打开慢怎么处理产品展示型网站建设
  • 哔哩哔哩免费网站观看wordpress地址表单