STM32CubeMX学习笔记——FreeRTOS_任务创建与删除

STM32CubeMX学习笔记——FreeRTOS_任务创建与删除

Github

https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FreeRTOS/Class01_CreateTask

简介

在STM32CubeMX上配置FreeRTOS非常的简单,几乎不需要做任何操作,只需要勾选
在这里插入图片描述
移植FreeRTOS就成功了,关于在非Cube上的RTOS配置文件内的相关内容,也在下方的Configuration栏中给好了
在这里插入图片描述
所有的配置都可以在这里完成

任务创建

有别于在没有使用Cube下的创建方式,在Cube中它专门提供了可视化的创建方式,并且增加了中间文件cmsis_os.c将freertos中提供的方法进行了再一次的封装(猜测可能是为了支持更多的OS吧)

可视化创建方式

在这里插入图片描述
在Tasks and Queues中可以点击Add按钮添加新的任务
在这里插入图片描述
1、任务名字
2、任务优先级(因为增加了一个层级结构,导致不再是以数字来决定优先级了)
3、栈大小
4、函数名(有别于第一条,第一条是字符串格式的,这条是定义代码中的函数名字)
5、代码生成设置(生成与否?还是生成弱函数——希望自行编写函数的选As External,希望自动生成的选Default)
6、传入的数据/指针,一般为NULL,有希望传入的数据可以修改
7、创建方式(动态或静态,一般动态,很少使用静态方式)

代码创建方式

osThreadId LED_Blink2Handle;
osThreadDef(LED_Blink2, Blink_PB1, osPriorityNormal, 0, 128);
LED_Blink2Handle = osThreadCreate(osThread(LED_Blink2), NULL);

代码创建也很简单,实际上osThreadCreate对xTaskCreate进行了封装,而osThreadDef与osThread都是宏定义,用于描述初始化变量的,通过预编译器巧妙的生成了函数名(字符串)与相关初始化变量赋给了函数osThreadCreate

LED_Blink2:希望生成的中间结构体名称也会被预编译器生成同名的字符串
Blink_PB1:真实的函数名称
osPriorityNormal:优先级
0:最大实例化个数(估计是以后会用到,目前这个变量还没什么作用,默认0就好)
128:栈空间

任务删除

vTaskDelete(LED_Blink2Handle);

没什么可说的,输入句柄 直接删除,
需要注意的是,如果想删除自身的话,输入NULL即可

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值