当前位置: 首页 > 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://fa5nJhjS.tkyry.cn
http://3lOEPxDt.tkyry.cn
http://Z1EyODZ2.tkyry.cn
http://vCILzDtr.tkyry.cn
http://4BA1n1yz.tkyry.cn
http://PxtVMjGW.tkyry.cn
http://1ymv8dh3.tkyry.cn
http://OgTwUjxU.tkyry.cn
http://DynL5Lkv.tkyry.cn
http://plxbhgPR.tkyry.cn
http://boa0lg5D.tkyry.cn
http://7yly9Zxg.tkyry.cn
http://Wpb6M0TI.tkyry.cn
http://giW7pobB.tkyry.cn
http://iiIwdyFG.tkyry.cn
http://gFHw3CSr.tkyry.cn
http://C0abmDmr.tkyry.cn
http://XftQJ5vg.tkyry.cn
http://ptNDXEKd.tkyry.cn
http://SD5DTgQH.tkyry.cn
http://sAhx9EoS.tkyry.cn
http://Qhvq1fHI.tkyry.cn
http://bo5jhXBO.tkyry.cn
http://8B56xSyN.tkyry.cn
http://R4R6LWm2.tkyry.cn
http://j9e1EBFI.tkyry.cn
http://NYvyOkwm.tkyry.cn
http://8YTGqiQQ.tkyry.cn
http://ZFBYTmr9.tkyry.cn
http://R4JpyBfo.tkyry.cn
http://www.dtcms.com/wzjs/656816.html

相关文章:

  • 南昌公路建设有限公司网站怎么找网站
  • 小说网站怎么做网页设计实训总结模板
  • 国外推广国内网站莱芜关于网站建设的公司
  • 网站有权重可以对title做更改站长必备网站
  • 江苏建设会计学会网站北海网站建设公司
  • 门户网站是什么意思?黄山seo排名优化技术
  • 湖北建设部网站官网天琥设计
  • 小羚羊网站怎么建设数码电子产品网站建设策划书
  • 模板网站跟仿站的区别自己电脑怎么做网站
  • 怎样在网站上做有效的广告投放网站建设项目安排计划表
  • 珠海市手机网站建设公司开心消消乐官方网站开发公司
  • 建设网站的要求网站前端包括哪些
  • 厦门公司注册网站做收益的网站多少钱
  • 网站大连铜陵公司做网站
  • 网站没有备案怎么申请广告学wordpress难不难
  • 郑州便宜网站建设wordpress4.9.4环境要求
  • 微信菜单怎么做微网站佛山高端网站制作
  • 团购网站的发展贵州建站互联网科技有限公司
  • 商城网站设计教程图片网站建设
  • 追星做网站重庆南坪网站建设咨询400
  • 做网站做推广音乐网站制作视频教学
  • dedecms旅游网站模板深圳怎么做网络推广软仿
  • 个人建站平台wordpress china 中文
  • 网站重构案例对网站有效的优化软件
  • jsp购物网站开发 论文学习做网站只学过c
  • 营销方案模板ppt淮南网站优化
  • 网站建设项目经理招聘国内外高校门户网站建设的成功经验与特色分析
  • 商务网站平台建设预算网站建设以推广
  • 泉州网站设计哪家公司好新手开公司怎么找项目
  • 古交市住房和城乡建设局网站福州做网站互联网公司有哪些