12 2015 档案

摘要:抽象状态机类QFsm或QHsm有一个函数指针,用于在继承的具体状态机类中指向具体的状态函数,其有两个对外的接口函数init()和dispatch(),其工作原理是理解状态机处理事件过程的关键。具体状态机类继承自QFsm或QHsm,同时继承了这个函数指针,用于动态指向具体状态机类中的私有状态函数。具体事件继承于根事件QEvent,并可以自己增加附加的属性。事件是外部与状态机唯一通信的实体,通过dis... 阅读全文
posted @ 2015-12-27 21:10 hyper99 阅读(3173) 评论(0) 推荐(2)
摘要:QP-nano是QP的一个裁剪版本,是一个通用的、可移植的、超轻量级的事件驱动型框架。适用于像8051、PIC、AVR、MSP430、68HC01/11/12、R8C/Tiny等资源受限的8位和16位MCU。其一个QP-nano应用可以放入到只有100字节的RAM和2K字节ROM的系统中。适用的应用范围是电机控制,照明控制,电容触摸,遥控、RFID、温度调节器、小家电控制、玩具、电源、电池充电器等... 阅读全文
posted @ 2015-12-17 02:08 hyper99 阅读(4511) 评论(0) 推荐(0)
摘要:量子平台(Quantum Platform, 简称QP)是一个用于嵌入式系统的软件框架。QP 是轻量级的、开源的、基于层次式状态机的、事件驱动的框架。利用QP 可以开发出结构清晰的、事件驱动的嵌入式系统应用程序(使用C 或C++语言)。 基本特性: QP是一个基于事件驱动的嵌入式系统软件框架; 活动 阅读全文
posted @ 2015-12-13 00:50 hyper99 阅读(2326) 评论(0) 推荐(0)
摘要:1.概念RTC(Run To Completion)是运行到完成为止的意思。在状态机中,从源状态到目标状态的转换动作要运行到完成。从字面上来看,这个过程像是不可中断的,但实际并不是,这个过程可以被硬件中断程序打断。在本状态机中,一个事件处理要是执行了,本状态机的其它事件到来时,就只能在队列中等待,不可中断这个正在处理的过程,也就是要运行到完成(RTC)。这个事件处理完后,才能对队列中的其它事件进行... 阅读全文
posted @ 2015-12-02 14:13 hyper99 阅读(1468) 评论(3) 推荐(0)
摘要:SST(Super Simple Task) 是一个基于任务优先级、抢占式、事件驱动、RTC、单堆栈的超级简单任务调度器,它基于Rober Ward一篇论文的思想,Miro Samek用C重新编程实现的,它是QP中QK的的基本思想。QK加上状态机事件处理的方法QEP,再加上任务的注册与事件的保存与分发功能QF,再加上串口调试功能QSpy,再加上基于模型驱动的开发QM,就成了QP。2015年,QP获... 阅读全文
posted @ 2015-12-01 22:19 hyper99 阅读(2439) 评论(1) 推荐(1)
摘要:QK是一个很小的抢占式微内核调度程序,它专用用QP中。QK的思想源于SST,Miro Samek重写了自己前期编的SST(Super Simple Task)代码。QK循环查询AO队列的状态表QK_readySet_,查找当前最高级的AO(活动对象,任务),分发最高级AO队列中的事件到相对应的AO中。并在某事件消耗完时,回收事件。QK的流程图如下: 阅读全文
posted @ 2015-12-01 20:30 hyper99 阅读(1486) 评论(2) 推荐(0)
摘要:1.QK的特性QK(Quntum Kernel)是一个抢占式、基于优先级实时微内核、一个多任务调度器;QK不同于传统的RTOS,是非阻塞的,并且只用了一个stack;对QK中的任务来说,采用了IOC(好莱坞原则)方式(是callback的),而不同于传统RTOS中任务的多线程或进程中的等待;传统RTOS只有中断后,才可能会有任务切换,而QK不只是中断后,在post一个事件后,也可能会使任务切换;Q... 阅读全文
posted @ 2015-12-01 20:06 hyper99 阅读(1063) 评论(0) 推荐(0)