
FREERTOS
文章平均质量分 81
FREERTOS 嵌入式实时操作系统开发技术总结,RTOS系统设计技巧及系统优化设计等。
指令集诗人
本人从事嵌入式系统开发,主要内容有嵌入式硬件/ZYNQ/freeRTOS/yaffs2/LWIP/SDR等。我会将日常工作中的总结和心得发表出来,欢迎各位同道中人批评指正,互相进步共同学习。
展开
-
硬实时操作系统(Hard Real-Time OS)与软实时操作系统(Soft Real-Time OS)的区别
针对 FreeRTOS(代表软实时系统)和 SylixOS(代表硬实时系统)的具体对比分析,通过实际技术细节说明两者的差异。原创 2025-03-29 16:09:29 · 345 阅读 · 0 评论 -
FreeRTOS 中软件定时器(Software Timers)和守护任务(Timer Daemon Task)原理和用法
在 FreeRTOS 中,软件定时器(Software Timers) 和 守护任务(Timer Daemon Task) 是用于实现异步定时操作的核心机制。它们允许开发者创建周期性或单次触发的定时事件,并通过回调函数处理定时任务。原创 2025-03-28 16:51:04 · 900 阅读 · 0 评论 -
在FreeRTOS 中多事件组的用法详解
在 FreeRTOS 中,创建多个事件组是完全可行的,且是管理复杂系统事件的有效手段。合理使用多事件组可以:降低模块间耦合度避免事件位冲突提升代码可维护性唯一需要注意的是:在资源受限的嵌入式系统中,需平衡事件组数量和内存消耗。原创 2025-03-28 16:44:20 · 555 阅读 · 0 评论 -
FreeRTOS 中事件组(Event Group)用法详解
FreeRTOS 事件组是任务间通信和同步的核心工具,适用于需要 多事件触发 或 多任务同步 的场景。使用时需注意事件位的定义和线程安全,合理设计任务优先级即可高效利用。原创 2025-03-28 16:39:55 · 750 阅读 · 0 评论 -
软件定时器的回调函数中调用事件组设置函数的可行性分析
在软件定时器回调中调用xEventGroupSetBits()是安全且推荐的,只要确保操作符合FreeRTOS上下文规则即可。原创 2025-03-28 16:37:32 · 170 阅读 · 0 评论 -
FreeRTOS中,**任务栈(Task Stack)**与IAR链接器配置文件(`.icf`)中定义的`CSTACK`、`IRQ STACK`等堆栈的区别
在FreeRTOS中,**任务栈(Task Stack)**与IAR链接器配置文件(`.icf`)中定义的`CSTACK`、`IRQ STACK`等堆栈是**完全独立**的。它们的用途、分配位置和管理方式有本质区别。原创 2025-03-26 17:07:05 · 725 阅读 · 0 评论 -
IAR的链接器配置文件(`.icf`)中为ARM处理器分配的各种堆栈空间解析
通过合理配置ICF文件中的堆栈和堆,可确保ARM处理器在不同模式下稳定运行。是为ARM处理器不同运行模式分配的内存区域。文件中,需为每个堆栈定义独立的内存段,并指定其大小和位置。ARM架构通常要求堆栈按8字节对齐(Cortex-M)或更高,需设置。:增大对应堆栈大小,或优化代码(减少递归、局部变量大小)。:检查代码中是否存在非法指令(如未对齐内存访问),并确保。),在运行时插入哨兵值(Canary)检测溢出。在IAR的链接器配置文件()生成堆栈使用报告。原创 2025-03-26 17:04:30 · 594 阅读 · 0 评论 -
实时操作系统(RTOS)中的死锁与优先级翻转
死锁是指多个任务因竞争资源而陷入相互等待的状态,导致所有相关任务无法继续执行。在实时系统中,死锁会直接破坏系统的实时性和可靠性。原创 2025-03-26 09:20:33 · 343 阅读 · 0 评论 -
FreeRTOS 中的递归互斥量(Recursive Mutex)
通过合理使用递归互斥量,可以安全地在嵌套或递归代码中管理共享资源,但需严格遵守获取/释放的对称性以避免死锁。,每次获取都会增加锁的持有计数,必须释放相同次数后才能完全解锁。若获取和释放次数不匹配,会导致锁无法释放,其他任务永久阻塞。FreeRTOS 的递归互斥量支持优先级继承(需配置。FreeRTOS 的递归互斥量通过。,禁止混用普通互斥量函数(如。),防止优先级反转。原创 2025-02-21 10:30:46 · 335 阅读 · 0 评论 -
FreeRTOS 线程本地存储(Thread Local Storage, TLS)详解
FreeRTOS 中的 **线程本地存储(Thread Local Storage, TLS)** 是一种允许每个任务(线程)独立存储私有数据的机制,类似于其他操作系统(如 Linux 的 `__thread` 或 Windows 的 `TlsAlloc`)的线程局部存储。通过 TLS,每个任务可以拥有独立的数据副本,避免全局变量在多任务环境中的竞争问题。原创 2025-02-20 17:17:45 · 969 阅读 · 0 评论 -
FreeRTOS 中 Stream Buffer(流缓冲区) 和 Message Buffer(消息缓冲区)详解
通过合理选择 Stream Buffer 或 Message Buffer,可高效实现 FreeRTOS 任务间数据通信,满足不同场景下的实时性和可靠性需求。保证消息原子性(要么完整接收,要么不接收)。(如传感器原始数据、网络数据包)。允许部分读写,适合流式传输。(如控制命令、状态事件)。原创 2025-02-19 16:58:31 · 758 阅读 · 0 评论 -
在FreeRTOS中任务栈与函数栈的区别
在 FreeRTOS 中,任务栈(Task Stack) 和 函数栈(Function Stack) 是两个不同的概念,但它们都与内存管理密切相关。原创 2025-02-19 14:42:56 · 829 阅读 · 0 评论 -
FREERTOS系统守护任务使用详解
守护任务最初被称为定时器服务任务,因为最初只使用守护任务执行软件定时器回调函数。因此,xTimerPendFunctionCall() / xTimerPendFunctionCallFromISR()函数是在timer.c中实现的,而且依据实现函数的文件名称前缀的惯例,函数名称前缀为“Timer”。它通过将函数调用委托给 FreeRTOS 的定时器服务任务(Daemon Task),实现中断上下文与任务上下文的解耦。,可显著提升中断响应效率,同时确保系统的实时性和稳定性。原创 2025-02-19 10:51:13 · 432 阅读 · 0 评论 -
【FREERTOS守护任务详解】
FreeRTOS的守护任务是系统级后台任务,处理定时器、中断延迟及资源管理等关键操作。合理配置其优先级和资源,能显著提升系统可靠性和实时性。理解其机制有助于优化应用设计,避免常见陷阱如优先级反转或堆栈溢出。原创 2025-02-17 11:55:57 · 403 阅读 · 0 评论