1 / 34

Welcome to the Contiki Hands-On Workshop 2007!

Kista, Sweden 26-27 March 2007. Welcome to the Contiki Hands-On Workshop 2007!. Practical issues. Coffee will be served just outside Lunches at level 2 in Electrum (this building): Electrum-restaurangen Dinner at Memory Hotel, close to Electrum

cthorne
Télécharger la présentation

Welcome to the Contiki Hands-On Workshop 2007!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kista, Sweden 26-27 March 2007 Welcome to theContiki Hands-On Workshop 2007!

  2. Practical issues • Coffee will be served just outside • Lunches at level 2 in Electrum (this building): Electrum-restaurangen • Dinner at Memory Hotel, close to Electrum • Wireless LAN: your first name as username and password • Talk to me if there are problems

  3. Goals of these two days • Share and discuss experiences with others • Work with Contiki, gain experience with new features • Get hands-on experience • Community building • See the people behind the names • Definition of a successful outcome: • More people involved in the Contiki project • New developers with CVS write access • Contiki used in research • Contiki used in products • Ideas from Contiki used in other projects/systems

  4. Agenda, day 1 • 10:00 Welcome! • 10:45 Coffee • 11:00 Presentation: Programming Contiki • 12:00 Presentation: Using Cooja for development • 12:30 Introduction to the exercises • 12:45 Lunch • (13:15 Help with installation of tools) • 13:45 Hands-on session with coffee break at 15:00 • 16:45 Follow-up to exercises • 17:00 Poster and demo presentations • 19:00 Dinner

  5. Agenda, day 2 • 10:00 Presentation: Using and extending Cooja for network simulations • 10:45 Coffee • 11:00 Presentation and hands-on: Porting Contiki • 12:30 Lunch • 13:30 Get involved in the future of Contiki • 14:30 The end

  6. What is Contiki and where did it come from?

  7. Contiki • Contiki – a dynamic operating system for networked embedded systems • Loadable modules, multiple network stacks, multiple threading models • Open source; 3-clause BSD licence • Small memory footprint • Designed for portability • 14 platforms, 5 CPUs in current CVS code • Many pioneering features

  8. Contiki target systems • Small embedded processors • With networking • 98% of all microprocessors go into embedded systems • 50% of all processors are 8-bit • MSP430, AVR, ARM7, 6502, ...

  9. Tiny microprocessors are huge

  10. Traditional systems:entire system a monolithic binary • Most embedded OSes statically linked at compile-time • Entire system is a monolithic binary • Predictable • But: difficult to change • Must re-upload entire system • Examples: uC/OS,TinyOS

  11. Contiki: run-time loadable program modules • Core resident in memory • Programs know the core • The core do not know the programs • Individual programs can be loaded/unloaded • The first system in the sensor network community to do this Core

  12. Dynamic loading in Contiki • Dynamic loading since inception but with static compile-time linking • Dynamic run-time linking since 2005 • De-facto standard ELF object code files • No custom conversion tools are needed • Just take the .o files produced by gcc, strip, load

  13. Ports in the current CVS code minimal-net native netsim sky stepper-robot stk501 win32 apple2enh c64 cc2420dbk cooja esb ethernut gtk

  14. Background: The Arena Project (2000)LTU, Telia, Ericsson, SICS • Hockey players with wireless sensors • Bluetooth sensors, camera on helmet • Spectators with direct access to sensor readings • TCP/IP used on the Bluetooth-equipped sensors • My lwIP stack • Luleå Hockey lost with 1-4...

  15. Application UDP TCP ICMP IP Network Background: lwIP (2000) • lwIP – lightweight IP • Open source • ~40k code, ~40k RAM • Application driven, top-down design • Similar to Linux, BSD stacks • Suitable for “16-bit systems”

  16. Application UDP TCP ICMP IP Network Background: uIP – the world’s smallest TCP/IP stack (2001) • uIP – micro IP • Open source • ~5k code, ~2k RAM • Smallest configuration ~3k code, ~128 bytes RAM • RFC compliant • Order of magnitude smaller than earlier stacks • Bottom-up design • Single-packet buffer • Event-driven API • MobiSys 2003 paper on lwIP and uIP

  17. Today: lwIP and uIP • Very well-known in the embedded community • Used in products from 100+ companies • Top Google results for “TCP/IP stack”, “embedded TCP/IP”, etc. • Mentioned in several books on embedded networking • Articles on porting uIP in professional magazines • Recommended by leading professionals • Competence specifically required in job postings

  18. A few of the users (that I know of) • Cisco Systems • Compendium Technologies • Cubic Corporation • Cyan Technology • eCosCentric • emWare Inc. • Engenium Tech • Ericsson AB • Gavitech AG ABB Acterna LLC All Set Marine Security Altera Corporation Amirix Systems Inc. Analog Devices Aurion Tech Axon Digital Design B.V. BMW Campbell Scientific • GE Security • GHI Electronics, LLC • Invector Embedded Tech. • Kreatel • LaBarge, Inc. • Micronet • Microtronix Fraunhofer Institute, Germany Odense University College of Engineering, Denmark Luleå University of Technology, Sweden MIT Media Lab, USA Stanford University, USA University of Alberta, Canada University of California, Los Angeles, USA University of Cambridge, UK • NASA • NBS Tech • Nu Horizons • Phytech Holding • PS2Reality • Pumpkin Inc • Qualstar Corporation. • Renesas Technology • Rowley Associates Ltd. • Shift Right Tech. • SYS TEC Electronic • Tangent Devices Ltd. • Volvo Technology • Wireless Device AB • Xilinx Inc.

  19. Background: Pre-Contiki (2002) • Vanilla uIP only handles a single application • Needed an application framework on top of uIP • Small hobby project: • Possible to write a small web browser on top of uIP? • Needs a little bit of a GUI • Ended up with an architecture that allows for loadable modules

  20. Contiki 1.0 (2003) • March 10, 2003 • Commodore 64 port • Extensive press coverage

  21. The name “Contiki” • Originally thought to be the name of the web browser only • A pun on bombastic web browser names like Navigator, Explorer, Konqueror • The Kon-Tiki raft was built with ancient technology, yet was able to sail across the Pacific Ocean • Ancient Commodore 64 was the first available port… • Kon-Tiki Wikipedia article points to the Contiki Wikipedia article

  22. Contiki for sensor networks (2003) • Loadable modules suitable for reprogramming over radio • Initial port to MSP430/ESB in a few hours • Optional multi-threading added • IP over sensor networks with uIP • Header compression • Contiki/IP-based surveillance network in 2004 together with SAAB Systems

  23. Protothreads (2004) • Novel thread-like construct on top of the event-driven Contiki kernel • Very simple: 7 lines of C code • Simplifies programming of event-driven systems • Papers at REALWSN 2005, SenSys 2006

  24. Dynamic linking (2005) • Loader extended with dynamic run-time linking of standard ELF files • Paper at SenSys 2006

  25. Contiki for Tmote Sky (2005) • Ported to the Tmote Sky by Björn Grönvall for the RUNES project • The RUNES version of Contiki a little different • Integrated into the Contiki build system in March 2007

  26. The Rime protocol stack (2007) • Designed for wireless sensor networks • Intended to make network programming simpler • Provides a range of communication services • From local area broadcast to reliable network flooding, and a lot of stuff in between • Strictly layered stack • Very thin layers, applications can connect at any layer • Low memory footprint, code size, overhead • Each layer between 114 and 598 bytes of compiled code, small headers

  27. Pioneering, influential features of Contiki • Contiki: loadable modules (2004) • SOS: loadable modules (2005) • Contiki: both threads and events (2004) • TinyThread: both threads and events in TinyOS (2006) • Contiki: TCP/IP in sensor networks (2004) • Arch Rock: TCP/IP in sensor networks (2007)

  28. Current plans

  29. Ports under development • ARM7 (Simon Berg) • AVR (Simon Barner) • MSB (Nicolas Tsiftes) • PIC18

  30. Contiki 2.0 release (2007) • New features: Rime, Cooja • Ports for native, MSP430 • Main platforms: Tmote Sky, ESB, Cooja, netsim, native • To be released after the workshop

  31. Contiki people here today • Adam Dunkels, SICS, main developer, project leader, sourceforge admin • Niclas Finne, SICS, developer, sourceforge co-admin • Joakim Eriksson, SICS, developer, MSPsim • Fredrik Österlind, SICS, Cooja • Björn Grönvall, SICS, Tmote Sky port • Thiemo Voigt, SICS, buoy sensor port • Zhitao He, SICS, SP for Contiki • Nicolas Tsiftes, SICS, code compression

  32. Some Contiki people not here today • Oliver Schmidt, SAP Germany (win32 port, Apple 2 port, protothreads, sourceforgeco-admin) • Simon Barner, TU München, (AVR) • Simon Berg, Sweden, (ARM7)

  33. Conclusions • Pioneering operating system for memory-constrained networked embedded systems • Originally based on uIP • Newly added Rime stack • Ported to several platforms • Version 2.0 to be released after the workshop

  34. Now: coffee break • Coming up next: • 11:00 Programming Contiki • 12:00 Using Cooja • 12:30 Introduction to exercises • 12:45 Lunch • (13:15 Help with installation of tools) • 13:45 Hands-on programming session • 17:00 Demos, posters • 19:00 Dinner

More Related