Contiki协议栈学习计划

2024-04-08 04:32
文章标签 学习 协议 计划 contiki

本文主要是介绍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
      

这篇关于Contiki协议栈学习计划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884568

相关文章

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines