摘要: 量子平台(Quantum Platform, 简称QP)是一个用于嵌入式系统的软件框架。QP 是轻量级的、开源的、基于层次式状态机的、事件驱动的框架。利用QP 可以开发出结构清晰的、事件驱动的嵌入式系统应用程序(使用C 或C++语言)。 基本特性: QP是一个基于事件驱动的嵌入式系统软件框架; 活动 阅读全文
posted @ 2015-12-13 00:50 hyper99 阅读(2040) 评论(0) 推荐(0) 编辑
摘要: 1.概念RTC(Run To Completion)是运行到完成为止的意思。在状态机中,从源状态到目标状态的转换动作要运行到完成。从字面上来看,这个过程像是不可中断的,但实际并不是,这个过程可以被硬件中断程序打断。在本状态机中,一个事件处理要是执行了,本状态机的其它事件到来时,就只能在队列中等待,不可中断这个正在处理的过程,也就是要运行到完成(RTC)。这个事件处理完后,才能对队列中的其它事件进行... 阅读全文
posted @ 2015-12-02 14:13 hyper99 阅读(1366) 评论(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 阅读(2148) 评论(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 阅读(1322) 评论(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 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 微处理器复位方法:用硬件引脚RESET的复位方法;用看门狗的复位方法;自己程序控制的复位方法(本文方法,叫软件复位)。软件复位实现方法首先声明一个函数指针,指向复位后要开始执行指令的位置:void (*app_start)(void) = 0x0000;可以根据具体微处理器复位后的位置,修改后边的地址。之后,在自己的程序中想复位的地方调用app_start(); 也就是跳到0x0000位置执行指... 阅读全文
posted @ 2015-11-24 14:38 hyper99 阅读(4610) 评论(0) 推荐(0) 编辑
摘要: 一.DbC基本概念DbC的思想源于商业活动中商家和用户的行为(义务和利益关系),双方都要遵守一个契约(合同),交易才能完成。商家与用户的契约关系如下:1. 商家必须提供某种产品(义务),并有权获得用户支付的费用(利益);2. 客户端必须支付费用(义务),并有权获得产品(利益);3. 商家用户双方都必须遵守某些义务,如法律,法规。二.软件中的DBCDbC(Design by Contract,按契约... 阅读全文
posted @ 2015-11-10 00:39 hyper99 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 基于LED和串口通信的DBC调试工具:HAssert --- Hyper LED/Serial Assert 。本文基于DbC思想 ,在Arduino平台上实现了两种断言显示方式---LED显示和串口输出显示。LED显示方式适用于没有串口(这种情况很少),或者串口已经被占用的情况,只用一个LED的显示次数来调试程序;串口输出显示方式可以把断言内容传送到PC机,在PC机看到出错的位置(文件名和行号)... 阅读全文
posted @ 2015-11-10 00:39 hyper99 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 1.测不准原理1927年,德国物理学家海森堡,首先提出了量子力学中的不确定性。即在一个量子力学系统中,一个粒子的位置和它的动量不可被同时确定。这就是著名的测不准原理。基于海森堡的测不准原理,推广之,对任何系统,加入了观测后,必然会对系统产生或多或少的影响。或者说,如果你要观测一个系统,严格意义上说,它就不是原来的系统了。如何既要对系统进行观测,又要对系统影响最小? 2.软件测试方法软件的测试方法有... 阅读全文
posted @ 2015-11-04 00:45 hyper99 阅读(1042) 评论(0) 推荐(0) 编辑
摘要: 一.简介嵌入式软件是电子产品中不可缺的一部分。嵌入式软件关心的不是数据转换,而重点在与物理世界的交互上。它运行在一个机器或电子设备上【1】。二.特点时间性、并发性、活跃性、鲁棒性、连续体(continuums) 、响应性、异构性、资源分配这些方面是嵌入式软件需要考虑的问题。嵌入式软件目的不是一般意义计算中的数据转换,而是要与物理世界进行交互。嵌入式软件是运行在机器上的程序,它运行于汽车、飞机、电话... 阅读全文
posted @ 2015-11-03 23:02 hyper99 阅读(926) 评论(0) 推荐(1) 编辑