- 博客(5)
- 收藏
- 关注
原创 QP/C学习笔记(五) QActive实现原理
本文分析了QP/C中QActive的实现原理及其对RTOS资源的依赖。QActive通过继承QAsm基类实现面向对象编程,主要数据结构包含线程优先级、线程句柄和事件队列。其运行机制依赖RTOS的任务和队列:每个状态机运行在独立线程中,通过阻塞等待事件队列实现异步通信。启动流程包括创建事件队列、注册状态机、执行初始状态和创建线程。QActive核心功能通过RTOS的队列实现事件传递,利用任务作为状态机运行载体,这种设计使得QP/C能灵活适配不同RTOS平台。理解这些底层机制有助于在不同操作系统上移植QP/C框
2025-08-01 02:57:11
989
原创 QPC学习笔记(四):层次状态机
本文介绍了基于QPC框架的层次状态机实现方法。层次状态机通过状态嵌套和事件传递机制,有效解决复杂系统状态爆炸问题。文章以交通灯控制为例,展示了红灯、黄灯和绿灯(包含闪烁子状态)的状态转换逻辑,重点解析了Q_SUPER宏的父状态返回机制
2025-06-03 01:30:12
717
原创 QPC学习笔记(三):QPCdemo解析
本文解析了QPC框架下的Binky_Demo示例,展示了如何使用状态机实现LED闪烁控制。示例通过Blinky结构体(继承QActive基类)和时间事件QTimeEvt,构建了一个简单的状态机系统。重点分析了Blinky_ctor()构造函数如何初始化Active对象并绑定初始状态,以及Blinky_initial()函数如何启动定时器和切换状态。状态机在OFF和ON状态间通过TIMEOUT_SIG事件进行循环切换,配合Q_ENTRY_SIG实现LED控制。该示例清晰展示了QPC状态机的基本编程模式和事件处
2025-05-27 00:48:06
1047
原创 QPC学习笔记(二):基于FreeRTOS移植QPC
本文介绍了在FreeRTOS上移植QPC(Quantum Platform C)框架的关键步骤。主要内容包括:1)准备QPC源码和FreeRTOS工程模板;2)重点关注移植核心文件qf_port.c中的关键接口实现,特别是QF_run()和QF_onStartup()函数;3)时间事件基准接口的实现方法,使用FreeRTOS定时器触发QP事件;4)事件池的初始化配置。文章指出移植成功的三个关键点:平台适配、QF_onStartup实现和事件池初始化,并说明类似方法可应用于其他RTOS平台。最后预告下期将分析
2025-05-26 01:03:50
519
原创 QPC学习笔记(一):什么是QP/C
QP/C是一个专为嵌入式系统设计的实时事件框架,采用异步事件驱动的Active Object模型。它提供状态机实现和运行时环境,可作为传统RTOS与应用程序间的抽象层,降低移植难度。框架包含通用模板,支持同步/异步操作和事件/时间驱动模型。典型应用开发流程包括:状态机对象构建、资源初始化、状态与事件定义、状态接口编写等。QP/C相比手动状态机具有更高结构化和可扩展性,适合复杂嵌入式系统开发。后续将介绍在FreeRTOS平台上的移植方法。
2025-05-25 19:38:15
889
QP/C多平台样例合合集
2025-05-27
QP/C-8.0.3源码
2025-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人