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

手机网站会员识别功能投资建设集团网站

手机网站会员识别功能,投资建设集团网站,网站建设对电子商务的意义,做复刻衣服买网站目录 前言 1、FreeRTOS中的任务是什么 2、创建任务 3、运行任务 4、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~ 前言 上一章介绍了如何使用STM32CubeMX在项目中添加FreeRTOS操作系统,本文开始学习如何结合STM32CubeMX软件…

目录

前言

1、FreeRTOS中的任务是什么

2、创建任务

3、运行任务

4、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~


前言

        上一章介绍了如何使用STM32CubeMX在项目中添加FreeRTOS操作系统,本文开始学习如何结合STM32CubeMX软件使用FreeRTOS中最重要的基础核心——任务。

1、FreeRTOS中的任务是什么

        FreeRTOS中的任务是一个具有独立内存(堆栈)空间的无线循环的函数,需要开发者为其严格分配优先级,具有运行——阻塞——就绪——挂起四种状态。

        运行态表示任务正在运行;就绪态表示任务可以运行;阻塞态表示任务正在等待某一进程,CPU可以先执行其他的任务;挂起态表示任务取消执行,除非调用解除挂起xTaskResumeAll()等函数,才能让这个任务变为就绪状态,参与到任务调度中。

        如果系统中存在不同优先级的任务,那么在高优先级任务运行完后,一定在函数末尾要调用阻塞指令,例如osDelay(20)等函数,让任务由运行态进入阻塞态,否则高优先级任务在执行完后,会直接从运行态转换为就绪态,基于抢占调度策略不间断执行,同优先级的任务基于时间片轮转调度算法会正常执行,但优先级低于它的任务会没有权限执行。

        通过STM32CubeMX软件创建FreeRTOS中的任务后,直接在app_freertos.c文件中找到对应的任务函数,在函数内编程即可,系统在创建任务时会自动把任务函数入口注册在链表中,然后使用osKernelStart()函数启动任务调度算法,实现任务的自动调用切换。这其中,开发者只需要手动编写任务函数内的执行代码,实现对应的功能。

2、创建任务

    以下是与任务创建有关的选项,不理解参数意义的可以看这篇博客——《结合 STM32CubeMX 使用 FreeRTOS 实时操作系统》,里面介绍了每一个参数栏的功能。

        在配置完FreeRTOS系统的参数后,需要在STM32CubeMX中点击Add添加任务实例:

        其中需要重点关注任务优先级,FreeRTOS中一定要为任务分配好优先级,正常情况下,任务优先级从正常(中级)开始分配,一开始就使用高优先级来配置任务的话,不利于后续新增功能的开发。

3、运行任务

        配置完成后,使用STM32CubeMX来生成项目代码,在Core目录下,找到对应的app_freertos.c文件,开发者需要在这个文件中的任务函数中,实现具体的功能。

        需要开发者修改的代码在app_freertos.c文件中,这个文件中定义了任务的接口,只需要在任务函数内实现具体的功能,剩下的交给FreeRTOS系统调度算法。本例程中的任务接口如下所示:

/*** @brief  Function implementing the defaultTask thread.* @param  argument: Not used* @retval None*/void StartDefaultTask(void const * argument){/* USER CODE BEGIN StartDefaultTask *//* Infinite loop */for(;;)         //无限循环,通过任务调度算法实现任务之间的切换{static uint8_t u8SwitchLED2 = 0;if(u8SwitchLED2)LED0_ON;elseLED0_OFF;u8SwitchLED2 = !u8SwitchLED2;/*延时阻塞,程序在执行到这里时,系统会将该任务由运行态切换到阻塞态,从而可以执行低优先级任务没有延时的话,该任务阻塞态不会出现,低于该任务优先级的任务,不会被执行*/osDelay(100);}/* USER CODE END StartDefaultTask */}

        在main.c文件中,可以看到在硬件外设初始化完毕之后,程序调用了MX_FREERTOS_Init()函数,这是FreeRTOS的初始化函数,在函数里创建并注册开发者在CubeMX中配置的任务、定时器、互斥量、队列等内容;还有一个osKernelStart()函数,这是FreeRTOS任务调度算法启动函数,调用之后,系统开始根据时间片轮转策略和抢占优先级策略自动调用任务执行。

        对应的FreeRTOS源码在系统中的FreeRTOS目录下,感兴趣的同学可以学习一下,建议结合硬件调试,看一下程序的执行逻辑和任务调度算法的实现,FreeRTOS系统核心的源码是用汇编语言实现的,所以运行效率很高,保证了系统的实时性。

        LED灯闪烁运行效果图:

 4、如果这篇文章能帮助到你,请点个赞鼓励一下吧ξ( ✿>◡❛)~


文章转载自:

http://UO82wFMR.Lbggk.cn
http://Kk59145h.Lbggk.cn
http://lLs5URZY.Lbggk.cn
http://NkTJGjQZ.Lbggk.cn
http://7WvRSvB2.Lbggk.cn
http://0vViTH2B.Lbggk.cn
http://rhqfc0gc.Lbggk.cn
http://w78tRkZ0.Lbggk.cn
http://mXTHkJYA.Lbggk.cn
http://ikGflKMH.Lbggk.cn
http://BX7T6nam.Lbggk.cn
http://YqahC38b.Lbggk.cn
http://kj1uUAt4.Lbggk.cn
http://JzUwHvYH.Lbggk.cn
http://bwxAo61X.Lbggk.cn
http://nWkSUtkz.Lbggk.cn
http://8CL3Bh8N.Lbggk.cn
http://vvHTFMjs.Lbggk.cn
http://Q3j3K1VF.Lbggk.cn
http://jRDH06Yw.Lbggk.cn
http://c1VdPQ33.Lbggk.cn
http://gcTS8XHT.Lbggk.cn
http://vX4Dm7GS.Lbggk.cn
http://pcgPuT7F.Lbggk.cn
http://om7eRuli.Lbggk.cn
http://3JCsvHib.Lbggk.cn
http://akKYtZ94.Lbggk.cn
http://tIirKAVh.Lbggk.cn
http://isXEI4Gd.Lbggk.cn
http://Z210FvBZ.Lbggk.cn
http://www.dtcms.com/wzjs/753434.html

相关文章:

  • 设计商标的网站重庆网上房地产查询
  • 网站被黑是什么原因扬州seo
  • 织梦如何生成网站地图网页布局设计技术包括
  • 丝绸之路网站建设报告皮带哥 长沙
  • 淮安建设网站制作wordpress默认主题加logo
  • 搭建一个网站的流程电商网站建设网络公司
  • 网站上传用什么软件做视频格式南京移动网站设计
  • 网站建设优点如何查询网站建设时间
  • 返利导购网站建设需求文档网站建设古典风格
  • 北滘禅城网站建设自助建网站平台怎么收费
  • 网站服务器租用价格门户网站做等保需要备案哪些
  • 重庆做营销型网站建设公司河南论坛网站建设
  • 重庆网站建设找重庆最佳科技企业网站 jquery
  • 网站推广方案中评价效果是指logo设计注册
  • 杭州网站公司设计注册资本随便填了500万
  • 门户网站是用户上网的第一入口卸载wordpress
  • 网站流量 名词百度推广一年收费标准
  • 电子商务网站建设的范围是什么意思北京网页制作设计
  • 哪些网站可以医生做兼职更换网站需要备案吗
  • 清河做网站哪家好开发公司以现金方式补贴给客户
  • 展示型网站建设标准上海本地app推荐
  • 萍乡企业网站制作如何在百度创建网站
  • 网站建设昆明包装设计wienj wordpress
  • 做网站的预算表苏州高端企业网站建设
  • 学做预算网站吕梁市城乡建设局网站
  • php网站下载器淘宝客建网站
  • 网站模版怎么上传到空间雄安专业网站建设方案
  • 求手机视频网站wordpress数据库信息文件
  • 品牌网站设计制作哪家正规wordpress仿站cms
  • 名片型网站开发it培训机构一般培训多久