CC2538开发板ipv6准备工作,编译lib6lowpan,libcoap

原创 2015年11月17日 16:51:00

前面已经介绍过,笔者比较熟悉TinyOS,再此主要讨论的是TinyOS的准备部分,Contiki和RIOT以后有时间会补充;

首先看看LocalIeeeEui64C.nc文件

module LocalIeeeEui64C {
  provides interface LocalIeeeEui64;
} implementation {
  command ieee_eui64_t LocalIeeeEui64.getId() {
   ieee_eui64_t id;
    /* this is UCB's OUI */
    id.data[0] = 0x00;
    id.data[1] = 0x12;
    id.data[2] = 0x6d;
    /* UCB will let anyone use this OUI so long as these two octets
       are 'LO' -- "local".  All other octets are reserved.  */
    /* SDH -- 9/10/2010 */
    id.data[3] = 'L';
    id.data[4] = 'O';
    id.data[5] = 0;
    id.data[6] = TOS_NODE_ID >> 8;
    id.data[7] = TOS_NODE_ID & 0xff;
    return id;
  
    /****
    ieee_eui64_t id;
    id.data[0] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[3]; //F_EXADDR7
    id.data[1] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[2]; //F_EXADDR6
    id.data[2] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[1]; //F_EXADDR5
    id.data[3] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[0]; //F_EXADDR4
    id.data[4] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[7]; //F_EXADDR3
    id.data[5] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[6]; //F_EXADDR2
    id.data[6] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[5]; //F_EXADDR1
    id.data[7] = ((uint8_t *)IEEE_ADDR_LOCATION_PRIMARY)[4]; //F_EXADDR0
    return id;
    */
  }
}

id.data[0]~id.data[7]对应就是2538的IEEE地址,不过上面未注释部分是TinyOS默认的自定义的IEEE地址,TOS_NODE_ID 为短地址,也就是make cc2538cb id.xx中的xx

下面注释掉的部分是物理IEEE地址。

按照IETF的文档,应该对IEEE地址进行U/L bits操作,也就是 id.data[0] (byte)从右到左第7bit取反(也就是编程咱们常常默认的bit1)

知道了这个你反过去阅读PPprouter中德文章,就知道UDPECHO 中德id.2的route命令的地址为什么是那个值了。


1,编译lib6lowpan

言归正传:用到6llowpan,那么你肯定需要遵从他的规范,也就是使用Lib6lowpan

进入support/sdk/c/blip下

./bootstrap

./configure

make

当然这个目录是tinyos2.2.12release默认的路径,如果是github最新的做法是在tools/tinyos/c/blip中

2,编译libcoap

添加Coap的库,也就是编译libcoap,可能coap的版本会有区别,注意看文档是否对coap的版本有限制;

进入目录support/sdk/c/coap

autoconf

./configure --with-tinyos


即可;

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

CoAP学习笔记——Libcoap安装和使用

libcoap是CoAP协议的C语言实现,libcoap提供server和client功能,它是调试CoAP的有力工具,本文将说明如何在Linux平台上安装libcoap,并通过几个简单的例子说明li...

CoAP协议学习——CoAP基础

学习CoAP最简单的方法便是阅读协议文档。

CoAP协议及开源实现

1. CoAP协议的简单介绍 CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。这些关键特征使得因特网由简单的文档检索机制(World...
  • tulun
  • tulun
  • 2013-04-30 11:35
  • 35061

CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)

本文尝试在windows平台中搭建基于nodeJS的CoAP Server。

H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

一、MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496)   二、MP4封装格式核心概念 1  MP4封装格式对应标准为 ISO/IEC 14...

CC2538之Contiki3.0实验:1-Contiki初探-新建空工程 编译

contiki3.0网页doxygen: http://www.hopnetwork.com/contiki/index.html 博客帖子已经介绍了TinyOS编程和实验例程;下面将来啃一下我...

C++中STL用法总结

1.1 什么是STL? STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Li...

CoAP学习笔记——IETF文档和draft文档

截至2015年4月,IETF共发布了2份关于CoAP协议的RFC文档,尚有5份文档处于草稿状态。

CoAP协议及开源实现

1. CoAP协议的简单介绍 CoAP是一种面向网络的协议,采用了与HTTP类似的特征,核心内容为资源抽象、REST式交互以及可扩展的头选项等。这些关键特征使得因特网由简单的文档检索机制(Wor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)