Contiki
Contiki sistem de operare | |
---|---|
Imagine a serverului VNC care rulează portul Contiki pentru sistemele AVR | |
Dezvoltator | Adam Dunkels |
Lansare curentă | 2.7 (15 noiembrie 2013 ) |
Tipul de nucleu | multitasking monolitic condus de evenimente |
Platforme acceptate | multiplataforma |
Tipul licenței | Software gratuit |
Licență | Licențe BSD |
Etapă de dezvoltare | activ |
Site-ul web | www.contiki-os.org/ |
Contiki este un sistem de operare multitasking ușor, open source și extrem de portabil. A fost dezvoltat pentru a fi utilizat pe un număr mare de sisteme, de la computere pe 8 biți la sisteme încorporate pe microcontrolere . Numele Contiki derivă din pluta Kon-Tiki cu care Thor Heyerdahl a făcut o expediție pentru a demonstra că polinezienii au putut să se întoarcă din America de Sud în arhipelagul lor.
Deși se poate ocupa de multitasking, Contiki are nevoie doar de câțiva kilobiți de cod și de câteva sute de octeți de RAM . Sistemul complet, inclusiv GUI , folosește aproximativ 30 kilobytes de RAM.
Nucleul de bază și majoritatea funcțiilor de bază au fost dezvoltate de Adam Dunkels la grupul de sisteme încorporate în rețea al Institutului suedez de informatică .
Proiect
Contiki este scris în limbajul C și este deosebit de potrivit pentru sistemele încorporate cu puține resurse hardware. O configurație tipică Contiki este de 2 kiloocteți RAM și 40 kiloocteți ROM . A fost conceput special pentru Internetul obiectelor pentru a extinde internetul global la obiecte.
Contiki constă dintr-un kernel de evenimente pe care aplicațiile sunt încărcate și descărcate dinamic în timpul rulării . Programarea nu este preventivă, astfel încât CPU-ul este eliberat de proces numai atunci când se termină sau se blochează în așteptarea unui eveniment. Procesele lui Contiki sunt fire prototice care permit un stil de programare oarecum liniar, filetat .
Pentru rețea, a fost implementată stiva de protocol uIP , care este o stivă TCP / IP special concepută pentru sistemele de 8 și 16 biți. Din octombrie 2008, uIP este compatibil cu protocolul IPv6 . De asemenea, este implementat protocolul 6LoWPAN (IPv6 peste rețele personale fără fir de mică putere), care permite utilizarea protocolului IPv6 în rețelele WPAN , datorită comprimării antetului IPv6. De asemenea, este implementat RPL, un protocol de rutare pentru rețelele de putere redusă.
Programare
Pentru a dezvolta o aplicație Contiki, mai întâi de toate trebuie să definiți un proces. Structura de bază a unei aplicații este următoarea:
#include "contiki.h" // trebuie să fie întotdeauna inclus
PROCES ( Exemplu , „Exemplu de proces” ); // Definirea procesului
AUTOSTART_PROCESSES ( & Exemplu ); // Boot on boot
PROCESS_THREAD ( Exemplu , ev , date )
{
PROCESS_BEGIN (); // Definește începutul procesului
în timp ce ( 1 ) {
PROCESS_WAIT_EVENT ();
// cerere
}
PROCES_END ();
}
Makefile are următoarea structură:
CONTIKI = .. / .. // depinde de locația proiectului
toate : aplicație - nume
include $ ( CONTIKI ) / Makefile . include
Platforme
Contiki este capabil să ruleze pe o mare varietate de platforme, de la microcontrolere, cum ar fi TI MSP430 și Atmel AVR, până la computere mai vechi de acasă .
Sistemul a fost portat (sau este portat) la următoarele sisteme:
- Calculator:
- Consolă de jocuri:
- Microcontroler:
- Atmel AVR
- TI MSP430 , TI CC2538 (RE-mote, Firefly, Zoul)
- STMicroelectronics STM32W
- Microchip PIC32 (PIC32MX795F512L)
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere despre Contiki
linkuri externe
- ( EN ) Contiki: site oficial , pe sics.se. Adus la 25 august 2010 (arhivat din original la 25 august 2010) .
- Analiza și utilizarea Contiki pentru monitorizarea parametrilor de mediu ( PDF ), pe monacchi.altervista.org .