自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 uMCN支持不同数据类型

动态确定数据大小:通过obj_size字段和void*通用指针支持不同的数据类型。内存动态分配:根据数据大小动态分配内存,确保系统能够处理多种类型的数据。类型透明性:使用memcpy和通用指针,确保数据发布和订阅过程中数据类型的透明性。灵活的主题定义:开发者可以根据需要定义不同大小的数据主题,系统可以处理结构体、基本数据类型等多种数据类型。这种设计使得uMCN非常灵活,可以广泛应用于嵌入式系统中,处理各种类型的传感器数据、控制信息等。

2024-10-05 16:07:22 1570 1

原创 MCU订阅-发布模式

McnHub是 uMCN 的核心结构,负责管理主题的发布和订阅。McnNode代表订阅者,管理订阅的主题和数据更新的回调函数。McnList用于维护所有消息中心的链表。uMCN通过这些结构实现了一个高效的发布-订阅系统,保证了发布者和订阅者之间的松耦合和数据的一致性。

2024-10-05 16:07:01 980

原创 MCU嵌入式数据总线模式和订阅-发布模式

数据总线模式(Data Bus Pattern)和发布-订阅模式(Publish-Subscribe Pattern,又称 Pub/Sub Pattern)都是用于在不同系统组件之间传递信息的模式,它们都使用了解耦合的概念来提升系统的灵活性和扩展性。

2024-04-06 00:50:49 546

原创 实时嵌入式:优先级反转

当一个高优先级任务H被低优先级任务L阻塞时,任务L临时继承任务H的优先级,直到它释放那个资源。在操作系统的上下文中,优先级反转发生在低优先级任务持有一个高优先级任务需要的资源时,而且该低优先级任务因为某些原因被中等优先级任务抢占执行。当提到“无限优先级反转”时,其实指的是一种特殊情况的优先级反转,其中高优先级任务可能会被无限期地阻塞,因为它在等待一个低优先级任务释放资源,而该低优先级任务却始终无法得到执行机会(因为总是被其他中等优先级的任务抢占)。C嵌入式编程设计模式源码-CSDN博客。

2024-02-01 12:42:57 558 1

原创 嵌入式软件开发从小工到专家

**有道无术,术尚可求;有术无道,止于术**

2023-12-29 20:33:04 2599 2

原创 Bruce Powel Douglass大师介绍

Bruce Powel Douglass是嵌入式软件、系统工程和实时系统开发领域的知名人物。他的职业生涯超过35年,特别是在实时和嵌入式系统的软件工程方法论方面做出了重大贡献。

2023-11-28 21:53:41 1559

原创 5.2 状态机基本概念

例如,在微波炉的情景中,元素是微波炉(或至少是涉及烹饪的元素集合),状态是该系统的条件,如关闭(Off)、就绪(Ready)、微波烹饪(Microwaving)、门开(DoorOpen)和暂停(Paused)。如果在元素处于不响应特定事件的状态时发生事件,事件将“静默丢弃”,无效果——即状态机只做肯定陈述(“当我处于这个状态并且发生这个事件时,我会做这个”),而不是否定陈述(“如果我不在这个状态或者这个没有发生,那么我会做那个”)。在状态内没有明确处理的事件,在元素处于该状态时发生时会被丢弃。

2023-11-21 23:06:06 207

ad7606_drv.h

ad7606_drv.h

2024-11-03

随机大值检测算法(泊松算法、KNN算法),PC段进行模拟验证

泊松算法

2024-03-27

状态机示例代码:关机 (Off)、就绪 (Ready)、微波 (Microwaving)、暂停 (Paused)、门开 (Do

关机 (Off): 微波炉处于关闭状态。在这个状态,系统是关闭的。 当执行 powerOn/powerOnSelfTest(); 动作时,系统会进行自检并切换到 "Ready" 状态。 就绪 (Ready): 系统已初始化并准备运行。 当执行 initialize(); 动作时,系统从 "Off" 状态初始化到 "Ready" 状态。 当执行 timedCook 动作时,系统会根据设置的时间开始烹饪,并切换到 "Microwaving" 状态。 微波 (Microwaving): 在这个状态,食物正在被加热。 当执行 emitMicrowaves(PowerSetting) 动作时,微波炉开始发射微波以加热食物。 如果在加热过程中用户执行 cancel 操作,或者食物加热完成,微波炉会停止发射微波,并切换回 "Ready" 状态。 如果用户执行 pause 操作,微波炉会记录当前的烹饪时间,并切换到 "Paused" 状态。 暂停 (Paused): 微波炉处于暂停状态。 在这个状态下,如果用户执行 resume 动作,微波炉会继续之前的烹饪操作,并切换回 "Microwavi

2024-03-27

空空如也

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

TA关注的人

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