FreeRTOS二值信号量
二值信号量 1. 信号量简介 信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。 |----- Binary | Samaphore -------- Count | | |-- RecursiveMutex ...
二值信号量 1. 信号量简介 信号量一般用来进行资源管理和任务同步,FreeRTOS中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。 |----- Binary | Samaphore -------- Count | | |-- RecursiveMutex ...
消息队列一 1. 消息队列简介 消息队列可以在任务与任务、任务与中断之间传递消息,队列可以保存有限个具有确定长度的数据单元。队列可保存的最大单元数目被称为队列的长度,在队列创建时需要指定其长度和每个单元(队列项或消息)的大小。通常情况下,队列被作为 FIFO(先进先出)使用,即数据由队尾写入,从队首读出。当然由队列首写入也是可能的 队列有如下特性: 数据存储:往队列写入数据...
列表和列表项 列表和列表项是 FreeRTOS的一个数据结构,FreeRTOS 大量使用到了列表和列表项,它是 FreeRTOS 的基石 1. 列表和列表项的定义 1.1 列表 列表是 FreeRTOS 中的一个数据结构,与链表类似,列表被用来跟踪 FreeRTOS 中的任务。其结构体 List_t 在 list.h 文件中被定义 typedef struct xLIST { /...
任务相关 API函数 1. 任务相关 API 函数 FreeRTOS中有很多与任务相关的 API 函数,大多数是辅助函数。下表是这些与任务相关的 API 函数功能和描述简介 函数名 功能描述 uxTaskPriorityGet() 查询某个任务的优先级 vT...
处理器利用率 1. 处理器利用率统计的作用 处理器利用率其实就是系统运行的程序占用的 CPU 资源,表示机器在某段时间程序运行的情况,如果这段时间中,程序一直在占用 CPU 的使用权,那么可以认为 CPU 的利用率是 100%;CPU 的利用率越高,说明机器在这个时间上运行了很多程序,反之较少。利用率的高低与 CPU 强弱有直接关系。比如同一段程序,如果在运算速度很慢的 CPU 上运行,...
FreeRTOS简介 1. RTOS 简介 RTOS 全称为 Real Time Operation System,即实时操作系统。RTOS 强调的是实时性,又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作,不允许超时;而软实时里对处理过程超时的要求则没有很严格。RTOS 的核心就是任务调度 RTOS 的多个工作流如下图示: RTOS 工作原理如下图示: RT...
空闲中断+DMA 针对不定长数据接收,在STM32芯片中最常见的方式就是使用串口空闲中断+DMA的方式来接收数据,这种在有着硬件支持的情况下是最方便的,数据通过DMA的方式搬运到指定的数组内,在检测到接收空闲的时候触发中断,这时候一包数据就已经传输完成了,只需要读取指定数据内的数据即可。 生成的伪代码如下: /********** uart.h **********/ #ifndef...
前提提要: 这些函数都是用于单片机运算中的,在电脑端的运行,默认数学库的的函数应该会比这些函数更快。 当然不同单片机运行这些函数的速度不同,这里仅以STM32F103ZET6芯片来做了测试。 函数如下: fast_math.h #ifndef _FAST_MATH_H #define _FAST_MATH_H /***************log function*******...
复制从:https://blog.csdn.net/wordwarwordwar/article/details/68951605 FFT 是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用 FFT 变换的原因。另外,FFT 可以将一个信号的频谱提取出来,这在频谱分析方面也...
代码: #include <stdarg.h> #include <stdio.h> #include <string.h> #define LOG_QUIET 0 #define LOG_COUT_FILE 1 #define LOG_COUT_LINE 1 #if LOG_QUIET #define LogTrace(...) #define L...