自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

为颜如玉,为黄金屋,为名满天下,为功利千秋

为颜如玉,为黄金屋,为名满天下,为功利千秋

  • 博客(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

原创 【C++】Visual Studio 导入OPENCV

Visual Studio导入OPENCV

2023-05-25 11:28:00 2785 1

最全电子技术的网站大全

电子技术是指研究和应用电子器件、电路和系统的技术领域。它涉及到电子器件、电路设计、嵌入式系统、通信技术、控制系统、数字信号处理等方面的知识和技能。 在现代社会中,电子技术被广泛应用于各个领域,如通信、计算机、医疗、航空航天、汽车、家电等。电子技术的发展使得我们可以设计和制造出更小、更快、更强大的电子设备,并改善和提高各种系统和产品的性能。 电子技术的核心包括电子器件(如晶体管、集成电路)、电路设计与分析、信号处理、模拟和数字电子技术、通信原理与技术、微处理器和嵌入式系统设计等。通过运用这些知识和技能,电子工程师可以设计、开发和维护各类电子设备和系统,实现电子产品的创新和应用。 值得注意的是,在进行电子技术的研究和应用时,要遵守相关的法律法规和安全规范,确保电子设备的安全可靠性,保护环境和人身财产的安全。

2023-06-30

WT588D语音模块组语音芯片(可反复擦写)高音质语音下载16P-32M-33

WT588D是一款常见的语音模块,主要用于嵌入式系统中实现语音播放功能。该模块通过简单的串口通信进行控制,并且具有以下特点: 存储容量:WT588D语音模块内置了闪存存储器,可用于存储音频文件。存储容量通常为16Mbit或32Mbit,可以存储几十到几百个音频文件,具体容量取决于模块型号。 接口:WT588D语音模块通常提供了串口通信接口,包括串行数据线(TX、RX)、时钟线(CLK)和片选信号线(CS)。通过这些接口,可以与外部设备(如微控制器或Arduino等)进行通信。 控制方式:WT588D语音模块使用简单的指令来控制音频播放。通过发送特定的指令和参数,可以实现选择音频文件、音量调节、播放控制(如播放、暂停、停止等)以及其他特殊功能。 音质和输出:WT588D语音模块具有较好的音质表现,并且支持多种输出方式,如PWM脉宽调制输出、模拟音频输出或数字音频输出。 扩展性:WT588D语音模块还支持外部扩展存储器,通过连接外部闪存芯片可以扩展更多的音频存储空间。 请注意,具体的使用方法和功能配置可能会因不同的供应商或版本而有所差异。在使用WT588D语音模块时,建议参考其

2023-06-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除