一、内存管理
RTOS内核中的 queue 、task 、semaphores和event group等内核对象都是内存动态分配。
用到时分配,不用时释放。
1、C语言中的内存管理
(1)变量
全局变量(外部变量):在代码块 { }之外定义
局部变量(自动变量):一般来说代码块{}内,也可以用 auto 定义
静态变量:是指内存位置在程序执行期间一直不改变的变量,用关键字static修饰。
代码块内部的静态变量只能被这个代码块内部访问,代码块外部的静态变量只能被定义这个变量的文件访问。
二、消息队列
1、为什么不用任务间不用全局变量,而是用消息队列通信?
消息队列,是一种用于任务与任务间、中断和任务间传递一条或多条信息的数据结构,实现了任务接收来自其他任务或中断的不固定或固定长度的消息。
三、任务通知
相当于标志位。在CubeMX中使用任务通知,就使用了两个函数osSignalSet
发送和osSignalWait
接收