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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品1区2区在线观看| 91高清视频在线| 日韩一级片在线观看| 亚洲国产美国国产综合一区二区| 成人精品视频网站| 中文在线一区二区| 99国产精品久久久| 亚洲男人的天堂av| 欧美日韩国产影片| 老司机精品视频导航| 久久综合九色综合欧美就去吻| 麻豆免费精品视频| 亚洲伦理在线免费看| 91啪亚洲精品| 亚洲国产精品欧美一二99| 日韩一级视频免费观看在线| 国内不卡的二区三区中文字幕| 国产女人18水真多18精品一级做| www.性欧美| 亚洲成人资源在线| 日韩精品在线一区| 成人av电影在线| 亚洲不卡一区二区三区| 日韩欧美高清一区| 岛国精品一区二区| 亚洲午夜精品在线| 精品久久久网站| youjizz国产精品| 亚洲国产毛片aaaaa无费看| 91精品国产高清一区二区三区蜜臀 | 亚洲天堂av一区| 久草中文综合在线| 亚洲三级电影全部在线观看高清| 精品视频一区二区三区免费| 美脚の诱脚舐め脚责91| 中文字幕av在线一区二区三区| 在线观看日韩电影| 精品亚洲成a人| 亚洲视频一二三| 26uuu色噜噜精品一区| 91免费观看视频在线| 国产美女娇喘av呻吟久久 | 亚洲婷婷国产精品电影人久久| 欧美日韩一区高清| 国产大陆a不卡| 天天色综合天天| 亚洲国产精品av| 欧美成人激情免费网| 91毛片在线观看| 国产资源在线一区| 天天亚洲美女在线视频| 成人欧美一区二区三区| 久久久精品国产免费观看同学| 午夜婷婷国产麻豆精品| 国内偷窥港台综合视频在线播放| 国产精品视频免费看| 欧美丰满少妇xxxbbb| 成人精品免费视频| 精品一区二区免费视频| 亚洲高清视频的网址| 国产农村妇女精品| 精品国产伦一区二区三区观看方式 | 亚洲精品一区二区三区影院 | 国产精品自产自拍| 亚洲国产日韩在线一区模特| 国产亚洲综合色| 欧美一区二区国产| 在线视频一区二区免费| 一本一道久久a久久精品 | 99麻豆久久久国产精品免费优播| 亚洲精品国久久99热| 精品日韩在线观看| 欧美一级高清片在线观看| 色吊一区二区三区| 91在线免费视频观看| 丁香另类激情小说| 国产一区二区三区在线看麻豆| 美女尤物国产一区| 免费在线欧美视频| 毛片av一区二区| 久久精品国产99久久6| 午夜精品123| 日韩电影免费在线| 亚洲6080在线| 日韩精品91亚洲二区在线观看| 亚洲欧美日韩精品久久久久| 亚洲免费电影在线| 亚洲一线二线三线视频| 一区二区三区美女视频| 亚洲资源在线观看| 丝袜美腿高跟呻吟高潮一区| 日韩黄色免费电影| 蜜桃一区二区三区在线| 国产精品中文字幕一区二区三区| 国产在线精品一区二区夜色| 国产ts人妖一区二区| 风间由美一区二区三区在线观看 | 99久久久精品免费观看国产蜜| 国产成人免费视频精品含羞草妖精 | 国产欧美日产一区| 国产精品卡一卡二卡三| 夜夜精品浪潮av一区二区三区| 亚洲影院在线观看| 三级精品在线观看| 另类人妖一区二区av| 精品伊人久久久久7777人| 成人精品免费网站| 在线观看网站黄不卡| 日韩午夜激情免费电影| 欧美大片一区二区| 国产精品麻豆久久久| 一区二区三区在线免费播放| 免费成人性网站| 国产不卡在线视频| 欧美视频在线观看一区二区| 欧美一级xxx| 中文字幕五月欧美| 欧美a级理论片| 风流少妇一区二区| 欧美电影在线免费观看| 久久精品亚洲精品国产欧美| 亚洲一区影音先锋| 国模冰冰炮一区二区| 久久网站最新地址| 成人欧美一区二区三区小说| 午夜精品久久久| 成人久久久精品乱码一区二区三区| 在线亚洲高清视频| 中文字幕 久热精品 视频在线| 亚洲国产日韩精品| 成人高清免费观看| 日韩亚洲欧美在线| 伊人婷婷欧美激情| 国产精品一区二区男女羞羞无遮挡| 色呦呦日韩精品| 久久日韩精品一区二区五区| 亚洲男人电影天堂| 国产一区二区三区在线观看免费 | 99精品视频在线播放观看| 欧美日韩国产片| 国产精品电影一区二区| 激情综合色综合久久综合| 日本高清无吗v一区| 国产女人18毛片水真多成人如厕 | 精品国产伦一区二区三区观看方式| ㊣最新国产の精品bt伙计久久| 秋霞电影网一区二区| 99久久精品免费| 久久精品夜色噜噜亚洲a∨| 日韩精品一二三| 色域天天综合网| 欧美国产国产综合| 国产最新精品精品你懂的| 欧美日韩高清影院| 亚洲国产成人porn| 91蝌蚪porny成人天涯| 亚洲综合无码一区二区| 成人免费视频视频| 国产三级三级三级精品8ⅰ区| 日本在线不卡视频一二三区| 欧美群妇大交群中文字幕| 一区二区激情小说| 欧美在线一区二区三区| 亚洲欧洲国产日韩| av电影在线不卡| 国产日产欧美一区二区三区| 美女一区二区久久| 日韩欧美一区二区在线视频| 亚洲大片在线观看| 欧美嫩在线观看| 偷拍与自拍一区| 欧美一卡2卡3卡4卡| 热久久国产精品| 亚洲精品在线网站| 国产精品一区二区久久不卡| www激情久久| 丰满少妇在线播放bd日韩电影| 国产日韩亚洲欧美综合| 成人动漫中文字幕| 一区二区三区四区乱视频| 色美美综合视频| 五月开心婷婷久久| 91麻豆精品国产91久久久久久| 美女mm1313爽爽久久久蜜臀| 日韩欧美国产成人一区二区| 国产真实乱对白精彩久久| 精品国产乱码久久久久久闺蜜| 国产一区二区三区黄视频| 久久精品人人做人人爽97| 国产盗摄一区二区三区| 国产精品国产自产拍高清av | 欧美在线观看视频在线| 亚洲成人免费影院| 精品国产伦理网| 成人app在线| 亚洲电影在线播放| 日韩一区二区三区高清免费看看 | 91啪在线观看| 人人狠狠综合久久亚洲| 亚洲一区免费在线观看|