单片机裸奔之状态机浅谈

[复制链接]
楼主: TTK0314
手机看帖
扫描二维码
随时随地手机跟帖
keer_zu| | 2015-8-13 16:15 | 显示全部楼层
1026869700 发表于 2015-8-13 16:12
我知道状态机不是OS,我说的意思是:如果不用OS的话,状态机是一种不错的编程思想。 ...

和用不用os没关系吧,只和你要解决的问题有关。

使用特权

评论回复
Simon21ic| | 2015-8-14 09:04 | 显示全部楼层
状态机为啥和OS无关?状态机实现的协作式多任务内核就不是OS了?

使用特权

评论回复
racinglam| | 2015-8-14 09:13 | 显示全部楼层
楼主的是WIN32的编程思想吧

使用特权

评论回复
1026869700| | 2015-8-17 17:51 | 显示全部楼层
Simon21ic 发表于 2015-8-14 09:04
状态机为啥和OS无关?状态机实现的协作式多任务内核就不是OS了?

你说的对,我的理解也是这样的。

使用特权

评论回复
keer_zu| | 2015-8-17 17:54 | 显示全部楼层
Simon21ic 发表于 2015-8-14 09:04
状态机为啥和OS无关?状态机实现的协作式多任务内核就不是OS了?

解释一下啥叫:”状态机实现的协作式多任务内核“

使用特权

评论回复
Simon21ic| | 2015-8-19 22:18 | 显示全部楼层
keer_zu 发表于 2015-8-17 17:54
解释一下啥叫:”状态机实现的协作式多任务内核“

呵呵,看我的构架吧

使用特权

评论回复
keer_zu| | 2015-8-20 08:56 | 显示全部楼层
Simon21ic 发表于 2015-8-19 22:18
呵呵,看我的构架吧

os还是以资源管理,平台化为核心的,状态体现类似任务管理(空闲,运行,等待...)等上面,当然多任务也不是必须的,比如DOS。所以以此定义操作系统不妥吧。

使用特权

评论回复
Simon21ic| | 2015-8-20 09:36 | 显示全部楼层
本帖最后由 Simon21ic 于 2015-8-20 09:38 编辑
keer_zu 发表于 2015-8-20 08:56
os还是以资源管理,平台化为核心的,状态体现类似任务管理(空闲,运行,等待...)等上面,当然多任务也 ...

我没有说状态机就是操作系统,我只是说,操作系统可以用状态机来实现。
状态机和操作系统,不同的概念,但并不代表没任何关系。
状态机并非不能平台化,你可以去看一下QP量子平台。
至于资源管理,裸奔都可以做资源管理。

使用特权

评论回复
keer_zu| | 2015-8-20 10:34 | 显示全部楼层
Simon21ic 发表于 2015-8-20 09:36
我没有说状态机就是操作系统,我只是说,操作系统可以用状态机来实现。
状态机和操作系统,不同的概念,但 ...

你玩过:QP量子编程,给大家科普一下啊。

使用特权

评论回复
Simon21ic| | 2015-8-20 10:36 | 显示全部楼层
keer_zu 发表于 2015-8-20 10:34
你玩过:QP量子编程,给大家科普一下啊。

没玩过,只是看了他们的系统构架,记得他们有一本书的

使用特权

评论回复
keer_zu| | 2015-8-20 10:41 | 显示全部楼层
Simon21ic 发表于 2015-8-20 10:36
没玩过,只是看了他们的系统构架,记得他们有一本书的

我第一次听说:@dong_abc 听说过没有。


QP: Quantum Programming
QP是一个通用的事件驱动框架,面向MCU,面向并发的层次式状态机模型。

QP包含了1个轻量级的QK(Quantum Kernel)。

QEP:Quantum Event Processor是一个通用的,可移植的,可重用的状态机引擎。
QEP允许你直接把UML样式的状态图映射为代码。
QEP提供了传统的简单平面状态机和层次式状态机。QEP可以直接操作事件队列和事件分发机制。

QF是一个通用的,事件驱动的应用框架,面向嵌入式系统。
QF被设计成和QEP,RTOS协同工作。
QF包含了事件队列,活动对象,事件遍历等。


QK是一个极小的,按RTC习惯的,执行独立任务的内核。
QK必须和QF版本相匹配。

QS是一个的实时跟踪设施。

QP/C++ Class List

QActive Base class for derivation of application-level active object classes    应用级活动对象的基类
QEP Macro to specify compiler-specific directive for placing a constant object in ROM.Macro to specify compiler-specific directive for accessing a constant object in ROM.Provides miscellaneous QEP services
QEQueue Native QF Event Queue class    QF事件队列类
QEvent QEvent base class   QF事件基类
QF QF services   QF基础服务(出版-订阅,。。。)
QFreeBlock Structure representing a free block in the Native QF Memory Pool
QFsm Finite State Machine base class    平面式状态机
QHsm Hierarchical State Machine base class   层次式状态机基类
QK QK services   QK核心服务
QMPool Native QF memory pool class    QF内存池管理类
QPSet Priority Set useful for building various schedulers, but also useful as a general set of up to 64 elements of any kind
QPSet8 Priority Set useful for building various schedulers, but also useful as a general set of up to 8 elements of any kind
QS Quantum Spy logging facilities    Log 设施
QSubscrList Subscriber List class
QTimeEvt Time Event class   事件时间类


使用特权

评论回复
Simon21ic| | 2015-8-20 10:59 | 显示全部楼层
keer_zu 发表于 2015-8-20 10:41
我第一次听说:@dong_abc 听说过没有。

他们的代码很简单,我没看过他们的书,直接看代码了
而且代码也是公开的

使用特权

评论回复
keer_zu| | 2015-8-20 11:13 | 显示全部楼层
Simon21ic 发表于 2015-8-20 10:59
他们的代码很简单,我没看过他们的书,直接看代码了
而且代码也是公开的 ...

有时间看一看,现在不做mcu开发了,更多关注于C++,JAVA,设计模式等

使用特权

评论回复
dong_abc| | 2015-8-20 18:23 | 显示全部楼层
keer_zu 发表于 2015-8-20 10:41
我第一次听说:@dong_abc 听说过没有。

看过一点,好几年了。

使用特权

评论回复
keer_zu| | 2015-8-24 10:43 | 显示全部楼层
dong_abc 发表于 2015-8-20 18:23
看过一点,好几年了。

设计模式还是不错的,如能领会贯通,甚是有用。

使用特权

评论回复
walnutcy| | 2015-8-24 23:08 | 显示全部楼层
裸奔就是玩状态机,刚工作时8位机带UI及触摸屏,全是状态逻辑

使用特权

评论回复
keer_zu| | 2015-8-25 09:39 | 显示全部楼层
walnutcy 发表于 2015-8-24 23:08
裸奔就是玩状态机,刚工作时8位机带UI及触摸屏,全是状态逻辑

是啊,欢迎一起分享一下心得。

使用特权

评论回复
呼啦啦浩子| | 2015-10-14 10:18 | 显示全部楼层
好顶赞马!学习了

使用特权

评论回复
a435262767| | 2016-2-4 21:01 | 显示全部楼层
非常感谢!原来不知道状态机是个什么东西,就近需要用到资料经常出现这三个字,正好学一下

使用特权

评论回复
奥卡姆剃刀| | 2016-3-25 11:39 | 显示全部楼层
顶一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则