Contiki协议栈学习计划

写在前面

  由某个物联网岗位招聘中,里面有一条加分项是这样说的:

Familiarity with Contiki or Tiny OS programming is a PLUS.

  然后就在网上疯狂搜索这条招聘中的相关专业术语,最后打算以Contiki作为切入点。Contiki作为一个操作系统,综合了多门学科知识,比如C语言、操作系统、数据结构、计算机网络,而Contiki在网络这一块又包含了很多网络协议,比如TCP/IP的简化版uIP,比如Contiki的基础协议Rime,再比如各种应用协议等等。因此可以说,Contiki是一个绝佳的学习宝库。
  经过长达一个月的预热期,现在已经对Contiki基本架构有了一定的了解,比如Contiki的protothread机制,事件驱动机制。这里主要要感谢Jelline和陈广老师,他们的Contiki学习笔记对我又很大的启发。Jelline的学习笔记是好几年前的了,而又由于Contiki的开发很活跃,所以很多代码都比较老了,与现在的代码有很大的差别。陈广老师的学习笔记是今年才开始写的,但是他最开始依赖的Contiki是2.7,与现在github上最新的代码也有一定的差距(这两天在看packetbuf这一块,其实现方法有很大的不同)。
  在这一个月的预热期中,还特意去巩固了一些大学里的基础知识,比如《计算机网络》。还看了一些Adum的论文,目前翻译了三篇,两篇半成品[点击这里]。还翻译了世界上唯一的一本以Contiki为蓝本的书《IoT in five days》[点击这里]。自己还fork了Contiki仓库,翻译了部分Contiki Wiki[点击这里](还产生了一件有趣的事儿,刚开始不懂,翻译到官方的Contiki上面去了,后来还有老外提出issue,“咦,为啥Wiki的文字是中文的,我看不懂啊”,O(∩_∩)O哈哈~[点击这里])。

变色龙架构

  

这里写图片描述

  在Contiki中,Adam将协议栈架构叫做变色龙架构,这是因为Contiki不指定要传输、接收的包的包头的具体格式,因此可以兼容各种可能的协议(甚至将来才会开发出来的协议)。
  在预热学习中,已经对Rime栈,Chameleon,MAC层都有了一定的了解,因此我目前的学习主要集中在这上面,深入研究其源码。
  关于更具体的学习计划,请参考我的下一篇博客: Contiki学习笔记:引入

参考学习资料

  1. Jelline博客:
    http://blog.chinaunix.net/uid-9112803-id-2978041.html

  2. 陈广老师博客:
    http://cgbluesky.blog.163.com/blog/#m=0&t=1&c=fks_085067093087088067084083094095086082080065087083083075

  3. Adam论文集合:
    http://download.csdn.net/detail/tidyjiang/9527568

  4. Contiki Wiki:
    https://github.com/tidyjiang8/contiki/wiki
    https://github.com/contiki-os/contiki/wiki

  5. Contiki tutorials:
    http://anrg.usc.edu/contiki/index.php/Contiki_tutorials

  6. 学堂在线视频:
    http://www.xuetangx.com/courses/course-v1:NTHU+MOOC_01_004+sp/courseware/136d91d9553b42eba4bdf93a66944c34/56f535c1a9f14935a32b5e9fde641359/
    http://www.xuetangx.com/courses/course-v1:UST+UST001+sp/courseware/57be39eedfa34649ac8939c4a7494b76/4f99140085b84a939a04cd5eb4306898/

  7. IoT in 5 days:
    https://www.gitbook.com/book/tidyjiang8/iot-in-5-days/details

  8.   1
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值