TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构

TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构

ID:41287820

大小:1.45 MB

页数:89页

时间:2019-08-21

TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构_第1页
TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构_第2页
TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构_第3页
TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构_第4页
TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构_第5页
资源描述:

《TinyOS操作系统开发技术及实践(西电版)第3章TinyOS体系结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章TinyOS体系结构3.1概述3.2硬件抽象组件3.3综合硬件组件3.4高层软件组件3.5任务调度3.6系统启动顺序3.7跨平台应用小结3.1概述TinyOS操作系统采用组件式结构,是一个基于事件的系统。系统本身提供了一系列的组件供用户调用,其体系结构如图3-1所示。TinyOS体系结构由下到上将一系列组件分为以下4大类:   硬件抽象组件:将物理硬件映射到TinyOS的组件模型。   综合硬件组件:模拟高级的硬件行为,如感知组件、执行组件和通信组件。   高层软件组件:包含应用组件,其主要功能是向底

2、层组件发出命令,底层组件向高层组件报告事件。   任务调度组件:即主组件,负责对整个TinyOS进行任务的调度,它包括一个任务调度器。图3-1TinyOS体系结构任务调度器具有两层结构,第一层维护着命令和事件,主要是在硬件中断发生时对组件的状态进行处理;第二层维护着任务,负责各种计算,只有当组件状态维护工作完成后,任务才能被调度。TinyOS调度模型主要有以下几个特点:   任务单线程运行,且运行结束后,只分配单个任务栈,这对内存受限的系统很有利。   没有进程管理概念,对任务按简单的FIFO队列进行调度。

3、FIFO的任务调度策略具有能耗敏感性,当任务队列为空时,处理器进入休眠,随后由外部中断事件唤醒CPU进行任务调度。两级的调度结构,可以实现优先执行少量同事件相关的处理,同时打断长事件运行的任务。   基于事件的调度策略,只需要少量空间就可获得并发性,与事件相关的任务可以很快被处理,不允许阻塞,具有高度并发性。   任务之间相互平等,没有优先级的概念。3.2硬件抽象组件在TinyOS体系架构中硬件抽象组件主要负责物理硬件的控制,采用硬件抽象架构的组件设计模型主要有以下优点:   提高代码的可重用性和可移植性。

4、   实现效率和性能的优化。   本节将介绍硬件抽象架构及其分层结构。3.2.1硬件抽象架构TinyOS2.x提出了一个具有3层结构的硬件抽象架构,并结合其组件特点形成一个高效的组织结构,如图3-2所示。   硬件抽象架构的3层分别是硬件表示层、硬件适配层和硬件接口层。3层的作用描述如下:   硬件表示层与硬件的寄存器和中断密切相关,不同芯片的硬件平台的硬件表示层是不同的,这一层与平台的移植息息相关。   硬件适配层带有丰富的硬件相关的接口,有助于提高效率;不同平台的硬件适配层有可能不同。   硬件接口层提

5、供与平台无关的接口,便于代码的移植。这一层与平台无关,上层可以调用这一层的接口实现对下层的控制。图3-2硬件抽象架构3.2.2硬件表示层硬件表示层(HardwarePresentationLayer,以下简称HPL)由一系列组件组成,该层组件直接位于硬件与软件的接口之间。该层组件访问硬件的一般方法是通过内存或I/O映射,并且硬件可以通过中断信号来请求服务。HPL组件提供的接口完全由平台的硬件模块本身功能决定。因此HPL组件和硬件的紧密联系会降低组件设计和实现的自由度。尽管每个HPL组件和底层硬件都是独一无二

6、的,但这些组件都有类似的大体结构。为了能够和硬件抽象架构的其余部分更加完美地结合起来,每个HPL组件都应该具备以下几个功能:为了实现更有效的电源管理,必须有硬件模块的初始化、开始和停止命令。   为控制硬件操作的寄存器提供“get”和“set”命令。   为常用的标识位设定和测试操作提供单独的命令。   开启和禁用中断的命令。   硬件中断的服务程序,HPL组件的中断服务程序只负责临界操作,如复制一个变量、清空一些标识等行为。   以mytinyos平台为例,此平台的HPL组件大都存在于与CC2530芯片相

7、关的文件中。如图3-3所示,硬件表示层组件存在于“tos/chips/cc2530/”目录中。图3-3芯片目录以“tos/chips/cc2530/”目录下的HplCC2530GeneralIOC.nc文件为例,HplCC2530GeneralIOC.nc文件是针对CC2530的I/O的实现,打开此文件如图3-4所示。图3-4HplCC2530GeneralIOC.nc文件【代码3-1】HplCC2530GeneralIOC.nc#include"cc2530.h" moduleHplCC2530Gener

8、alIOC { provides { /*P0有关的接口*/ interfaceGeneralIOasPort00; interfaceGeneralIOasPort01; interfaceGeneralIOasPort02; interfaceGeneralIOasPort03; interfaceGeneralIOasPort04; interfaceGeneralIOasPort05; interface

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。