FreeRTOS任务

本文详细介绍了FreeRTOS的任务管理,包括任务的创建、任务栈的定义、任务控制块的作用,以及调度器的工作原理。重点讲解了如何静态创建任务,初始化任务栈,并阐述了调度器如何启动以及实现任务切换的过程。
摘要由CSDN通过智能技术生成

FreeRTOS任务

在裸机系统中,系统的主体是main函数里面顺序执行的无限循环,这个无限循环里面CPU按照顺序完成各种事情,在多任务系统中,我们根据功能不同,把整个系统分割成一个个独立的且无法返回的函数,这个函数我们称为任务。
在这里插入图片描述
创建任务
定义任务栈
在裸机系统中,全局变量,有子函数调用,有中断发生等都存放在栈,栈是单片机RAM里面一段连续的内存空间,栈的大小一般在启动文件或者链接脚本里面指定,最后由C库函数_main进行初始化。
但是在多任务系统中,每个任务都是独立的,互不干扰的,所以要为每个任务都分配独立的栈空间,这个栈空间通常是一个预先定义好的全局数组,也可以是动态分配的一段内存空间,但他们都存在于RAM中。
要实现两个变量按照一定的频率轮流的翻转,每个变量对应一个任务,那么就需要定义两个任务栈,在多个任务系统中,有多少个任务就需要定义多少个任务栈。
在这里插入图片描述
任务栈其实就是一个预先定义好的全局数据,数据类型为StackType_t,大小由TASK1_STACK_SIZE这个 宏来定义,默认为128,单位为字,即512字节。这也是FreeRTOS推荐的最小任务栈。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值