Tool Working Group Report John Regehr. 2 Tool WG Agenda Technology transfer: Move software tools from research into practical use for TinyOS 2.x developers.

Slides:



Advertisements
Similar presentations
Purdue University Center for Education and Research in Information Assurance and Security Building a distributed intrusion detection system with Perl Diego.
Advertisements

Nucleus Network Management System Gilman Tolle UC Berkeley.
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Lab7: Introduction to Arduino
Module R2 CS450. Next Week R1 is due next Friday ▫Bring manuals in a binder - make sure to have a cover page with group number, module, and date. You.
TOSSIM A simulator for TinyOS Presented at SenSys 2003 Presented by : Bhavana Presented by : Bhavana 16 th March, 2005.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
© 2004, D. J. Foreman 1 O/S Organization. © 2004, D. J. Foreman 2 Topics  Basic functions of an OS ■ Dev mgmt ■ Process & resource mgmt ■ Memory mgmt.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
1 Efficient Memory Safety for TinyOS Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing † Intel Research.
1 TinyOS 2.1: Deploying Memory Safety Nathan Cooprider Yang Chen Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing †
The IDE (Integrated Development Environment) provides a DEBUGGER for locating and correcting errors in program logic (logic errors not syntax errors) The.
Network Reprogramming Jaein Jeong, Sukun Kim Nest Meeting July 30, 2003.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz Cooperated with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion - Israel.
1 Efficient Memory Safety for TinyOS 2.1 Yang Chen Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing.
High-Level Optimizations for Low-Level Software John Regehr University of Utah.
2008EECS Embedded Network Programming nesC, TinyOS, Networking, Microcontrollers Jonathan Hui University of California, Berkeley.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
TinyOS 2.1 Jun Yi Partially based on the tutorial at IPSN 2009 By Stephen Dawson-Haggerty, Omprakash Gnawali, David Gay, Philip Levis, Răzvan Musăloiu-E.,
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Main sponsor PicassoMonet + RembrandtMatejko + Canaletto How Debuggers Work Karl Rehmer Failures Come in Flavors Michael Nygard REST in Java Stefan Tilkov.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Purpose  This training course describes how to configure the the C/C++ compiler options.
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
 CS 5380 Software Engineering Chapter 8 Testing.
Wireless Sensor Networks MOTE-KITS TinyOS Crossbow UC Berkeley.
1 Efficient Type and Memory Safety for Tiny Embedded Systems John Regehr Nathan Cooprider Will Archer Eric Eide University of Utah School of Computing.
Python, Toolboxes, Tools & Script Tools
P.R. James © P.Chalin et al.1 An Integrated Verification Environment for JML: Architecture and Early Results Patrice Chalin, Perry R. James, and George.
NIOS II Ethernet Communication Final Presentation
Module 6: Debugging a Windows CE Image.  Overview Debug Zones IDE Debug Setup IDE Debug Commands Platform Builder Integrated Kernel Debugger Other Debugging.
Technical Presentation
® IBM Software Group © 2006 IBM Corporation PurifyPlus on Linux / Unix Vinay Kumar H S.
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
Ensure that the right functions are performed Ensure that the these functions are performed right and are reliable.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 11 – gdb and Debugging.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course explains how to use section setting and memory.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Objects First With Java A Practical Introduction Using BlueJ Well-behaved objects 2.1.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
TinyOS Sandeep Gupta. Operating System (OS) What is an OS? Main functions  Process management  Memory management  Resource management Traditional OSs.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
TinyOS By Valliappan Annamalai. Hardware Mica motes (Mica2 and Mica2Dot) Hardware –Radio –Microcontroller –Flash memory –ADC –Sensor Board (MTA310)
Ch. 31 Q and A IS 333 Spring 2016 Victor Norman. SNMP, MIBs, and ASN.1 SNMP defines the protocol used to send requests and get responses. MIBs are like.
Testing and Verifiation of Kmote using Tiny OS Manish Aggarwal Guide :- Proff Purushottam K.
TinyOS Sandeep Gupta. TinyOS basics TinyOS is  Single tasking OS  Interrupt driven Written using a Component based language A set of components put.
YongChul Kwon CSE451 Section 1: Spring 2006 YongChul Kwon
The architecture of the P416 compiler
Types for Programs and Proofs
Welcome to Arduino A Microcontroller.
THE PROCESS OF EMBEDDED SYSTEM DEVELOPMENT
Safe TinyOS.
Chapter 18 Software Testing Strategies
QGen and TQL-1 Qualification
QGen and TQL Qualification
COS 260 DAY 16 Tony Gauvin.
Exception Handling in Java
Efficient Memory Safety for TinyOS 2.1
Remote Procedure Call Hank Levy 1.
Module 6: Debugging a Windows CE Image
Error Handling.
Remote Procedure Call Hank Levy 1.
RMA User Guide.
Remote Procedure Call Hank Levy 1.
Presentation transcript:

Tool Working Group Report John Regehr

2 Tool WG Agenda Technology transfer: Move software tools from research into practical use for TinyOS 2.x developers What kind of tools? –Verification / validation –Optimization –Debugging –Etc.

3 Current Focus: Safe TinyOS Language-based safety on motes –Pointer/array errors are trapped before they happen No more memory corruption –Safety checks added to C code emitted by nesC compiler Lots of details in our SenSys 07 paper

4 Module-Level Safety module { … } module { … } This is an escape hatch –Unsafe means that no safety checks are inserted in the module’s code –Modules without either attribute default to unsafe

5 Annotations for Safety interface Packet { command void clear (message_t* SINGLE NONNULL msg); command uint8_payloadLength (message_t* SINGLE NONNULL msg); … }

6 New Format Annotations interface Packet { command void msg); command msg); … }

7 Interface Annotations In nesdoc * is * the packet to clear */ command void clear (message_t* msg);

8 How to handle traps? Reboot Blink LEDs Send serial packet Custom code you write Failure information is a small integer that a different tools turns into a nice error message

9 Next Steps Now: Integrating into CVS head Very soon: Solicit early users on –devel –Upgrade toolchain –Type “ make micaz safe ” This Spring: Release as part of 2.1

10 Other Tools Stack depth analysis –Working on it… Debugger? GUI front end? What else do you want?