基于raw os 的事件触发系统

本文介绍了基于Raw OS的事件触发系统,该系统采用UML状态机设计理念,实现有限状态机和活动对象(ACTIVE OBJECT),具有64个优先级,保证任务实时性。系统资源占用极低,仅需几个字节RAM和小于1K的ROM。此外,系统支持紧急事件、活动对象超时机制和非抢占式调度,确保实时性和资源管理。对比裸机和RTOS编程,Raw OS事件触发系统在实时性、功耗和代码维护方面具有优势。
摘要由CSDN通过智能技术生成

Raw os的事件触发系统有以下特点:

 

1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM)。

 

2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了一个消息队列以及一个状态机。活动对象是具有优先级的,这样任务的实时性能够得到保证。消息队列的设计能够保证即时信号不丢失。

 

3活动对象(ACTIVE OBJECT)一共有64个优先级,对于小系统而言足够了。

 

4 整个系统消耗RAM只有几个字节,rom 消耗小于1K。而且64个活动对象共享一个栈空间。

 

5 消息系统支持紧急事件发送。一般的时候事件发到消息队列尾部,紧急事件可以发到头部。

 

6 支持活动对象超时机制,即在活动对象内部允许向某个活动对象启动一个软件定时器,超时了可以自动向指定的活动对象发送超时信号。

 

7 系统最大关中断时间为顺序15句C语言,在keil mdk 编译器(-O2)下总共有48句顺序汇编。假设一个机器时钟周期运行一句汇编,如果使用12M系统的8051, 系统最大关中断时间约为4us, 在72M的m3系统上为0.6us。这样的实时性对于中断反应来说是可以接受的。

 

8 系统任务的最大延迟时间为某个活动对象的状态机执行的最长的路径。所以设计短时间执行的状态机成为实时性关键。通常情况下状态机可以分解,写出短路径的状态机不是件难事。

 

9 整个事件触发系统为非抢占系统,也就是说不用担心各活动对象状态机之间的资源共享问题。唯一需要注意的是中断那边和状态机之间的资源冲突,因为有了消息机制,强制中断通过消息系统发送事件,一定程度上避免了临界区的问题。

 

10 基于状态机的编程对于解决某些复杂逻

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值