[M051]基于事件驱动类模拟操作系统OSAL

[M051]基于事件驱动类模拟操作系统OSAL

[M051]

基于事件驱动类模拟操作系统OSAL

[复制链接]

电梯直达

楼主

yuleying

发表于 2016-10-12 20:35:44

|

只看该作者

|倒序浏览

|阅读模式

EventDrivenClassOSAL详解前言什么是OSAL:目前本人已知OSAL概念是由TI公司在ZIGBEE协议栈引入,他的意思是”模拟操作系统”,此OS,并非一个真正的OS,而是模拟OS的一些方法为广大编程者提供一种写MCU程序的方法. EventDrivenClassOSAL:是一个由事件驱动类的OSAL,顾名思义此OSAL完全由事件进行驱动,没有事件任务就没有事干,那么OSAL就会调度空闲任务,等待事件的发生. EventDrivenClassOSAL特点:此系统完全由C语言编写,不会涉及汇编,摒弃了内存管理,链表等复杂的方法,且代码量非常少,整个系统不足1000行;适合初学者使用,内存占用小,也适用于各类MCU,不挑剔硬件平台,依耐于硬件的资源只需要一个定时器. EventDrivenClassOSAL适用性:此OSAL适用于对实时性不严格,对产品成本严格控制,使用较低端的MCU的场景.可适于以上场景的用绝大部分应用. 关于内存占用情况:基于新唐NUVOTON M0-58MCU硬件平台,使用官方标准库,一个示例代码(代码包括4个按键驱动示例程序,一个软件BUZZ驱动程序,2个任务,用来作按键消息分发和按键消息处理,可以说一个简单的应用已经完成80%.)内存使用情况如下:Program Size: Code=6132 RO-data=472RW-data=64 ZI-data=672 可以看出OSAL内存是占用远远于一般的OS,并且OSAL已经实现任务的消息队,列把任务/事件/定时器的堆空间已经包括,在写应用代码时不会在重复创建. 后续会补充一个基于8051的示例代码内存使用情况. 鸣谢:特别感谢我的同事”罗天浩,LTH”提供了OSAL的部分框架,特别是万能的消息队列,使OS部得更简洁. 感谢业界各位朋友提供宝贵的意见和建议.声明: 文档中部分见解属于个人见解,未经过验证(如:OSAL定义),如果错误敬请谅解,欢迎批评指导.源代码下载:http://pan.baidu.com/s/1bO6kJ8作者:余乐瀛QQ:470284225技术讨论群:413012273EMAIL:yuleying@126.com

概要: OSAL由”任务Task”,”事件Event”,”定时器Timer”,”队列Queue”组成. 任务: 任务通常指所接受的工作,所担负的职责,是指为了完成某个有方向性的目的而产生的活动。任务一旦被创建就会一直存在,因为考虑系统设计的原因,没有删除任务,只要没有消息触发任务,那么任务就不会运行. 事件: 事件一般是临时突发的,不可预期的,需要快速响应处理的一类活动,事件与项目,任务的显著区别就是事件是没有明确的目的的,完全不可预期。事件的显著特性就是其临时性和突发性,可能并不会经常发生,只是偶然性,以致不可预期。事件可以是即时事件,也可以是延时事件,任务创建后只会运行一次,如果希望事件能各周期运行,那么只需要在事件运行时,重新创建一次就行.事件在未执行时再次被创建时,系统不会再次创建一个新的事件,而是将已经创建但未执行的事件延时重新设置.事件在未执行前可以被清除. 定时器: 定时器属于用软件实现了不同的硬件定时器;定时器基于系统定时器(TICK)来运行的. 定时器一旦被创建将会周期性自动运行,不需要重装初值,直到被删除. 如果需要一次性定时器,推荐使用事件来完成. 由于定时器是在中断里面完成,所有定时器处理的事件不能太久,以免影响系统的正常运行. 队列: 任务创建时已经为任务创建一个队列来传递消息给任务. 用于如果需要自定义不各种格式的队列,可以自行创建.

操作系统

OSAL_EventDrivenClass_V0.5_ARM-M0.rar

2016-10-12 20:29 上传

点击文件名下载附件

328.55 KB, 下载次数: 2309

模拟操作系统

EventDrivenClassOSAL详解-作者-余乐瀛.rar

2016-10-12 20:34 上传

点击文件名下载附件

23.56 KB, 下载次数: 2381

系统说明

post_newreply

分享到:

QQ好友和群

QQ空间

腾讯微博

腾讯朋友

收藏0

顶0

踩0

相关帖子

• 新唐NUC123芯片@Keil RTX 实时操作系统移植

• 新唐M051操作系统移植@关于keil4 RTX系统

• uCOS-II嵌入式操作系统@新唐NUC1XXARM--Cortex-M0 源码下载

• FreeRTOS嵌入式操作系统移植@新唐NUC1XX M051 ARM--Cortex-M0 源码...

• mbed 物联网操作系统会成为cortex-m中的android吗?

• 讲解实时操作系统的最深刻分析

• 操作系统抽像层,基于事件驱动的OSAL_EventDrivenClass,M058MDK工程

回复

使用道具

举报

沙发

hemingxian

发表于 2016-10-27 22:00:56

|

只看该作者

请教,我改的对不对

本帖最后由 hemingxian 于 2016-10-27 22:05 编辑

"事件可以是即时事件,也可以是延时事件,任务创建后只会运行一次,如果希望事件能各周期运行,那么只需要在事件运行时,重新创建一次就行."

可能是:

事件可以是即时事件,也可以是延时事件,事件创建后只会运行一次,如果希望事件能够周期运行,那么只需要在事件运行时,重新创建一次就行.

回复

支持

反对

使用道具

举报

板凳

冰破

发表于 2016-11-1 14:51:09

|

只看该作者

用过zigbee的协议栈开发产品,OSAL挺好用的,就是刚开始始比较难理解。

回复

支持

反对

使用道具

举报

地板

楼主|

yuleying

发表于 2016-11-9 12:40:25

|

只看该作者

hemingxian 发表于 2016-10-27 22:00

"事件可以是即时事件,也可以是延时事件,任务创建后只会运行一次,如果希望事件能各周期运行,那么只需要在事 ...

整解,这里是笔误

回复

支持

反对

使用道具

举报

5#

楼主|

yuleying

发表于 2016-11-9 12:46:10

|

只看该作者

感谢业界各位的朋友的建议,附件修改了0.5版本的一些BUG,主要是增加了读心写消息的临界保护

OSAL_EventDrivenClass_V0.6_ARM-M0.rar

2016-11-9 12:43 上传

点击文件名下载附件

1.63 MB, 下载次数: 2178

EventDrivenClassOSAL详解-作者-余乐瀛(0.6).rar

2016-11-9 12:43 上传

点击文件名下载附件

25.15 KB, 下载次数: 2126

回复

支持

反对

使用道具

举报

相关推荐

狗狗中毒多久发作?及时识别症状,救助不可忽视
奧德賽amiibo怎麼用?
三顾茅庐
把建行网上银行上的钱转到农行怎么转?