问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

CubeMX对FreeRTOS的适配

创作时间:
作者:
@小白创作中心

CubeMX对FreeRTOS的适配

引用
CSDN
1.
https://blog.csdn.net/2302_80169672/article/details/141004576

CubeMX是ST公司推出的一款图形化配置工具,可以方便地配置STM32微控制器的外设和系统参数。FreeRTOS是一个流行的实时操作系统内核,广泛应用于嵌入式系统开发。本文将介绍如何使用CubeMX配置FreeRTOS的各种组件,包括任务、信号量、互斥量、事件、消息队列、任务通知和软件定时器等。

任务的创建

在CubeMX中创建任务时,需要配置任务的属性。CubeMX提供了三种创建方式:Default(默认)、external(外部)和weak(弱函数)。Default方式会在keil种的freertos.c中生成任务的函数,external则不会生成,weak则会在freertos.c生成一个弱函数。external和weak都可以在其他文件夹重定义,如果不重定义,weak会把freertos.c中的弱函数当做任务函数,external则会编译报错。

信号量的创建(二值&计数型)

信号量是用于进程间通信的机制。二值信号量和计数型信号量的主要区别在于计数器的初始值和使用方式。二值信号量的计数器只能是0或1,而计数型信号量的计数器可以是任意非负整数。

互斥量的创建

互斥量是一种特殊的信号量,用于实现对共享资源的互斥访问。CubeMX中提供了普通互斥量和递归互斥量两种类型。普通互斥量只能上锁一次,然后解锁一次,而递归互斥量可以多次上锁和解锁。

事件的创建

事件是一种用于进程间通信的机制,可以实现多个事件的组合和等待。CubeMX中事件的配置相对简单,主要包括事件组的创建和事件的等待。

消息队列的创建

消息队列是一种用于进程间通信的机制,可以实现数据的传递和缓冲。在CubeMX中创建消息队列时,可以灵活配置队列成员的大小,例如可以定义一个结构体,里面包含多个数据。

任务通知的创建

任务通知是一种轻量级的通信机制,用于在任务之间传递简单的通知信息。CubeMX中任务通知的配置相对简单,主要包括通知值的设置和通知的等待。

软件定时器的创建

软件定时器是一种用于实现延时和周期性任务的机制。在CubeMX中创建软件定时器时,需要配置定时器的中断函数类型和定时器的性质(一次性或周期性)。


© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号