QP-nano结构分析
QP-nano是QP的一个裁剪版本,是一个通用的、可移植的、超轻量级的事件驱动型框架。适用于像8051、PIC、AVR、MSP430、68HC01/11/12、R8C/Tiny等资源受限的8位和16位MCU。其一个QP-nano应用可以放入到只有100字节的RAM和2K字节ROM的系统中。
适用的应用范围是电机控制,照明控制,电容触摸,遥控、RFID、温度调节器、小家电控制、玩具、电源、电池充电器等。
特征:
- 支持最多4层状态嵌套;
- 支持最多8个活动对象(AO);
- 支持最多255个事件;
- 采用直接分派事件实例到AO的队列中;
- 每个AO有一个一次性时间事件;
- 可选采用抢占式调度QK_nano或合作式调度Vanilla;
- 具有空闲回调函数结构,方便实现低功耗模式;
- 具有断言的错误处理功能。
QPnano总体结构图如下:

图1. QP-nano总体结构
QK调度流程如下:

图2. QP-nano之QK流程
Vanilla调度流程如下:

图3.QP-nano之Vanilla流程
参考:
【1】Miro Samek《UML状态图的实用C/C++设计---嵌入式系统的事件驱动型编程技术》第二版
QP-nano结构分析的更多相关文章
- 基于raw os 的事件触发系统
Raw os的事件触发系统有以下特点: 1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM). 2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了 ...
- 微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server
微软已经发布 Windows Server 2016 和 System Center 2016 第三个技术预览版,已经提供下载.Windows Server 2016 技术预览版第三版也是首个包括了容 ...
- Linux Nano命令
Nano命令指南 今天在输命令时,无意中输入了nano,对这个命令不太熟悉,结果不知道如何才能退出,保存,赶快查了一下资料,原来是这样的啊. 打开文件与新建文件 使用nano打开或新建文件,只需键入: ...
- ASP.NET Core 中文文档 第二章 指南(5) 在 Nano Server 上运行ASP.NET Core
原文 ASP.NET Core on Nano Server 作者 Sourabh Shirhatti 翻译 娄宇(Lyrics) 校对 刘怡(AlexLEWIS).许登洋(Seay).谢炀(kile ...
- Linux下Nano命令使用指南
1.什么时候用nano? 一般网络很卡,ssh时一用vim/vi 就死窗口,或者死机的情况 2.如何使用? 打开或新建文件 #nano 文件名 禁用自动换行 #nano -w /etc/fs ...
- nano编辑器使用教程
使用Linux VPS会经常和编辑器打交道,一般常用的是vi和nano,虽然vi功能强大,但是相对新手来要稍微难上手,GNU nano是一个体积小巧而功能强大的文本编辑器.这里就简单说一下nano的使 ...
- Facebook的体系结构分析---外文转载
Facebook的体系结构分析---外文转载 From various readings and conversations I had, my understanding of Facebook's ...
- 4分钟了解nano编辑器和简单命令 2015.10.6
nano感觉并不常用,但是偶尔遇到过几次. nano命令是一个类似VI的编辑器,但是更简单,其中的i,a等命令似乎可以用,但是有些命令不可以用.保存和退出最大的区别在于退出方式,如果你要保存所做的修改 ...
- Ubuntu文本编辑时vi和nano命令的区别(建议使用nano)
vi是Unix世界里极为普遍的全荧幕文书编辑器,几乎可以说任何一台Unix机器都会提供这套软体就像windows的记事本一样. 键入 vi /etc/hosts 进入vi界面,把光标移动到文件未尾.按 ...
- Codeforces Gym 100637A A. Nano alarm-clocks 前缀和处理
A. Nano alarm-clocks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100637/p ...
随机推荐
- 个体商户POS机遭遇禁刷 职业养卡人称自有对策
“套现猛于虎也”,这对于信用卡业而言无异于一大命门,信用卡套现金额的规模如同滚雪球般愈演愈烈.记者昨日采访银行业内了解到,虽然为防套现将根据规定关闭个体商户POS机刷信用卡的功能,但职业“养卡人”不以 ...
- C#接收WebSphere MQ中文乱码问题
最近在用IBM的WebSphere MQ做数据传输,客户端操作系统Windows,服务器是AIX,我们用的都是UTF-8编码,但是联调时发现带中文的都出现了乱码.折腾了好久才发现问题,原来是CCSID ...
- 使用WdatePicker日期组件时,选择日期后,执行某个方法
WdatePicker({onpicked:function(){alert(123);},dateFmt:'yyyy年MM月dd日',maxDate:'%y-%M-%d'}) 1.onpicked: ...
- Android笔记——Socket通信实现简单聊天室
两部分,客户端和服务端 ---------------------------------------------------------------- 客户端 1.为防止ANR异常,互联网连接可用 ...
- 【Leetcode】【Medium】Combination Sum
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...
- Python学习---递归函数的学习
定义:在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归特性: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 ...
- windows server 2003安装Oracle webtier 32位因环境变量原因报错
在服务中启动Oracle processer manager时报错:错误1053:服务没有及时响应启动或控制请求 原因是本系统还安装过BI和Oracle数据库等产品 解决方法:删除和本次安装无关的环境 ...
- simotion连接 V90 1FL6 增量型电机,报警20025 编码器细分设置
V90 1FL6 增量型电机 The configured fine resolution for Gx_XIST1 (Encoder_N.absEncoder.absResolutionMultip ...
- sql server alter column 由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN 失败
今天在修改一个字段类型,由原来的 varchar(500) 增加到 varchar(1000) 则对应的SQL 语句,执行后如图错误 结果查下来是因为其中一个视图建成了索引视图, 解决办法:先将该视图 ...
- docker初使用(主要记录命令)
启动服务 docker run -it -p : steveny/predictionio: /bin/bash 开始所有服务 pio-start-all 查看有那些服务 jps -l $ docke ...