contiki系统开发-UDP-IPV6数据传输功能实现与测试
前面几节完成了基本环境的搭建,这里进行测试,按照以往的习惯,先啃“硬骨头”,这一次计划先实现“比较复杂”的网络通讯。
书归正传,现在开始:
1)在终端下进入cc2530dk/udp-ipv6例程目录:“~/contiki-sensinode-cc-ports/examples/cc2530dk/udp-ipv6$ ”
2)输入make进行编译,这个过程有点小长,耐心等待一下
注意:该步骤如果出现没有安装src_cat什么之类的提示,说明你少安装了srecord,那就apt-get install srecord,安装完成后再重新make编译。
关于srecord是什么用处,这里穿插扫盲一下:
SRecord是一个强有力的工具,处理可编程只读存储器的文件,包括摩托罗拉S-Record,英特尔十六进制,Tektronix十六进制和二进制,因为两者的输入和输出,所有过滤器可以应用到所有的文件格式。
3)编译成功后可以在下面找到client.hex和server.hex可执行文件
user@instant-contiki:~/contiki-sensinode-cc-ports/examples/cc2530dk/udp-ipv6$ ls *.hex
client_back.hex client.hex server_back.hex server.hex
user@instant-contiki:~/contiki-sensinode-cc-ports/examples/cc2530dk/udp-ipv6$
4)拷贝至windows目录下进行测试,发现server并没有收到client的数据,为什么呢?哈哈,聪明的你一定猜中啦,地址就没有搞定嘛。
可以看到server一直在监听3000端口的数据,但是client的数据一致没有发过来,原因就是地址不对嘛,继续改进。
关于MAC地址如何转换为IPV6地址,请参阅文档:这里有详细介绍。
5)输入gedit client.c&,编辑文件
MAC地址到IPV6地址的映射方法【摘自xukai博文】:
更改如下:
重新make编译,获取hex文件
5)将重新编译完成的固件下载至客户端
总结:从上面可以看出,client和server已经运行起来了,看样子还是很稳定的,今天晚上冻他们一夜,明天看看效果,`(*∩_∩*)′