关于Contiki中Rime代码的一些分析记录

/*------------------------------------------------------------------------------------------------------*/

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


转载于:https://my.oschina.net/u/859741/blog/279690

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值