7 bit

FreeRTOS 钩子函数

为什么提供Hook钩子函数呢? 钩子函数是系统给用户预留的一些接口,以便于用户自由发挥,提高系统的灵活性。 系统时钟 任务 内存

没志青年 没志青年 发布于 2025-07-21

FreeRTOS 延时函数

由于FreeRTOS是抢占式的,任务需主动让出CPU,否则会卡死。 vTaskDelay void vTaskDelay(TickType_t xTicksToDelay); 延时的是系统节拍,需使用 pdMS_TO_TICKS() 宏将毫秒ms转换为系统节拍。时基通常为1ms,所以也不用这个函数转

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 移植

FreeRTOS™ - FreeRTOS™ 长期维护版本 FreeRTOSv202406.04-LTS 整理出文件: 文件 路径

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 内存管理

FreeRTOS 并不直接使用C语言中的 malloc 和 free,它有自己的、依赖度低、移植性高的库。 FreeRTOS 在 portable/MemMang 目录下提供了5种可选的内存管理方案,分别对应不同的堆管理策略: 名称

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 任务间通信

互斥:同一时刻,共享资源只能被一个任务所使用。 同步:控制不同任务访问共享资源的顺序。 其实,就可以把通知理解为同步,它们的作用都是控制任务的执行顺序。 任务之间的通信,称为 IPC(Inner-Process Communication) FreeRTOS中提供了队列、信号量、事件组、任务通知用于

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 系统调试

断言机制 断言:条件为假,执行代码(通常让程序停止执行)。 FreeRTOS 默认的断言: #define configASSERT(x) if (!x) while(1); 改进的断言: #define configASSERT(x) if(!x) { printf("%s %s %d\r\n"

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 软件定时器

使能软件定时器功能: 添加 timer.c 和 timer.h 文件 添加配置 #define configUSE_TIMERS 1 创建定时器 // 动态创建定时器 TimerHandle_t xTimerCreate(const char * const pcTimerName,

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 中断管理

中断配置 FreeRTOS 屏蔽的是 NVIC 配置的中断优先级,而不是芯片中固定的中断号。 使用 FreeRTOS 的时候,单片机优先级组通常必须设置为 NVIC_PriorityGroup_4,以适应 FreeRTOS,因为 FreeRTOS 只关注抢占优先级。 对于 Cortex-M,数字越小

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 概述

FreeRTOS 使用的C语言版本C90 FreeRTOS 组成文件 FreeRTOS 源文件

没志青年 没志青年 发布于 2025-06-16

FreeRTOS 任务管理

FreeRTOS中叫任务,RT-Thread中叫线程,一个东西。 FreeRTOS 是抢占式调度系统,高优先级任务一旦就绪(如被信号量唤醒、延迟到期等),会立即抢占 CPU。 任务状态 四种任务状态:运行态、就绪态、阻塞态和挂起态 运行态:任务得到了CPU的使用权,正在执行中。单核处理器的同一时刻,

没志青年 没志青年 发布于 2025-06-15

FreeRTOS 配置

从官方示例中得到的配置文件,是不能直接使用的,需要修改,以符合单片机硬件。 FreeRTOS 支持: 时间片调度:任务按时间片执行,时间片通常为1ms。 抢占式调度:高优先级任务抢占低优先级,高优先级任务需让出内存。 抢占式+时间片调度 默认只开启抢占式调度。 系统相关配置

没志青年 没志青年 发布于 2025-06-15