- 博客(10)
- 收藏
- 关注
原创 【嵌入式操作系统】计数信号量
摘要:本文介绍了计数信号量的实现原理与操作方法。计数信号量结构体包含事件控制块、当前计数和最大计数三部分。创建信号量时需初始化事件控制块并设置计数范围。获取信号量时若计数不足会阻塞任务,释放信号量则会唤醒等待任务或增加计数。此外还提供了非阻塞获取、删除和查询信号量状态的功能。该实现基于《从零到一手写嵌入式操作系统》课程内容,采用事件队列管理任务等待,通过临界区保护确保操作原子性,并支持优先级调度。
2026-01-12 21:44:02
417
原创 【嵌入式操作系统】事件控制块
本文介绍了嵌入式操作系统中事件控制块(ECB)的实现原理。ECB包含事件类型和任务等待列表,通过tEventInit初始化。核心功能包括:tEventWait将任务挂起到等待队列;tEventWakeUp唤醒等待任务并加入就绪队列;tEventRemoveTask移除单个等待任务。还提供了tEventRemoveAll清空所有等待任务和tEventWaitCount查询等待任务数量的功能。这些底层操作不直接调度任务,而是为上层机制(如信号量、消息队列)提供基础支持。所有操作都需在临界区执行以保证线程安全。
2026-01-07 21:29:08
369
原创 【嵌入式操作系统】任务管理
本文介绍了嵌入式操作系统中任务管理的核心机制。主要内容包括:1) 任务挂起与唤醒的实现,通过挂起计数器控制任务状态转换;2) 任务删除的两种方式(强制删除和标记删除)及清理函数的调用机制;3) 任务状态查询接口的设计。文中详细分析了任务控制块(tTask)的数据结构扩展,包括新增的挂起次数、清理函数等字段,并给出了关键API的实现逻辑,如tTaskSuspend()、tTaskWakeUp()、tTaskForceDelete()等。这些机制为嵌入式系统提供了灵活的任务管理能力,同时保持了操作系统的实时性和
2026-01-06 19:37:04
254
原创 【嵌入式操作系统】内核核心
本文介绍了嵌入式系统中的临界区保护、调度锁、位图数据结构及双向链表实现。临界区保护通过PRIMASK寄存器实现原子操作,提供tTaskEnterCritical和tTaskExitCritical函数。调度锁采用计数器方式实现嵌套控制。位图结构使用32位整数和快速查表算法优化查找。双向链表实现了节点初始化、插入删除等基本操作,并通过宏实现结构体地址反向计算。最后介绍了任务延时队列和时间片轮转调度机制,通过优先级位图和任务链表实现多任务管理,包括延时处理、就绪队列维护和时间片控制等功能。
2026-01-03 21:24:52
939
原创 【嵌入式操作系统】基础任务切换
摘要:本文介绍了SVC和PendSV在ARM Cortex-M处理器中的关键作用。SVC(系统服务调用)用于安全执行特权操作,通过指令触发系统调用;PendSV(可挂起服务调用)主要用于任务上下文切换,通过设置为最低优先级实现延迟切换。文章详细讲解了两种任务切换方法的实现机制,包括寄存器保存/恢复过程和堆栈指针处理,并分析了空闲任务调度策略。这些机制共同构成了嵌入式实时操作系统的核心调度功能,确保任务切换的高效性和系统的稳定性。
2026-01-02 14:40:34
1039
原创 IAR无法同时调试和下载多核
IAR Embedded Workbench在多核调试和下载方面存在一些限制,但通过一些创造性的方法和工具,我们仍然可以克服这些挑战。随着技术的不断进步,我们期待未来会有更多的改进,使得多核处理器的调试和下载变得更加高效和直观。希望本文能为您在使用IAR时提供一些帮助和启发。
2024-03-13 20:55:01
1027
原创 STM32与ESP8266的MQTT协议
在物联网应用中,设备之间的可靠通信是至关重要的。MQTT(Message Queuing Telemetry Transport)协议作为一种轻量级、灵活且可靠的通信协议,被广泛应用于物联网场景中。本文将着重介绍如何在STM32微控制器和ESP8266无线模块上实现MQTT通信,探讨其在物联网应用中的优势和应用案例。MQTT协议是基于发布/订阅模型的机制,采用非常简洁的设计,适用于低带宽和不稳定网络环境。它具有两个核心概念:发布者(Publisher)和订阅者(Subscriber)。
2023-06-28 19:48:02
6116
4
原创 简单介绍STM32上的FreeRTOS实时操作系统
FreeRTOS是一款广泛使用的开源实时操作系统(RTOS),它为嵌入式系统提供了可靠的任务调度和并发管理。在嵌入式领域中,STM32微控制器广受欢迎,并且与FreeRTOS的结合使用可以提供强大的功能和灵活性。在本篇博客中,我们将深入探究STM32上的FreeRTOS,并了解其核心概念、任务调度算法、任务通信机制以及在实际应用中的使用案例FreeRTOS(Free Real-Time Operating System)是一款开源的实时操作系统(RTOS),专为嵌入式系统设计。
2023-06-24 15:57:43
12107
3
原创 CubeMX移植RT-Thread nano【Keil】
本文介绍了如何基于 CubeMX 移植 RT-Thread Nano,并说明生成代码工程的步骤。RT-Thread Nano 已集成在 CubeMX 中,可以直接在 IDE 中进行下载添加。本文档介绍了如何使用 CubeMX 移植 RT-Thread Nano,并以一个 stm32f103 的基础工程作为示例进行讲解。。提示:以下是本篇文章正文内容,下面案例可供参考。
2023-06-01 21:51:55
564
2
最全电子技术的网站大全
2023-06-30
WT588D语音模块组语音芯片(可反复擦写)高音质语音下载16P-32M-33
2023-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅