Contiki
文章平均质量分 77
RimeLink
锐米工程师,计算机硕士,16 年 ICT(信息和通信技术)研发与管理经验,精通 LoRa 物联网。
获得过国家专利,成功研发过多款产品。
展开
-
Contiki开发4:基于DEMO移植Contiki
移植一个操作系统是指将它运行在给定的硬件平台。因为Contiki是非可剥夺的OS,不用实现上下文切换(CPU的寄存器保存与恢复),因此它的内核移植特别容易,一般是实现2个定时器:etimer和rtimer。原创 2016-07-12 22:41:22 · 2453 阅读 · 0 评论 -
Contiki开发5:Hello,Contiki
实现一个最简单的Contiki进程,每1秒打印:Hello, Contiki.同时剖析该进程的原理,了解Contiki开发的特征。原创 2016-07-15 22:54:44 · 3193 阅读 · 0 评论 -
Contiki开发6:shell系统
基于Contiki系统,设计一个高效稳定的shell系统,特别适合程序员开发与调试使用。原创 2016-07-18 22:51:25 · 2369 阅读 · 0 评论 -
Contiki开发7:中断与进程
在本文中,我们以DEMO(www.rimelink.com)的按键中断和进程响应,描述Contiki系统中断与进程的设计。原创 2016-07-20 22:37:32 · 2823 阅读 · 2 评论 -
Contiki开发8:进程协作
嵌入式系统中,大部分的任务由多个进程协作完成,这时,进程需要消息通信和同步。本博文通过从shell输入命令”samplesht”,输出当前温湿度数据,展示Contiki系统下Monitor和Demo这2个进程的协作。原创 2016-07-24 07:20:17 · 1986 阅读 · 1 评论 -
Contiki高级程序设计(三)
使用简单的办法,解决Contiki进程在阻塞时可能“丢弃”其他消息的缺陷。原创 2016-07-01 22:14:39 · 2141 阅读 · 3 评论 -
Contiki开发9: 下载源代码
基于锐米通信的DEMO(STM8L151C8T6),开发一个Contiki系统,支持shell, ASSERT(), DBG, 支持Key,采集温湿度,成熟稳定,可以扩展成产品。原创 2016-07-31 08:10:52 · 2852 阅读 · 2 评论 -
Contiki开发2:工具和环境
介绍硬件平台和工具,包括:调试平台,仿真器,USB转串口等。软件工具包括:IDE(集成开发环境),版本控制和代码编辑器。原创 2016-07-08 23:08:08 · 3242 阅读 · 0 评论 -
Contiki移植
Contiki移植一.系统层次结构一个基于Contiki嵌入式系统的层次结构如图1所示,很明显,移植Contiki主要的工作是开发对应硬件的“板级层”软件包,同时解决Make工程的各种错误。图1 Contiki系统层次结构二.移植思路移植一个嵌入式操作系统的大致流程如下,Contiki也不例外:1. 阅读该系统的原理论文和说明手册,建立整体概念;原创 2015-03-26 21:40:03 · 7342 阅读 · 0 评论 -
Contiki开发1:Contiki与8位MCU
介绍Contiki系统的功与过,引入8位MCU在物联网时代的重生。原创 2016-07-06 22:00:43 · 4577 阅读 · 1 评论 -
Contiki高级程序设计(二)
以锐米LoRa终端开发为例,RF和RTC的ISR都需要poll进程,这就需要引入新的机制来排队和区分poll消息源。原创 2016-06-30 22:41:00 · 2684 阅读 · 0 评论 -
Contiki高级程序设计
基于Contiki系统,实现进程阻塞和线程调度。原创 2015-12-06 09:04:46 · 3388 阅读 · 0 评论 -
如何解决Contiki下进程与中断时序Bug
基于Contiki的进程开发,射频中断和定时器中断产生一个Bug,调试了2天才解决,为此记载该问题的原因和解决思路,以备忘和共享。原创 2015-09-10 11:06:33 · 3294 阅读 · 2 评论 -
解析Contiki系统protothread的预编译C代码
Contiki操作系统最大的特点(对于嵌入式系统也是最大的优点)是它支持protothread进程,这样一来多个进程可以共享一个栈,以达到最大限度节省内存的目的。Protothread是用一系列的宏定义API来实现的,不过,做为一个成熟的程序员,我们还是需要了解这些API后面的“真面目”,只有这样才能深入理解protothread的工作原理,同时才能开发正确高效的程序。现在贴出一个prot原创 2015-03-24 22:40:21 · 3942 阅读 · 1 评论 -
Contiki之父Adam Dunkels经典论文介绍
作为一个越来越受重视的WSN操作系统,Contiki已经受到产业界和教育界开发和应用者的青睐。Contiki系统与传统的操作系统相比具有自己的特性:非常节省内存,丰富的无线通信协议原语,小巧实用的Coffee文件系统,可灵活更换的动态链接库,支持IPPv4和IPv6协议栈,由ASNI C语言实现,开源免费。 接下来的问题是,我们应用者如何快速掌握该系统,根据我们使用OS的经验,大概是“四步原创 2015-03-15 08:10:24 · 7063 阅读 · 3 评论 -
Contiki内核原理
Contiki内核原理一.数据结构Contiki既利用了事件驱动系统节省内存和高效使用CPU的优势,又实现了多进程系统的阻塞机制从而带来开发便利性。自然,Contiki内核最重要的2个数据结构是:进程链表和事件循环数组,分别如图1和图2所示。图1 Contiki系统进程链表图2 Contiki系统事件循环数组二.主循环从图3可以看出,Contiki系统运原创 2015-03-27 22:54:47 · 6171 阅读 · 3 评论 -
Contiki常用数据结构
Contiki常用数据结构1. Packetbuf得益于Contiki进程是非抢占的特性,Rime缓冲区将接收与发送的数据包存储在一个单一的缓冲区packetbuf,它的管理结构如图1.1所示,结合该图与源代码packetbuf.c可以很好地理解和使用缓冲区。特别注意packetbufptr,该指针可以指向外部引用的内存,这样就带来很大的灵活性(如:实现“零拷贝”,访问只读数据原创 2015-06-06 09:34:13 · 4257 阅读 · 1 评论 -
Contiki开发要点
Contiki开发要点一.Protothread变量定义Adam Dunkels的论文中提到,基于Contiki的protothread开发时要特别注意变量的生存周期,分配在栈中的自动变量,随着函数被多次返回与调用,它很容易带来错误。现在,通过分析几个实例程序来总结protothread中定义变量的规律。1. 一个出错的程序如图1所示的程序用于打印当前的时钟值,可得到的结原创 2015-03-29 12:25:43 · 5062 阅读 · 1 评论 -
Contiki rtimer原理与移
rtimer原理与移植一.rtimer用途Contiki系统引入rtimer可以满足精准定时的需要,一些对时间极为敏感的模块(如MAC协议)依赖于rtimer。和etimer的粗粒度(常见为100Hz)不同,rtimer是细粒度(常见为10kHz)定时器。根据经验,细粒度定时器如果中断频繁特别容易消耗CPU资源,为此contiki设计rtimer时尽可能地减少中断,大部分应用场合为读取定时原创 2015-04-08 22:26:12 · 5015 阅读 · 0 评论 -
Contiki协议栈
Contiki协议栈一.协议栈总体框架Contiki系统为了支持多种硬件平台和软件协议设计了如图1.1所示的层次框架,通过contiki-conf.h的宏定义用户可以灵活地选择协议类型,如:#define NETSTACK_CONF_NETWORK rime_driver#define NETSTACK_CONF_MAC csma _driver#define NE原创 2015-05-23 10:15:37 · 6555 阅读 · 0 评论