The nesC Language: A Holistic Approach to Networked Embedded Systems D' Gay, P' Levis, R' von Behren - PowerPoint PPT Presentation

Loading...

PPT – The nesC Language: A Holistic Approach to Networked Embedded Systems D' Gay, P' Levis, R' von Behren PowerPoint presentation | free to view - id: 1eed65-ZDc1Z



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

The nesC Language: A Holistic Approach to Networked Embedded Systems D' Gay, P' Levis, R' von Behren

Description:

The nesC Language: A Holistic Approach to Networked Embedded Systems. D. Gay, P. Levis, R. von Behren, M. Welsh, E., Brewer, D. Culler. Troy P. LeBlanc. COSC 7397 ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 14
Provided by: tleb
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: The nesC Language: A Holistic Approach to Networked Embedded Systems D' Gay, P' Levis, R' von Behren


1
The nesC Language A Holistic Approach to
Networked Embedded Systems D. Gay, P. Levis, R.
von Behren, M. Welsh, E., Brewer, D. Culler
  • Troy P. LeBlanc
  • COSC 7397
  • University of Houston
  • Feb. 7, 2005

2
Agenda
  • RoadMap
  • nesC and TinyOS
  • Design
  • Use Evaluation
  • Related and Future Work
  • Keywords
  • Releases
  • References

3
RoadMap
  • Motes networked embedded sensors (nes)
  • TinyOS the operating system for Motes
  • TOSSIM nes simulator
  • PowerTOSSIM nes power consumption simulation
  • nesC C-like high-level programming language for
    nes

4
nesC and TinyOS
  • nesC is a systems programming language for
    networked embedded systems such as motes
  • Characteristics of networked embedded (operating)
    systems
  • Deeply tied to the hardware
  • Runs a single application at a time
  • nesC was, itself, implemented to re-build TinyOS
  • Why? To evolve and take advantage of TinyOS
    features
  • Component based architecture
  • Tasks and event-based concurrency
  • Split-phase operations
  • Surge is an example application developed with
    nesC

5
nesC Design
  • Basic Principles
  • nesC is an extension of C
  • Whole-program analysis
  • nesC is a static language (no dynamic memory
    allocation)
  • nesC supports and reflects TinyOSs design
  • Component Specification
  • 2 Types Modules and Configurations
  • Provides and Uses Interfaces
  • Interfaces contain Commands and Events
  • Modules application code
  • Configurations wiring components together
  • call interface.command
  • signal interface.event

6
nesC Design (cont.)
  • Component Implementation
  • module TimerM
  • provides
  • interface StdControl
  • interface Timer
  • uses interfaces Clock as Clk
  • …
  • interface ADC
  • command result_t getData()
  • event result_t dataReady(uint16_t data)
  • …
  • …
  • implementation //(of Module Surge…)
  • …
  • event result_t Timer.fired()
  • call ADC.getData()

7
nesC Design (cont.)
  • Concurrency Atomicity
  • Concern is data races where operations attempt
    to concurrently update a shared state
  • AC and SC
  • Race-Free Invariant any update to shared state
    is either not a potential race condition (SC
    only), or occurs within an atomic section.
  • Implemented by disabling/enabling interrupts
  • Problem - Delaying interrupt handling will make
    system less responsive
  • Parameterized Interfaces
  • Numeric identifier that specifies which event
    handler to be executed
  • Benefit - No RAM is needed to store dispatch
    table

8
nesC Use Evaluation
  • nesC compiler ? single C source file ? compiled
    executable
  • Component Model
  • TinyOS 108 modules 64 configurations 74
    have at least 1 bi-directional interface
  • Concurrency Model

9
nesC Use Evaluation (cont.)
  • Effects of Inlining

10
Related Work and Future Work
  • Mesa, and many others.
  • nesC offers
  • Interrupt-based concurrency model
  • Low-level hardware access
  • Component-based programming
  • Future work
  • Concurrency support
  • Language enhancements
  • Application to other platforms

11
nesC Keywords
  • nesC 15 keywords
  • as
  • call
  • command
  • components
  • configuration
  • event
  • implementation
  • interface
  • module
  • post
  • provides
  • signal
  • task
  • uses
  • includes

12
nesC Releases
  • 1.0 Initial nesC release.
  • 1.1 Concurrency support async declarations,
    atomic statements, compile-time data-race
    detection, uniqueCount.
  • 1.1.1 Better support for new platforms.
  • 1.1.2 Maintenance release (minor features, bug
    fixes).
  • 1.1.3 Network Types platform-independent
    networking support

13
nesC References
  • Primary HomePage
  • http//nescc.sourceforge.net/
  • Download
  • http//sourceforge.net/projects/nescc/
  • Language Reference Manual
  • http//nescc.sourceforge.net/papers/nesc-ref.pdf
  • UC Berkeley
  • http//webs.cs.berkeley.edu/
About PowerShow.com