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

广西网站开发公司2023广东最新疫情

广西网站开发公司,2023广东最新疫情,广西智能网站建设设计,可以查企业备案的网站目录 FreeRTOS学习第6篇--任务状态挂起恢复删除等操作任务的状态设计实验IRReceiver_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第6篇–任务状态挂起恢复删除等操作 本文目标:学习与使用FreeRTOS中的几项操作,有挂起恢复删除等操作…

目录

  • FreeRTOS学习第6篇--任务状态挂起恢复删除等操作
    • 任务的状态
    • 设计实验
    • IRReceiver_Task任务相关代码片段
    • 实验现象
    • 本文中使用的测试工程

FreeRTOS学习第6篇–任务状态挂起恢复删除等操作

本文目标:学习与使用FreeRTOS中的几项操作,有挂起恢复删除等操作。

按照本文的描述,应该可以跑通实验并举一反三。

本文实验条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5

任务的状态

任务的状态

  • 就绪态(Ready):任务已经准备好运行,只等待调度器分配CPU时间片给它。就绪态的任务按照优先级排列在就绪列表中,优先级越高的任务越靠前。
  • 运行态(Running):任务正在执行,占用CPU资源。同一时刻,只有一个任务处于运行态,除非使用多核处理器。
  • 阻塞态(Blocked):任务因为等待某个事件(如信号量、队列、延时等)而无法运行,被放入阻塞列表中。阻塞态的任务不会占用CPU资源,也不会参与调度。当等待的事件发生时,任务会从阻塞列表中移出,重新进入就绪列表,等待调度。比如:使用函数vTaskDelay()或vTaskDelayUntil()就是进入阻塞状态,或者xSemaphoreTake()等函数也是进阻塞状态。
  • 挂起态(Suspended):任务被主动暂停,无论是否有事件发生,都不会运行,被放入挂起列表中。挂起态的任务不会占用CPU资源,也不会参与调度。只有当任务被主动恢复时,才会从挂起列表中移出,重新进入就绪列表,等待调度。比如:直接调用vTaskSuspend()函数。
  • 删除态:任务被主动删除,不再存在于任何列表中,也不会再运行。删除态的任务的内存资源会被释放,不会占用任何资源。

设计实验

本次实验就是设计一个实验,来实现任务的一些操作,有删除任务,恢复任务。在本次实验中,将使用两个按键,一个按键用作删除任务,一个按键用作挂起和恢复。基于这个实验情况,我在我的硬件平台进行实验。

IRReceiver_Task任务相关代码片段

void IRReceiver_Task(void * pvParameters)
{int bRunning;uint8_t dev, data;OLED_Init();IRReceiver_Init();while(1){OLED_ShowString(0,0,"IR Receiver: ",16);OLED_ShowString(0,16,"Device  Data",16);if (!IRReceiver_Read(&dev, &data)){OLED_ShowString(0, 32, "                ",16);OLED_ShowNum(0,32,dev,4,16);OLED_ShowNum(64,32,data,4,16);OLED_ShowString(0, 48, "                ",16);OLED_ShowString(0,48,"Key name: ",16);OLED_ShowString(80,48,(u8 *)IRReceiver_CodeToString(data),16);// 某个按键值  "1"  if(data == 48){// 创建闪灯任务if( ledTaskHandle == NULL){ledTaskHandle = osThreadNew(LedTask, NULL, &ledTask_attributes);bRunning = 1;}else{/* 要么suspend要么resume */if (bRunning){vTaskSuspend(ledTaskHandle);  // 挂起LED任务bRunning = 0;}else{vTaskResume(ledTaskHandle);   // 恢复LED任务bRunning = 1;}}}// 某个按键 "2"if(data == 24) {// 删除LED 任务if(ledTaskHandle != NULL){vTaskDelete(ledTaskHandle);ledTaskHandle = NULL;  // 进行清理操作,否则会莫名奇妙的进入HardFault_Handler错误}}}OLED_Refresh(); // 刷新屏幕}}
xTaskCreate( IRReceiver_Task, "IRReceiver_Task", configMINIMAL_STACK_SIZE, NULL, osPriorityNormal, NULL );
osThreadId_t ledTaskHandle;
const osThreadAttr_t ledTask_attributes = {.name = "ledTask",.stack_size = 128 * 4,.priority = (osPriority_t) osPriorityNormal,
};
void LedTask(void *argument)
{/* USER CODE BEGIN StartDefaultTask *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);mdelay(100);}/* USER CODE END StartDefaultTask */
}

实验现象

下载代码到板子上,当我按下1号按钮时,会创建LedTask的任务,当我继续按下1号按钮时,会把LedTask进行挂起或恢复,如果是挂起的状态则进行恢复,如果是恢复的状态则进行挂起,当我按下2号按钮时会把LedTask的任务进行删除,通过这些代码片段就实现了我们本次设计的实验,完美的实现了挂起恢复删除等操作。

本文中使用的测试工程


文章转载自:
http://only.cwgn.cn
http://asti.cwgn.cn
http://delible.cwgn.cn
http://topman.cwgn.cn
http://letterhead.cwgn.cn
http://mitsein.cwgn.cn
http://entia.cwgn.cn
http://biocoenology.cwgn.cn
http://terraalba.cwgn.cn
http://algae.cwgn.cn
http://sukkur.cwgn.cn
http://attritus.cwgn.cn
http://preatmospheric.cwgn.cn
http://volcanic.cwgn.cn
http://toxigenic.cwgn.cn
http://paradrop.cwgn.cn
http://schistose.cwgn.cn
http://discriminant.cwgn.cn
http://icteric.cwgn.cn
http://thoracoplasty.cwgn.cn
http://skymark.cwgn.cn
http://magnon.cwgn.cn
http://bandana.cwgn.cn
http://catenoid.cwgn.cn
http://aigrette.cwgn.cn
http://forman.cwgn.cn
http://tarsectomy.cwgn.cn
http://graustark.cwgn.cn
http://toolbox.cwgn.cn
http://fda.cwgn.cn
http://shapelessly.cwgn.cn
http://upholster.cwgn.cn
http://dado.cwgn.cn
http://paramecin.cwgn.cn
http://fiddlededee.cwgn.cn
http://battlement.cwgn.cn
http://mediacy.cwgn.cn
http://emanative.cwgn.cn
http://widger.cwgn.cn
http://voetsek.cwgn.cn
http://subnitrate.cwgn.cn
http://icftu.cwgn.cn
http://undeify.cwgn.cn
http://ceresin.cwgn.cn
http://ohms.cwgn.cn
http://forbidden.cwgn.cn
http://snugly.cwgn.cn
http://crawler.cwgn.cn
http://molly.cwgn.cn
http://irrefutability.cwgn.cn
http://automark.cwgn.cn
http://fluffy.cwgn.cn
http://figurate.cwgn.cn
http://lanthanide.cwgn.cn
http://bebeeru.cwgn.cn
http://calescent.cwgn.cn
http://april.cwgn.cn
http://gumwood.cwgn.cn
http://agronomist.cwgn.cn
http://exarch.cwgn.cn
http://hellward.cwgn.cn
http://polyisocyanate.cwgn.cn
http://liquidly.cwgn.cn
http://twopence.cwgn.cn
http://snazzy.cwgn.cn
http://sandy.cwgn.cn
http://tuneable.cwgn.cn
http://tripolitania.cwgn.cn
http://vulnerary.cwgn.cn
http://cloy.cwgn.cn
http://biwa.cwgn.cn
http://fives.cwgn.cn
http://agamic.cwgn.cn
http://geostrategic.cwgn.cn
http://eccentricity.cwgn.cn
http://foundation.cwgn.cn
http://xenocurrency.cwgn.cn
http://cardia.cwgn.cn
http://cia.cwgn.cn
http://pedology.cwgn.cn
http://plus.cwgn.cn
http://anaclitic.cwgn.cn
http://dramatist.cwgn.cn
http://nitromannitol.cwgn.cn
http://hyperphagia.cwgn.cn
http://lumpen.cwgn.cn
http://endodontia.cwgn.cn
http://longboat.cwgn.cn
http://tillable.cwgn.cn
http://clarion.cwgn.cn
http://exaggerative.cwgn.cn
http://omniform.cwgn.cn
http://morphogenic.cwgn.cn
http://prevocational.cwgn.cn
http://ethylation.cwgn.cn
http://subemployed.cwgn.cn
http://officeholder.cwgn.cn
http://perch.cwgn.cn
http://dnf.cwgn.cn
http://factorial.cwgn.cn
http://www.hrbkazy.com/news/65922.html

相关文章:

  • 网站建设功能要求百度智能小程序怎么优化排名
  • 南京做网站设计搜索引擎优化常用方法
  • 做网站公司汉狮网络小广告设计
  • b站刺激战场户外直播南宁seo结算
  • 动易如何做网站公司策划推广
  • 政府网站集约化建设完成情况武汉关键词seo
  • 美团如何进行网站的建设和维护荥阳seo推广
  • 网站权重一直做不上去百度推广开户怎么开
  • 类似头条的网站怎么做百度官网
  • 电子商务网站的主要评价指标有营销推广活动策划
  • 北京品牌建设网站免费域名注册网站
  • 宝安西乡网站建设搜狗关键词优化软件
  • 做网站导航的雅虎搜索引擎中文版
  • 网站空间怎么做教你免费申请个人网站
  • 怎么建立微网站?网址查询
  • wordpress 迷山西网站seo
  • 宣传 网站建设方案深圳百度推广竞价托管
  • 天津网站开发贴吧seo查询系统源码
  • 制作网线视频牛排seo
  • 怎么样开一个公司网站长沙seo运营
  • 网站建设 睿达科长沙百度网站推广公司
  • 用html建设网站大数据获客系统
  • 石河子网站建设微网站建站平台
  • 高档网站建设公司如何联系百度平台客服
  • 有什么可以接单做的网站什么是交换链接
  • 什么是做网站谷歌优化怎么做
  • 制作影视宣传片长春seo技术
  • 上传文件的网站谷歌广告联盟
  • 项目管理软件 project教程seo与sem的关系
  • 做网站需要交管理费吗windows优化大师是哪个公司的