Contiki学习入门之概览
Contiki是专为物联网领域而设计的开源操作系统,适用于联网嵌入式系统和无线传感器网络。由瑞典计算机科学学院的Adam Dunkels团队开发。它有以下几个特点。
1. 网络标准
contiki提供强大的低功耗网络通讯,支持标准IPv4和IPv6,连同最新的低功耗无线标准,6lowpan,ROL,CoAP等等。配合ContikiMAC层和具备休眠功能的路由器,每个无线路由器都可以由电池供电。
2. 快速开发
Contiki应用全部是用标准C语言来编写,可移植性非常好。可以使用Cooja模拟器来仿真Contiki网络。Instant Contiki提供一套完整的开发环境,典型的配置下,contiki只占用2KBytes的RAM以及40KB的Flash存储器。下载地址:Get-Started-with-contiki
3. 硬件平台
Contiki可以运行在多种低功耗无线设备上,从基于8051内核的单片机,MSP430到多种ARM内核设备上,都可以运行。拥有一个活跃的开发社区,该社区由Thingsquare的Adam Dunkels领导,社区成员有Atmel、Cisco、ETH、SAP等等。典型的Contiki配置只需要2K的RAM和40K的ROM。代码可以免费的用于商业领域和非商业领域,发布源码采用的协议为contiki-BSD-license
Contiki特点
1. 针对内存受限特点,开发了专用的内存块分配器memb,托管内存分配器mmem,和标准malloc内存分配相类似。
2. 针对能量受限特点,Contiki设计为一个极低功耗的系统,凭借AA电池,可以长时间运行。为了便于测量功耗,Contiki提供了检测系统功耗的机制,理解系统能量的消耗构成。
3. 全网络支持,支持标准IP协议,例如UDP、TCP和HTTP。除此之外,最新的低功耗标准,像6lowpan、RPL和Coap也支持的。在Contiki中的IPv6协议栈由Cisco开发,通过IPv6认证标志项目认证 。contiki内部集成两种无线传感器网络协议栈:uIP和Rime。uIP是一个小型的符合RFC规范的TCP/IP协议栈,使得contiki可以直接和Internet通讯,uIP包含了IPv4和IPv6两种版本,可在编译时二选一。
Rime是一个轻量级为低功耗无线传感器网络设计的协议栈,该协议栈提供了大量的通信原语,能够实现从简单的一跳广播通信,到复杂的可靠多跳数据传输等通信功能。
4. 基于事件驱动(Event-driven)内核,多个任务共享同一个栈(stack),支持动态模块加载机制,提供protothreads机制,在这种机制下,每个事件处理可以独立等待事件的发生,而不会阻碍其他事件。提供轻量级的flash文件系统,称为Coffee。提供一个可选的基于文本的shell命令行接口。
5. Contiki无线传感器网络仿真工具,能够对协议在电脑上进行仿真,仿真通过了下载到节点上世纪运行。
6. 得益于Contiki的MAC射频占比循环机制,在网络中作为消息中转的路由器也可以采用电池供电,这和ZigBee网络中的路由器能量供应不同。在Contiki网络中,称这种路由器为sleepy路由器。
7. Contiki采用BSD授权协议,用户可以用于科研和商用,并且可以任意修改代码,无需任何专利以及版权费用。
安装Contiki工具
1. 下载Instant Contiki和对于的VMWare Player工具。下载InstantContik2.7好几次,解压到最后的时候出错,我想就这,官方网址,总不可能下错吧。我下了三四次contiki2.7的压缩包,总是解压错误。今天,最后用IE下载,经过漫长的等待,终于成功了。

密码是:user
接下来就是一步一步来学习了。
参考资料:http://www.cmeee.com/forum/contiki-bbs/46-instantcontiki2-6-for-cc2530dk 这是一系列学习contiki的博客,很好很强大。
参考资料:
Contiki官方网站: www.contiki-os.org
Contiki Wiki:www.sics.se/contiki/wiki
Contiki 源代码文档:http://dak664.github.com/contiki-doxygen
Contiki代码下载:http://sourceforge.net/projects/contiki/files/Contiki/
Instant Contiki开发环境:http://sourceforge.net/projects/contiki/files/Instant%20Contiki
Contiki学习入门之概览的更多相关文章
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- C# BackgroundWorker组件学习入门介绍
C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- UML学习入门就这一篇文章
1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...
- 简单的玩玩etimer <contiki学习笔记之九 补充>
这幅图片是对前面 <<contiki学习笔记之九>> 的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki ...
- 简单的玩玩etimer <contiki学习笔记之九>
好吧,我承认etimer有点小复杂,主要是它似乎和contiki的process搅在一起,到处都在call_process.那就先搜搜contiki下的etimer的example看看,然后再试着写一 ...
- Stanford Parser学习入门(2)-命令行运行
在Stanford parser目录中已经定义了一部分命令行工具以及图形界面,本文将介绍如何在windows使用这些工具进行语法分析,Linux下也有shell可以使用. 关于如何搭建环境请参考上一篇 ...
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
随机推荐
- 安卓高手之路之 ClassLoader
我不喜欢那些泛泛而谈的去讲那些形而上学的道理,更不喜欢记那些既定的东西.靠记忆去弥补思考的人,容易陷入人云亦云的境地,最后必定被记忆所围困,而最终消亡的是创造力.希望这个高手之路系列能够记录我学习安卓 ...
- Linux 内核动态函数调用可视化工具
要求: python .7以上 https://www.python.org/ftp/python/ EG:wget --no-check-certificate https://www.python ...
- php引用详解
<?php function foo($bar){ $bar='111111111'; } $str='2222222222222'; foo($str); echo $str; //out ...
- 小白日记17:kali渗透测试之缓冲区溢出实例-windows,POP3,SLmail
缓冲区溢出实例 缓冲区溢出原理:http://www.cnblogs.com/fanzhidongyzby/archive/2013/08/10/3250405.html 空间存储了用户程序的函数栈帧 ...
- CCScale9Sprite的使用
#include "cocos-ext.h" USING_NS_CC_EXT; //框中需要显示的label CCLabelTTF *label = CCLableTTF::cre ...
- Android 高级UI设计笔记09:Android如何实现无限滚动列表
ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...
- js里一些经典的算法
//1.找出某个数字在一组数组内的存不存在 如果存在 找出他所在的索引. function indexOf(arr,item){ var i; if(Array.prototype.indexOf){ ...
- CEF js调用C#封装类含注释
/* * CEF JS调用C#组装类 * * 使用方法(CefGlue为例): * public class BrowserRenderProcessHandler : CefRenderProces ...
- 【Nginx 1】Nginx 的下载和安装
今天正式开始学习Nginx.Nginx是一个著名的轻量级Http服务器,目前已经有很多知名网站使用Nginx作为服务器.因为Nginx是开源的软件,因此对于开发人员和学习者来说都是一个大宝藏. 首先, ...
- java笔记00-目录
--2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射: