亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? overview.txt

?? tinyos-2.x.rar
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
============================
TinyOS 2.0 Overview
============================

:Author: Philip Levis
:Date: Oct 30 2006

.. Note::
 
   This document gives a brief overview of TinyOS 2.0, highlighting how
   and where it departs from 1.1 and 1.0. Further detail on these changes
   is detailed in TEP (TinyOS Enhancement Proposal) documents. 

1. Introduction
====================================================================

TinyOS 2.0 is a clean slate redesign and re-implementation of TinyOS.
Its development was motivated by our belief that many aspects of 1.x
strain to meet requirements and uses that were not foreseen
when it was designed and implemented. The structure and interfaces 1.x
defines have several fundamental limitations. While these limitations
can be worked around, this practice has led to tightly coupled
components, hard to find interactions, and a very steep learning curve
for a newcomer to sensor network programming.

TinyOS 2.0 is not backwards compatible with 1.x: code written for the
latter will not compile for the former. However, one important aspect
of 2.0's design is to minimize the difficulty of upgrading
code. Therefore, while porting a 1.x application to 2.0 will require
some work, it should not be very much. 

This document provides a high-level overview of 2.0 and describes some
of the ways in which it departs from 1.x. It covers the basic TinyOS
abstractions, such as hardware abstractions, communication, timers,
the scheduler, booting and initialization. Further detail on each of
these can be found in TEPs (TinyOS Enhancement Proposals), which
document and describe these abstractions.

2. Platforms/Hardware Abstraction
====================================================================

Platforms exist in the ``tos/platforms`` subdirectory. In TinyOS 2.0, a
*platform* is a collection of *chips* and some glue code that connects
them together. For example, the mica2 platform is the CC1000 radio
chip and the ATmega128 microcontroller, while the micaZ platform is
the CC2420 radio and the ATmega128 microcontroller, and the Teloi
platforms are the CC2420 radio and the MSP430 microcontroller. Chip
code exists in ``tos/chips``. A platform directory generally has a
``.platform`` file, which has options to pass to the nesC compiler. For
example, the mica2 .platform file tells ncc to look in ``chips/cc1000``
and ``chips/atm128`` directories, as well as to use avr-gcc to compile a
mote binary (Teloi platforms tell it to use msp430-gcc). 

Hardware abstractions in TinyOS 2.0 generally follow a three-level
abstaction heirarchy, called the HAA (Hardware Abstraction
Architecture).

At the bottom of the HAA is the HPL (Hardware Presentation Layer). The
HPL is a thin software layer on top of the raw hardware, presenting
hardare such as IO pins or registers as nesC interfaces. The HPL
generally has no state besides the hardware itself (it has no
variables). HPL components usually have the prefix ``Hpl``, followed by
the name of the chip. For example, the HPL components of the CC1000
begin with ``HplCC1000``.

The middle of the HAA is the HAL (Hardware Abstraction Layer). The HAL
builds on top of the HPL and provides higher-level abstractions that
are easier to use than the HPL but still provide the full
functionality of the underlying hardware. The HAL components usually have
a prefix of the chip name. For example, the HAL components of the CC1000
begin with ``CC1000``.

The top of the HAA is the HIL (Hardware Independent Layer). The HIL
builds on top of the HAL and provides abstractions that are hardware
independent. This generalization means that the HIL usually does not
provide all of the functionality that the HAL can. HIL components have
no naming prefix, as they represent abstractions that applications can
use and safely compile on multiple platforms. For example, the HIL
component of the CC1000 on the mica2 is ``ActiveMessageC``, representing
a full active message communication layer.

The HAA is described in TEP 2: Hardware Abstraction Architecture[TEP2_].

Currently (as of the 2.0 release in November 2006), TinyOS 2.0 supports
the following platforms:

 * eyesIFXv2
 * intelmote2
 * mica2
 * mica2dot
 * micaZ
 * telosb
 * tinynode
 * btnode3


The btnode3 platform is not included in the RPM.

3. Scheduler
====================================================================

As with TinyOS 1.x, TinyOS 2.0 scheduler has a non-preemptive FIFO
policy. However, tasks in 2.0 operate slightly differently than in
1.x.

In TinyOS 1.x, there is a shared task queue for all tasks, and a
component can post a task multiple times. If the task queue is full,
the post operation fails. Experience with networking stacks showed
this to be problematic, as the task might signal completion of a
split-phase operation: if the post fails, the component above might
block forever, waiting for the completion event.

In TinyOS 2.x, every task has its own reserved slot in the task queue,
and a task can only be posted once. A post fails if and only if the
task has already been posted. If a component needs to post a task
multiple times, it can set an internal state variable so that when
the task executes, it reposts itself.

This slight change in semantics greatly simplifies a lot of component
code. Rather than test to see if a task is posted already before
posting it, a component can just post the task. Components do not have
to try to recover from failed posts and retry. The cost is one byte of
state per task. Even in large systems such as TinyDB, this cost is
under one hundred bytes (in TinyDB is is approximately 50).

Applications can also replace the scheduler, if they wish. This allows
programmers to try new scheduling policies, such as priority- or
deadline-based. It is important to maintain non-preemptiveness,
however, or the scheduler will break all nesC's static concurrency
analysis. Details on the new scheduler and how to extend it can be found
in TEP 106: Schedulers and Tasks[TEP106_].

4. Booting/Initialization
====================================================================

TinyOS 2.0 has a different boot sequence than 1.x. The 1.x interface
``StdControl`` has been split into two interfaces: ``Init`` and
``StdControl``. The latter only has two commands: ``start`` and ``stop``.
In TinyOS 1.x, wiring components to the boot sequence would cause them
to be powered up and started at boot. That is no longer the case: the
boot sequence only initializes components. When it has completed
initializing the scheduler, hardware, and software, the boot sequence
signals the ``Boot.booted`` event. The top-level application component
handles this event and start services accordingly. Details on
the new boot sequence can be found in TEP 107: TinyOS 2.x Boot
Sequence[TEP107_].

5. Virtualization
====================================================================

TinyOS 2.0 is written with nesC 1.2, which introduces the concept
of a 'generic' or instantiable component. Generic modules allow
TinyOS to have reusable data structures, such as bit vectors and
queues, which simplify development. More importantly, generic
configurations allow services to encapsulate complex wiring 
relationships for clients that need them.

In practice, this means that many basic TinyOS services are now
*virtualized.* Rather than wire to a component with a parameterized
interface (e.g., GenericComm or TimerC in 1.x), a program instantiates
a service component that provides the needed interface. This
service component does all of the wiring underneath (e.g., in the
case of timers, to a unique) automatically, reducing wiring
mistakes and simplifying use of the abstraction.

6. Timers
====================================================================

TinyOS 2.0 provides a much richer set of timer interfaces than
1.x. Experience has shown that timers are one of the most critical
abstractions a mote OS can provide, and so 2.0 expands the fidelity
and form that timers take. Depending on the hardware resources of a
platform, a component can use 32KHz as well as millisecond granularity
timers, and the timer system may provide one or two high-precision
timers that fire asynchronously (they have the async
keyword). Components can query their timers for how much time
remainins before they fire, and can start timers in the future (e.g.,
'start firing a timer at 1Hz starting 31ms from now'). TEP 102: 
Timers[TEP102_] defines what HIL components a platform must provide
in order to support standard TinyOS timers. Platforms are
required to provide millisecond granularity timers, and can provide
finer granularity timers (e.g., 32kHz) if needed.

Timers present a good example of virtualization in 2.0. In 1.x,
a program instantiates a timer by wiring to TimerC::

  components App, TimerC;
  App.Timer -> TimerC.Timer[unique("Timer")];

In 2.0, a program instantiates a timer::

  components App, new TimerMilliC();
  App.Timer -> TimerMilliC;



7. Communication
====================================================================

In TinyOS 2.0, the message buffer type is ``message_t``, and it is a
buffer that is large enough to hold a packet from any of a node's
communication interfaces. The structure itself is completely opaque:
components cannot reference its fields. Instead, all buffer accesses
go through interfaces. For example, to get the destination address of
an AM packet named ``msg``, a component calls ``AMPacket.destination(msg)``.

Send interfaces distinguish the addressing mode of communication
abstractions. For example, active message communication has the
``AMSend`` interface, as sending a packet require an AM destination
address. In contrast, broadcasting and collection tree abstractions
have the address-free ``Send`` interface.

Active messages are the network HIL. A platform's ``ActiveMessageC``
component defines which network interface is the standard
communication medium. For example, a mica2 defines the CC1000 active

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品素人一区二区| 亚洲视频一区在线| 欧美在线短视频| 黄色成人免费在线| 亚洲午夜免费电影| 亚洲国产精品精华液2区45| 欧美日本在线播放| 成人18视频日本| 久久精品国产亚洲aⅴ| 亚洲综合精品久久| 国产日韩欧美在线一区| 欧美一区二区三区在线观看| 91免费国产在线| 国精品**一区二区三区在线蜜桃| 亚洲午夜激情av| 成人欧美一区二区三区| 国产亚洲短视频| 日韩精品中文字幕在线一区| 欧美中文字幕一区| av电影在线观看一区| 国产一区不卡精品| 久久精品国产免费| 免费看欧美女人艹b| 亚洲一区在线观看免费| 自拍偷拍亚洲激情| 国产精品久久久久aaaa樱花| 国产日韩欧美综合一区| 亚洲精品一区二区三区四区高清| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 97久久人人超碰| 白白色 亚洲乱淫| 成人va在线观看| 国产99久久久国产精品免费看| 久久国产日韩欧美精品| 久久国产精品99久久久久久老狼| 婷婷成人综合网| 五月婷婷综合网| 五月天网站亚洲| 日本免费在线视频不卡一不卡二| 天天av天天翘天天综合网色鬼国产 | 91视频观看视频| 色悠久久久久综合欧美99| 色综合天天综合在线视频| 99精品一区二区三区| 色综合久久久久综合99| 色婷婷av一区二区| 欧美日韩精品一区二区三区四区 | 欧美这里有精品| 欧美伊人精品成人久久综合97| 在线视频国内一区二区| 欧美日韩你懂的| 日韩一区二区在线观看视频 | 99久久精品国产观看| 99精品国产视频| 欧美体内she精高潮| 欧美日韩aaa| 91精品国产综合久久香蕉麻豆 | 99久久777色| 欧美性xxxxxxxx| 欧美丰满一区二区免费视频| 91精品国产福利| 久久久久亚洲蜜桃| 日韩理论片中文av| 五月激情综合色| 国产综合久久久久影院| www.欧美色图| 91精品免费在线观看| 日本一区二区三区dvd视频在线| 中文字幕亚洲电影| 日日摸夜夜添夜夜添国产精品| 狠狠色丁香婷婷综合| 成人短视频下载| 正在播放一区二区| 国产女人aaa级久久久级 | 麻豆精品久久精品色综合| 国产高清不卡二三区| 在线观看亚洲精品| 日韩欧美亚洲国产另类| 中文字幕一区二区三区四区不卡| 亚洲国产视频一区二区| 国产自产视频一区二区三区| 91美女片黄在线| 7777精品伊人久久久大香线蕉| 国产婷婷色一区二区三区四区| 亚洲一二三区在线观看| 国产盗摄一区二区| 欧美一三区三区四区免费在线看| 国产欧美日韩另类一区| 日韩中文字幕91| 成人黄色软件下载| 欧美大白屁股肥臀xxxxxx| 国产精品成人网| 精品无人区卡一卡二卡三乱码免费卡| 本田岬高潮一区二区三区| 日韩一二在线观看| 一区二区在线观看免费视频播放 | 男男gaygay亚洲| 91免费视频网址| 日本一区二区不卡视频| 免费人成在线不卡| 欧美少妇性性性| 成人免费在线视频观看| 国产精品一品二品| 欧美一二三在线| 亚洲国产精品人人做人人爽| 99精品偷自拍| 国产精品视频免费看| 麻豆国产精品视频| 欧美精品18+| 亚洲最色的网站| 波波电影院一区二区三区| 国产亚洲婷婷免费| 日韩精品乱码免费| 欧美日韩亚洲不卡| 亚洲免费视频中文字幕| av在线不卡观看免费观看| 久久久精品黄色| 国产精选一区二区三区| 日韩一区二区电影在线| 日本中文在线一区| 欧美巨大另类极品videosbest | xnxx国产精品| 久久精品噜噜噜成人av农村| 欧美一区二区三区免费视频| 亚洲福利视频三区| 欧美日本不卡视频| 偷拍一区二区三区| 91精品免费观看| 青青草国产成人99久久| 日韩午夜在线影院| 日本网站在线观看一区二区三区| 欧美日韩电影一区| 亚洲成人综合在线| 欧美日韩国产另类一区| 五月婷婷激情综合网| 3d成人动漫网站| 理论片日本一区| 久久久久久久电影| 粉嫩av一区二区三区在线播放| 亚洲国产经典视频| 91玉足脚交白嫩脚丫在线播放| 亚洲情趣在线观看| 欧美视频你懂的| 欧美aⅴ一区二区三区视频| 精品久久人人做人人爽| 国产一区二区不卡在线| 国产精品国产三级国产| 91在线你懂得| 亚洲午夜国产一区99re久久| 欧美一级淫片007| 国产一区美女在线| 国产精品久久精品日日| 在线一区二区三区做爰视频网站| 亚洲国产va精品久久久不卡综合| 欧美美女网站色| 精品一区二区三区av| 欧美激情一区二区在线| 色香蕉久久蜜桃| 蜜桃av一区二区三区电影| 久久综合狠狠综合| 97久久人人超碰| 天天综合天天做天天综合| 亚洲精品一区二区三区蜜桃下载 | 天天影视色香欲综合网老头| 日韩三级.com| 高清免费成人av| 国产精品高潮久久久久无| 欧美撒尿777hd撒尿| 极品少妇一区二区| 18成人在线观看| 日韩欧美一区二区三区在线| 高清不卡一二三区| 亚洲aaa精品| 国产亚洲1区2区3区| 色一情一伦一子一伦一区| 看电视剧不卡顿的网站| 中文字幕亚洲视频| 日韩精品专区在线影院重磅| 不卡av在线网| 日韩精品成人一区二区三区| 欧美国产精品一区| 91麻豆精品国产| 91视视频在线直接观看在线看网页在线看| 亚洲国产色一区| 日本一区二区在线不卡| 欧美乱妇23p| 99re66热这里只有精品3直播| 免费观看一级特黄欧美大片| 亚洲色图欧美偷拍| 久久综合视频网| 欧美男女性生活在线直播观看| 国产xxx精品视频大全| 蜜臀久久99精品久久久久宅男| 国产精品毛片无遮挡高清| 日韩亚洲欧美一区二区三区| 色吊一区二区三区| 国产乱码字幕精品高清av| 日本va欧美va瓶| 亚洲一区二区三区四区五区黄| 国产精品丝袜一区|