博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

马二进三名人传记

yjx2003---linux
  yjx2003.cublog.cn

关于作者
mail: xjybook7###yahoo.com.cn
把3个# 换成 @ ,就是邮件地址
|| << >> ||
我的分类


Debian 上装 TinyOS

 

Debian 上装 TinyOS

Filed under: Work

装的是 1.x 的 TinyOS。就说几点要紧的

 

1.先装编译 AVR 所要的 tool chain

 

aptitude install gcc-avr binutils-avr avr-libc 可能还附带着装上画图的 graphviz。

 

2.从 sf 下 nesc

 

wget http://kent.dl.sourceforge.net/sourceforge/nescc/nesc-1.2.7.tar.gz

./configure --prefix=/opt/tos; make; make install

3.当然还有 sun-java5-jdk

 

aptitude install sun-java5-jdk加上 SUN Java Communication API version 3.0

 

unzip comm3.0_u1_linux.zip

cp commapi/lib/*.so $JAVA_HOME/jre/lib/i386/

cp commapi/jar/comm.jar $JAVA_HOME/jre/lib/ext/

cp commapi/docs/javax.comm.properties $JAVA_HOME/jre/lib/

4.最后从 CVS 抓 TinyOS

 

cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login

cvs -z9 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x

4.1.确定 TOS 的安装目录之后,可以在 .bashrc 里加一个函数,以后想干活只要敲tos就可以了:

 

tos()

{

    export TOSROOT=/home/save/dev/tinyos/tinyos-1.x

    export TOSDIR=\"$TOSROOT/tos\"

    export PATH=$PATH:/opt/tos/bin

    export CLASSPATH=`$TOSROOT/tools/java/javapath`

    cd $TOSROOT

}

4.2.现在 ncc 从 nesc 移到了 TinyOS 里,现在编译 ncc:

 

cd $TOSROOT/tools/src/ncc

./Bootstrap; ./configure --prefix=/opt/tos; make; make install

看一下是不是所有东西都各就各位了:

 

./tools/scripts/toscheck可能 toscheck 认为有的版本不对,这会导致一些问题。在 nesc 生成的汇编程序里,会有许多变量名中间有$符号,gcc-avr 看到这个会不爽。make mica2的时候,会疯狂地报错,类似这样的:

 

/tmp/cch3uzvj.s:1743: Error: unknown opcode `timertask'

/tmp/cch3uzvj.s:1743: Error: unknown opcode `timertask'

/tmp/cch3uzvj.s:1744: Error: unrecognized symbol type

/tmp/cch3uzvj.s:1744: Error: unknown opcode `packetsent'

/tmp/cch3uzvj.s:1745: Error: unknown opcode `cc1000radi'

/tmp/cch3uzvj.s:1753: Error: unknown opcode `txbufptr'

这位朋友把这看作不听话的后果,其实在$TOSROOT/apps/Makeruls里改改就行:

 

-OPTFLAGS := -Os

+OPTFLAGS := -Os -Wa,--allow-dollars 让 gcc-avr 看到刀乐不要慌。

 

4.3.编译 uisp

 

Debian 自带的 uisp 烧写程序时会报错,说:

 

/usr/bin/uisp -dprog=mib510 -dserial=/dev/ttyUSB0 -dpart=ATmega128 --wr_fuse_e=ff  --erase --upload  if=build/mica2/main.srec

Direct Parallel Access not defined.

得使 TinyOS 自己的。

 

cd $TOSROOT/tools/src/uisp

./set-dates

./configure --prefix=/opt/tos && make install

4.4.编译 libgetenv

 

有的 TinyOS 的 Java 程序会用到 JNI 的 libgetenv。因此需要……编译:

 

cd $TOSROOT/tools/java/jni make

make 之前,还需要修改一个脚本$TOSROOT/tools/scripts/locate-jre。把从37行到47行的程序都注释掉,紧接着加上:

 

j=\"$JAVA_HOME\"/bin/javac

当然,前提是你设置好了$JAVA_HOME的环境变量。在修改后的第70行,改之:

 

-dir=\"$jhome/jre/bin

+dir=\"$jhome/jre/lib/i386

这些问题是没有使用 IBM JDK,以及 Debian 没有安装 rpm db 造成的。

 

5.现在设置一下编程板使用的口,以及 mica2 使用的频段和功率等

 

写一个文件 $TOSROOT/apps/Makelocal,

 

DEFAULT_PROGRAM=mib510 # 编程板用的型号

MIB510=/dev/ttyUSB0   # USB to serial 在 GNU/Linux 里就是这样的

DEFAULT_LOCAL_GROUP=0x88 #  group id

 

FLAGS = -DCC1K_DEFAULT_FREQ=CC1K_433_002_MHZ # 无线通信使用的频段

CFLAGS += -DRADIO_XMIT_POWER=0xFF # 用最大的功率

6.看看硬件是否正常

 

cd $TOSROOT/apps/MicaHWVerify make mica2 如果一切正常的话,说明 TinyOS 差不多装好了。之所以说“差不多”,是因为 TinyOS 还附带了相当多的工具,和 Java 库,这些东西我们都还没有编译过呢。接下来,把编译好的程序烧到板子上:

 

make reinstall mica2 接下来,跟着Tutorial检查 通信等功能。 到现在,就差不多完成了 TinyOS 在 Debian GNU/Linux 平台上的安装。另外,如果要用 deluge 的话,需要改一下 deluge 的 Makefile:

 

sed -i -e \"s/DELUGE_PLATFORM=telosb/DELUGE_PLATFORM=mica2/\" \

       -e \"s/CC2420Radio/CC1000Radio/\" $TOSROOT/tools/java/net/tinyos/deluge/Makefile

6.最后有一点,是使用 USB to serial 转接线造成的。

 

6.1.让 Java 程序认识/dev/ttyUSB0

 

要修改$JAVA_HOME/jre/lib/javax.comm.properties文件,加一行:

 

serpath2 = /dev/ttyUSB06.2.让 Java 程序设置波特率时不会退出

 

这只是一个 workaround,就是在 $TOSROOT/tools/java目录下 grep 所有的 java 文件,找出setSerialPortParams的地方,改成这样的:

 

try {

      serialPort.setSerialPortParams(sf.BAUD_RATE, SerialPort.DATABITS_8,

                                     SerialPort.STOPBITS_1,

                                     SerialPort.PARITY_NONE);

} catch (Exception e) {}

serialPort.setSerialPortParams (sf.BAUD_RATE,

                                SerialPort.DATABITS_8,

                                SerialPort.STOPBITS_1,

                                SerialPort.PARITY_NONE);   

    就是让它执行两次,第一次一定会出错:

 

Exception in thread \"AWT-EventQueue-0\" java.io.IOException: Not all params are supported by kernel

        at com.sun.comm.LinuxSerial.nativeSetSerialPortParams(Native Method)

        at com.sun.comm.LinuxSerial.setSerialPortParams(LinuxSerial.java:346)

        at SerialConnection.setConnectionParameters(Unknown Source)

        at SerialConnection.openConnection(Unknown Source)

        at SerialDemo.actionPerformed(Unknown Source)

        at java.awt.Button.processActionEvent(Button.java:388)

        at java.awt.Button.processEvent(Button.java:356)

        at java.awt.Component.dispatchEventImpl(Component.java:3955)

        at java.awt.Component.dispatchEvent(Component.java:3803)

        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

但是这一定不是内核的问题,因为C程序对串口的设置波特率操作是可以的。在这里也有人碰到相同的问题。我在这里用的是第二种办法。

 

卓越网上书城 zigbee 及计算机 相关图书
ZigBee技术及应用
市场价: ¥62
卓越价: ¥48.6
VIP价: ¥48.6
从卓越亚马逊购买

 

ZigBee技术基础及案例分析
市场价: ¥42
卓越价: ¥32.5
VIP价: ¥32.5
从卓越亚马逊购买

 

ZigBee无线网络技术入门与实战
市场价: ¥25
卓越价: ¥19.6
VIP价: ¥19.1
从卓越亚马逊购买

 

PIC单片机与ZigBee无线网络实战
市场价: ¥39
卓越价: ¥33.1
VIP价: ¥32.1
从卓越亚马逊购买

 

Eclipse宝典
市场价: ¥59
卓越价: ¥45
VIP价: ¥45
从卓越亚马逊购买

 

无线传感器网络
市场价: ¥42
卓越价: ¥32.6
VIP价: ¥32.6
从卓越亚马逊购买

 

Java网络编程精解

市场价: ¥55
卓越价: ¥41.2
VIP价: ¥41.2

从卓越亚马逊购买

 

无线传感器及元器件:网络、设计与应用
市场价: ¥29
卓越价: ¥24.7
VIP价: ¥
从卓越亚马逊购买

C++ Builder数据库开发经典案例解析(附光盘)/经典案例解析

市场价: ¥48
卓越价: ¥35.9
VIP价: ¥35.9

从卓越亚马逊购买

 

C#2005 &.NET 3.0高级编程(第5版)上下卷(第一本面向.NET 3.0的C#经典名著!)
市场价: ¥158
卓越价: ¥118.3
VIP价: ¥114.8
从卓越亚马逊购买

 

无线传感器网络技术与应用
市场价: ¥28
卓越价: ¥22.4
VIP价: ¥22.4
从卓越亚马逊购买

 

PHOTOSHOP CS/CS2 WOW!BOOK
市场价: ¥138
卓越价: ¥104.1
VIP价: ¥104.8
从卓越亚马逊购买

 

 

====================================================
====================================================

订阅免费电子杂志〈名人传记〉

每期发送电子图书,广读博览融汇贯通。阅读电子书时,请注意保护视力。╭○═○╮╭◎═◎╮╭●═●╮同步发行《名人传记简装版》简装版只包含附件联接地址,大小控制在80k以内。同时发送《热点》期刊

 

1 邮件订阅方式
向下面的邮件地址发一封信,邮件正文(不是标题)填写subscribe zhuanji
邮件地址  bentium@list.bentium.net

1.主页订阅

主页地址一 

http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji

主页地址二   http://yjxsuccess.blog.hexun.com/

马二进三名人传记搏客 yjx2003.cublog.cn
向潜规则低头 图书 计算机基础应用 思路 杂文 linux c++ builder VB.NET tinyOS and eclipse

发表于: 2008-02-19,修改于: 2008-02-19 15:18,已浏览565次,有评论0条 推荐 投诉


网友评论
 发表评论