原创 关于Contiki中Rime代码的一些阅读记录

2013-2-20 20:24 1462 14 14 分类: 消费电子

 

/*------------------------------------------------------------------------------------------------------*/
2013-02-01
1、
在Contiki中有一个自己的内存管理,方式是预先分配,使用时调用其中的一块。
 
/*------------------------------------------------------------------------------------------------------*/
2013-01-31
1、
这里选择查看List因为链表是编程中,最常用的一种方式。
 
函数中,使用二级指针来返回链表头,因为链表头,既是一个指针。
链表头,指向链表的首元素。
这里用的是单向链表。
 
这里明白为什么是这样做了。
并不是像以前我们自己做的那样,其实就是将链表当做一个线性数组来使用。而这里就是当做一个来管理数据的方式,
因此,是根据各个元素来使用的。
这里以后要慢慢习惯这样的方法。
 
明白了这里为什么将next指针,放在首位,因为在指针转换时,和转换后的list_t 结构的next指针对应,这样就忽略了具体的结构形式。
 
应该说在这一点,Contiki做的应该是很好的了。
使用一个公用的链表操作所有的结构体链表。
这里算是一个比较高明的地方。
 
之前在《系统程序员成长计划》中开篇也是以一个共用链表开始,感觉两个各有优劣。
 
/*------------------------------------------------------------------------------------------------------*/
2013-01-29
1、
关于stunicast.c中,感觉比unicast.c中多的是多了一层ctimer。有了超时控制。这个可能会使链路的稳定性更好,
超时会有一些处理。
之于stbroadcast.c比于broadcast.c也是这样。多了ctimer控制里边的帧发送。
 
照此而言,稳定与非稳定,的差异在于时间的控制上。
 
1.1同时,置于其上的rmh,是使用stunicast等加上了ctimer的函数实现的一组函数调用。
 
2、
同时,由于Rime并不提供路由等支持,如果要通过Rime实现组网,就需要在实现mesh,route等一些算法的东西。
 
Rime下的几个文件
| | | |-broadcast.c
| | | |-broadcast.h
| | | |-mesh.c
| | | |-mesh.h
| | | |-rmh.c
| | | |-rmh.h
| | | |-route.c
| | | |-route.h
| | | |-stbroadcast.c
| | | |-stbroadcast.h
| | | |-stunicast.c
| | | |-stunicast.h
| | | |-unicast.c
| | | `-unicast.h
 
注:
原理见《Rime&Contiki Chameleon》

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条