首页 > 其他分享 >六、FreeRTOS学习笔记-任务挂起和恢复

六、FreeRTOS学习笔记-任务挂起和恢复

时间:2024-05-31 11:33:38浏览次数:19  
标签:函数 FreeRTOS 中断 恢复 vTaskSuspend 笔记 学习 任务 xTaskToResume

任务的挂起与恢复的API函数介绍

API函数 描述
vTaskSuspend() 挂起任务
vTaskResume() 恢复被挂起的任务
xTaskResumeFromISR() 在中断中恢复被挂起的任务

1、挂起任务类似暂停,可恢复; 删除任务,无法恢复
2、恢复是恢复被挂起任务
3、带FromISR后缀是在中断函数中专用的API函数
任务挂起函数介绍
void vTaskSuspend(TaskHandle_t xTaskToSuspend)

形参 描述
xTaskToSuspend 待挂起任务的任务句柄

此函数用于挂起任务,使用时需将宏 INCLUDE_vTaskSuspend 配置为 1。
无论优先级如何,被挂起的任务都将不再被执行,直到任务被恢复 。
注意:当传入的参数为NULL,则代表挂起任务自身(当前正在运行的任务)

任务恢复函数介绍(任务中恢复)
任务中恢复被挂起函数:void vTaskResume(TaskHandle_t xTaskToResume)

形参 描述
xTaskToResume 待恢复任务的任务句柄

使用该函数注意宏:INCLUDE_vTaskSuspend必须定义为 1
注意:任务无论被 vTaskSuspend() 挂起多少次,只需在任务中调用 vTakResume() 恢复一次,就可以继续运行。且被恢复的任务会进入就绪态!

任务恢复函数介绍(中断中恢复)
中断中恢复被挂起函数: BaseType_t xTaskResumeFromISR(TaskHandle_t xTaskToResume)

形参 描述
xTaskToResume 待恢复任务的任务句柄

函数:xTaskResumeFromISR返回值描述如下:

返回值 描述
pdTRUE 任务恢复后需要进行任务切换
pdFALSE 任务恢复后不需要进行任务切换

使用该函数注意宏:INCLUDE_vTaskSuspend 和 INCLUDE_xTaskResumeFromISR 必须定义为 1
该函数专用于中断服务函数中,用于解挂被挂起任务
注意:中断服务程序中要调用freeRTOS的API函数则中断优先级不能高于FreeRTOS所管理的最高优先级


标签:函数,FreeRTOS,中断,恢复,vTaskSuspend,笔记,学习,任务,xTaskToResume
From: https://www.cnblogs.com/zmq-wj/p/18224155

相关文章

  • Solidity学习-投票合约示例
    以下的合约有一些复杂,但展示了很多Solidity的语言特性。它实现了一个投票合约。当然,电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。我们不会在这里解决所有的问题,但至少我们会展示如何进行委托投票,同时,计票又是自动和完全透明的。我们的想法是......
  • 访谈笔记笔记,母亲和儿子的问答。
    母亲与儿子的对话。高知家庭。大人要学会主动承担责任,不要怪罪于孩子,这很不好,敢作敢当。爷爷很少会责怪我,奶奶也是。他们很慈爱。比如我买面包导致光线不好的意外,爷爷没有责备我。我让爷爷奶奶受苦了。我要好好努力。工作:1.进去一家公司。2.有师傅教你学会知识。找一个学长求助学......
  • 背包九讲--阅读笔记
    背包九讲很古老的文章,from2007,比我年龄都大。但是确实写得很好。01背包很基础。设\(f[i][j]\)为考虑前\(i\)个物品,背包容量为\(j\)的最大价值。$f[i][j]=max{f[i-1][j],f[i-1][j-w[i]]+c[i]}$考虑可以滚动数组,但更高妙的,是倒序枚举\(j\),即:$f......
  • [机器学习]-如何在 MacBook 上安装 LLama.cpp + LLM Model 运行环境
    如何在MacBook上安装LLama.cpp+LLMModel运行环境1.问题与需求近段时间想学习一下大语言模型的本地化部署与应用。首先遇到的就是部署硬件环境的问题。我自己的笔记本是一台MacBookProM3,没有Nvidia的GPU支持,但机器性能不错。所以打算根据网上资料尝试在自己......
  • 一起学习大模型 - embed model和 llm model 常见的搭配和考虑因素
    文章目录前言一、embedmodel和llmmodel常见的搭配和考虑因素1.词向量嵌入模型和大语言模型的选择2.具体的搭配方案3.实施细节二、弥补embedmodel和llmmodel的差异总结前言昨天和别人讨论大模型应用的时候,发现很多人存在词向量混用的情况,就是随意选embedm......
  • Springcloud学习笔记68--springboot 整合Caffeine 本地缓存
    一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过Redis这种NoSql作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是Redis这种还是需要网络开销,增......
  • 学习unigui【26】关于Unigui控件的个性化CSS框架
    用unigui写程序,简单的事用户界面不用HTML。因为这个太闹心了。没有什么技术含量,但很闹心。但是,但是不清楚HTMLCSS更闹心。因为养眼的界面是客户起步疑问和要求。强烈推荐认真读明白大虾的体验和总结:delphiUnigui框架TUniContainerPanel把CSS和界面属性对应起来后,明白怎么回事......
  • 【爬虫软件】关键词批量采集小红书笔记正文工具
    一、背景介绍1.1爬取目标熟悉我的小伙伴都了解,我之前开发过2款软件:【xhs爬虫软件】用Python开发的小红书关键词搜索批量采集工具【爬虫软件】用Python开发的小红书详情批量采集工具,含笔记正文、转评赞藏等现在介绍的这个软件,相当于以上2个软件的结合版,即根据关键词爬取笔......
  • 如何看待时间序列与机器学习?
    GPT-4o时间序列与机器学习的关联在于,时间序列数据是一种重要的结构化数据形式,而机器学习则是一种强大的工具,用于从数据中提取有用的模式和信息。在很多实际应用中,时间序列与机器学习可以结合起来,发挥重要作用。首先,时间序列数据具有时序性质,这意味着数据间存在一种时间上的因......
  • Nginx 实战-01-nginx ubuntu(windows WSL2) 安装笔记
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......