近日,21ic 论坛 TI 无线连接论坛板块分享了一张 OSAL 调度机制的图,图片
OSAL 为 Operating System Abstraction Layer,即操作系统抽象层,支持多任务运行,它并
不是一个传统意义上的操作系统,但是实现了部分类似操作系统的功能。
OSAL 概念是由 TI 公司在 ZIGBEE 协议栈引入,他的意思是”模拟操作系统”,此 OS,并非
一个真正的 OS,而是模拟 OS 的一些方法为广大编程者提供一种写 MCU 程序的方法.当有
一个事件发生的时候,OSAL 负责将此事件分配给能够处理此事件的任务,然后此任务判
断事件的类型,调用相应的事件处理程序进行处理。
Multi-tasking OS)和事件驱动的操作系统(Event-driven OS)。前者能够很好地支持多任务或
者多线程,但是会随着内部任务切换频率的增加而产生很大的开销,这类操作系统有:uC
/OS-II、嵌入式Linux、WinCE 等。后者支持数据流的高效并发,并且考虑了系统的低功
耗要求,在功耗、运行开销等方面具有优势。典型的代表如TinyOSl291。
目前 TinyOS 操作系统支持的平台有 ATMEL公司的 AVR 系列、TI 公司的 MSP430 系列。
由于 TinyOS 操作系统还没有对 Chipcon 公司(才知道 TI 把它收购了)提供 CC2430 开发
平台提供支持,因此,要在 CC2430 开发平台上使用 TinyOS 系统来开发 Zigbee 协议栈软
件,就必须首先对 TinyOS 进行移植。
因此 Chipcon 公司为自己设计的 ZStack 协议栈中提供了一个名为操作系统抽象层 OSAL
的协议栈调度程序。
Osal 主要提供如下功能:任务注册、任务间同步互斥、中断处理