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

相关文章

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对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