![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Contiki
tietao
一切,都会云淡风轻的过去。
只为,心中不变的追求。
展开
-
Contiki:初探
Contiki是为了Wireless Sensor Network设计的一个嵌入式系统,侧重于网络。虽然它也可以单独运行,但是这并不是它设计的初衷。从它的core代码的多少就可以看出,在一共2.4M的代码中,net一个文件夹就占用了1.47M的内容。在Contiki中包含的协议或机制:Application: CoApTransport:原创 2013-01-01 17:15:48 · 15251 阅读 · 6 评论 -
Contiki的NETWORK层间数据传输流程
Contiki的NETWORK层之间的数据流路径:Send:Network->Mac->Rdc(->Frame802154)->RadioRecv:Radio->Rdc(->Frame802154)->Mac->Network注:在此结构中,802154应该是属于RDC层的,如果不将RDC算作一层,应该是介于Mac和Radio之间。是Mac层的出口。这也是Contiki的一原创 2014-06-08 22:38:49 · 3614 阅读 · 0 评论 -
Contiki的Rtime只支持一个Timer
在现有http://www.myexception.cn/mobile/1436453.html关于几个Timer的一个总结Contiki源代码中,在调用rtimer时,需要调用者获取当前的RITMER_NOW,然后在此基础上加上需要的time然后进行定时器调度。但是这样里边,如果存在多个定时任务的时候,如何处理呢?而且如果后一个定时任务的time正好小于前一个,又如何保证后一个被调用呢?在现有的原创 2014-06-08 21:59:23 · 2103 阅读 · 0 评论 -
Contiki——Rime缓冲区packetbuf分析
2013-7-5 19:02首先关于里边的一个变量:buflen指的是payload(packetbuf的数据部分)的长度,bufptr指的是payload(packetbuf的数据部分)的起始位置;hdrptr指的是报文头的起始位置(在packetbuf的报文头部分);packetbuf实际大小是PACKETBUF_HDR_SIZE+PACKETBUF_SIZE(原创 2013-07-08 20:53:52 · 2818 阅读 · 4 评论 -
Contiki——Chameleon理解
Chameleon结构的作用在Chameleon的pack_header()函数中体现了出来(这里的打包方式像以前自己讨论过的一个问题,是在组织数据时直接将数据写入发送缓冲区中,还是保存在一个结构体中到最后一起打包)。Chameleon的方式,属于将需要打包的数据先放在一个结构体中,在最后将要发送时,调用pack_header函数将数据写入发送缓冲区中。这样会浪费一些内存。但是,折中的结果是通过C原创 2013-07-08 20:54:46 · 2089 阅读 · 0 评论 -
Contiki——Rime Stack分析
一 分析Rime的大概思路在Rime中,理解Rime Stack的工作原理,首先要理解整体框架;之后要理解这里边的list,memb,packetbuf,channel,等几个部分;之后要明白chameleon的结构,以及一些具体实现;这几个部分中,以packetbuf和chameleon最为重要。像packetbuf.c,packetqueue.c是最基本的几原创 2013-07-08 20:52:12 · 5457 阅读 · 2 评论 -
Contiki中Ctimer遗留的问题
在Contiki中,Ctimer中使用的是etimer,而etimer涉及到System_trick其中,这里的时钟,也是有system_trick终端产生的。到最后,可能是对于M3的寄存器不熟悉,没有找到,具体设置时间的地方。有几个问题1、ctimer判断expire的方式,没有找到,2、在ctimer中的几个函数指针,找不到源原创 2013-02-19 14:15:36 · 2018 阅读 · 0 评论 -
关于Contiki中Rime代码的一些分析记录
/*------------------------------------------------------------------------------------------------------*/2013-02-011、在Contiki中有一个自己的内存管理,方式是预先分配,使用时调用其中的一块。/*-----------------------------原创 2013-02-19 14:13:46 · 3741 阅读 · 0 评论 -
Protothread机制文档(contiki-2.6\doc\pt-doc.txt)
/**\addtogroup sys@{*/ /**\defgroup pt ProtothreadsProtothread 是一种轻型,栈使用少的线程。这种线程为,如嵌入式系统或传感器结点,等内存受限系统而设计。Protothread用C实现了事件驱动系统的线性执行速度的代码。Protothread可以用于或不用于RTOS(实时系统)。P翻译 2013-01-15 21:47:46 · 4145 阅读 · 0 评论 -
Rime&Contiki Chameleon
PAPER:An Adaptive communication Architecture for Wireless Sensor Nerworks1.An architecture of WSN is difficult in the stack and a reasonable header packet.2.The Chameleon architecture co原创 2013-01-25 17:57:17 · 3141 阅读 · 0 评论 -
Contiki:Protothread切换机制理解
在Contiki中,protothread的切换,实质是函数调用,通过call_process()函数调用protothread函数体的函数指针,来切换protothread,即ret = p->thread(&p->pt, ev, data);这里的p->thread指向的就是定义protothread的函数。而由于此函数中代码基本都是在PT_BEGIN和PT_END之间(宏展开后是一个完整的s原创 2013-01-02 22:00:41 · 7452 阅读 · 0 评论 -
Zigee OR 6LowPAN?
The decision to select one standard versus another is determined by the target application. Consider an application for which there is no need to interface with IP-enable devices and the average size原创 2013-01-01 11:46:37 · 1516 阅读 · 0 评论 -
Contiki:__LINE__测试
关于__LINE__最早是在李先静老师的《程序员成长计划》中看到的,当时只是用来调试时使用,由于直接打印出错行,再结合__func__就可以找到是哪个函数,哪一行。后来在分析Contiki时发现里边的protothread切换机制竟然是switch语句+__LINE__,没想到__LINE__还能这样用。虽然写程序时,经常使用,但是对于其本源没有彻底了解,所以这次写个简单的小程序看原创 2013-01-02 21:59:43 · 1910 阅读 · 0 评论 -
Contiki:RDC &CoAP
Paper:主要讲了RDC中的三个优化措施:1、Contiki Timing;2、Packet Detection and fast sleep;3、Transmission phase-lock。讲述了RDC层在contiki中的作用。及实现的原理。如下:RDC:Radio duty cyclingContikiMAC:uses a power ef原创 2013-01-01 16:52:05 · 4442 阅读 · 1 评论 -
Contiki:Communication Architecture
Paper:An Adaptive communication Architecture for Wireless Sensor Nerworks1.An architecture of WSN is difficult in the stack and a reasonable header packet.2.The Chameleon architecture co原创 2013-01-01 11:56:37 · 1920 阅读 · 0 评论 -
Contiki:关于MAC和RDC层的关系、作用及其实现
参考:http://www.contikistudio.com/forum.php?mod=viewthread&tid=2349&extra=page%3D1The ContikiMAC Radio Duty Cycling Protocol>RDC radio duty cyclingMAC MAC:有两种驱动:CSMA和NULLMAC。默认为CSM原创 2013-01-01 17:19:02 · 7663 阅读 · 3 评论 -
话说物联网操作系统
最近好多家都宣布推出自己的物联网操作系统。 1. Google将要在Google I/O大会发布的Brillo; 2. 三星推出的Artik芯片搭载Mentor Graphics的Nucleus; 3. 华为最近推出的LiteOS。Brillo从36氪的报道看“Google正在打造自己的物联网操作系统,名为Brillo,最低能在配置32MB或64MB内存的设备上运行,既适用于冰箱这样的家电,又原创 2015-05-29 21:56:48 · 4122 阅读 · 0 评论