TI zigbee Z-stack linux gateway 移植编译注意事项
来源:互联网 发布:java设置线程优先级 编辑:程序博客网 时间:2024/05/17 13:41
项目地址:https://git.oschina.net/Edward_Ou/zbgateway.git
概述
TI zigbee Z-stack linux gateway是适用于AM335x,但是当前手中并没有AM335x,只有一个MT7620N路由器开发板,上面运行Openwrt系统。使用MT7620N+CC2530做一个网关。MT7620N与CC2530通过串口通讯。
实现网关步骤:
1、CC2530刷入ZNP固件。具体操作可以查看【Zigbee Stack CC2530 ZNP使用】
2、移植TI zigbee Z-stack linux gateway 或者移植znp-host-framework
当前是1.01版本的,TI基于Z-Stack 3.0版本的 gateway还在测试阶段。
移植Gateway注意事项
在ti上面下载Z-STACK-LINUX-GATEWAY并安装,安装的时候注意权限问题。安装完成后目录结构如下
刚安装好的Gateway目录里面的固件都是基于AM335x,要生成适合mt7620n开发板的固件,主要修改目录位于Source目录
初始目录没有protobuf-c-mips目录,protobuf-c-mips里放的是适用于mt7620n的protobuf库文件。
- 编译适用于mt7620n的protobuf库程序。并将其拷贝到Source目录下
- 修改Source目录下的所有Makefile将交叉编译工具指定为mipsel-openwrt-linux-gcc
- 修改Source/scripts/package_builder_bbb交叉编译工具、protobuf库(将所有的arm库替换为mips库)
- 修改Makefile编译选项,-mcpu=cortex-a8 -march=armv7-a 改为-march=24kec
- 修改Source/build_all中PROTOLIB库的指向,将其指向protobuf-c-mips
- 编译的时候会出现无法找到execinfo.h头文件错误,解决方式:删除代码中应用execinfo.h的地方
增加调试选项
在调试阶段,可以通过日志打印的方式查看网关是否按照预想的方式运行。
修改Source/Projects/tools/LinuxHost/makefile,在DEFINES 后增加-D__BIG_DEBUG__ 编译选项
并且关闭SPI功能 同样在该makefile 的DEFINES处删除-DNPI_SPI=TRUE修改串口配置信息
修改Source/Projects/zstack/linux/collateral/gateway/config/NPI_Gateway.cfg
使能串口工作方式,关闭流控,设置波特率为115200,串口在mt7620n上面的名字修改启动脚本bash
Source/Projects/zstack/linux/scripts/hagateway/track_servers
Source/Projects/zstack/linux/scripts/hagateway/zigbeeHAgw
将/bin/bash改为/bin/sh屏蔽zigbee复位
在原先的脚本中,启动zigbee前需要通过一个IO口控制zigbee复位,但是MT7620上面没有IO口控制zigbee复位,所以要屏蔽IO口复位。和后期可以增加一个软件复位上去。
修改Source/Projects/zstack/linux/scripts/hagateway/zigbeeHAgw
将ignore_zbee_reset=0,改为ignore_zbee_reset=1声明TCLIB环境变量
在编译环境中export 一个TCLIB环境变量,否则编译不通过
export TCLIB=/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/lib
- 编译
./build_all
编译完成后,在当前目录下生成out目录,将该目录下的Precompiled_arm.tar通过scp拷贝到mt7620n系统中。
测试
- 运行zigbeeHAgw
./zigbeeHAgw beaglebone
- 运行测试程序
./start_application
基本的移植工作完成,后期会参考Z-stack linux gateway编写自己的网关功能。
- TI zigbee Z-stack linux gateway 移植编译注意事项
- TI zigbee Z-stack linux gateway 在非Beaglebone平台的移植编译与注意事项
- ZigBee协议栈TI Z-Stack分析
- ZigBee协议栈TI Z-Stack分析
- Zigbee之Z-Stack
- ZigBee协议栈Z-Stack开发指南(翻译的TI的手册Z-Stack Developer's Guide.pdf)
- 基于CC2430/31的Zigbee实践(4)—TI Z-Stack
- ZigBee四种绑定方式在TI Z-Stack中的应用
- ZigBee四种绑定方式在TI Z-Stack协议栈中应用
- ZigBee四种绑定方式在TI Z-Stack中的应用【转载】i
- 绑定(1)ZigBee四种绑定方式在TI Z-Stack中的应用
- Zigbee通讯之开发篇(基于TI 的Z-Stack)
- ZigBee四种绑定方式在TI Z-Stack中的应用
- ZigBee四种绑定方式在TI Z-Stack中的应用
- Zigbee通讯之开发篇(基于TI 的Z-Stack)
- Zigbee通讯之开发篇(基于TI 的Z-Stack)
- CC2530移植Z-Stack协议key配置注意事项
- ZigBee CC2530 Z-Stack 16 按键驱动移植及使用2-驱动移植
- centos7.0 caffe安装详解
- java运行helloworld
- Hbase学习笔记:Hbase与ZooKeeper组合应用及Hbase常用操作
- 关于docker remote api未授权访问漏洞的学习与研究
- Python数据分析练习:北京、广州PM2.5空气质量分析(2)
- TI zigbee Z-stack linux gateway 移植编译注意事项
- Android 权限的一些细节
- Github上unity-shader智能提示和高亮插件
- HDOJ1102 最小生成树简单运用
- 浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化
- C++贪心算法之最小新整数
- POJ 1470 Closest Common Ancestors B (LCA算法)
- 闭包测试
- HDU 6133 Army Formations [线段树合并]