一步步教你搭建TinyOS2.1.2开发环境

时间:2021-06-15 03:19:45


(本教程使用的是 VirtualBOX +ubuntu14.04+tinyos2.1.2

note:看了很多的tinyos的安装教程,差别不是很大,无非就是安装编译器配置环境等。虽然简单,但还是有很多问题在里面。建议大家使用虚拟机安装,因为虚拟机运行在主机上,完全独立,虚拟机里面的所有操作不会影响主机,即使虚拟崩溃了。windows相对对ubuntu来说,windows的硬件驱动由于是商业化的所以做的比较完善,各种优化策略也比较好。虚拟机推荐大家使用VirtualBOX
VirtualBOX 短小精悍,功能比较强大,安装文件比较小,只有几十MB,系统资源占用比较少。当然你也可以使用vmware。
安装虚拟机和ubuntu相信大家已经很熟悉了,如果还没有安装请看这个教程:
好,下面我们正式开始搭建tinyos的开发环境

步骤1:

如果你以前没有安装过tinyos可以跳过这个步骤,如果你以前安装的是老的版本的tinyos(像2.1.1版本)那么你必须卸载掉有关tinyos的文件以及GCC-430的编译器以及工具等。 卸载流程如下:打开终端(ctrl+alt+t)输入以下命令:卸载tinyos老的版本:

sudo apt-get remove tinyos-2.1.1

卸载gcc-msp430编译器:

sudo apt-get autoremove --purge msp430*

通过这两步就把你以前老版本的tinyos卸载掉了

步骤2:
在ubuntu的package list file添加源。这个命令使用的是gedit编辑器,当然你也可以使用vim等

sudo gedit /etc/apt/sources.list

下面把以下代码添加到sources.list里面,保存,退出

# TinyOS Repository
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main

现在执行以下命令更新安装新版本的tinyos

 sudo apt-get update

 sudo apt-get install tinyos-2.1.2

现在tinyos的基础工作已经做好,接下来就是完成配置以及安装相应的编译器即可。

步骤3

改变tinyos文件夹的所有权,才能完成后面的配置:

命令如下:

 sudo chown your_user_name:your_user_name -R /opt/tinyos-2.1.2/

sudo chown your_user_name -R /opt/tinyos-2.1.2

进入到tinyos-2.1.2目录下检查是否有tinyos.sh文件,如果没有新建这个文件并添加以下代码

#! /usr/bin/env bash
# www.ElectronicsPub.com
# TinyOS 2.1.2 Configuration Guide
# Here we setup the environment
# variables needed by the tinyos 
# make system

echo "Setting up for TinyOS 2.1.2"
export TOSROOT=
export TOSDIR=
export MAKERULES=

TOSROOT="/opt/tinyos-2.1.2"
TOSDIR="$TOSROOT/tos"
CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java
MAKERULES="$TOSROOT/support/make/Makerules"

export TOSROOT
export TOSDIR
export CLASSPATH
export MAKERULES

接下来我们配置环境变量,使用以下命令打开bash.bashrc

sudo gedit ~/.bashrc

在最下面添加以下代码:

# Start TinyOS environment pathing
export TOSROOT=/opt/tinyos-2.1.2
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.$CLASSPATH
export MAKERULES=$TOSROOT/support/make/Makerules
export PATH=/opt/msp430/bin:$PATH
source /opt/tinyos-2.1.2/tinyos.sh
# End TinyOS pathing

用以下命令执行更改:

source ~/.bashrc

步骤4

安装java

cd $TOSROOT/support/sdk/java

sudo tos-install-jni

make

make install

如果是第一次安装tinyosMSP430一些工具会通过tinyos的安装自动安装,可以通过以下命令检查:

msp430-gcc --version

如果提示:command not found or msp430 compiler is not installed 请按照步骤5安装msp430-gcc编译器;或者提示已经安装了这个编译器但是版本在4.6.3以下,你也须按照步骤5安装。

如果提示:现在编译器版本已经是4.6.3,那么可以尝试使用tinyos提供的demo进行试验了。

步骤5

卸载老版本的msp430-gcc 使用以下命令

sudo apt-get autoremove --purge msp430*

添加keys

gpg --keyserver keyserver.ubuntu.com --recv-keys 34EC655A 

gpg -a --export 34EC655A | sudo apt-key add -

添加源:方法像按照步骤2那样添加。 在sources.list 里添加以下代码:

# TinyOS MSP430 GCC Compiler Repository
deb http://tinyprod.net/repos/debian squeeze main
deb http://tinyprod.net/repos/debian msp430-46 main</span>

执行以下命令完成安装:

sudo apt-get update

sudo apt-get install msp430-46 nesc tinyos-tools

现在环境就搭建好了。可以使用以下命令检查一下

tos-check-env

该命令能够检查出tinyos环境中绝大多数的配置情况。

下面进行试验,以telosb为例,将telosb节点插入计算机USB口。为虚拟机分配USB设备。

检查端口与端口名称可使用以下命令:

motelist 

回复类似于这样说明已经连接好了

Reference  Device           Description 
---------- ---------------- ---------------------------------------------
A800J7PW   /dev/ttyUSB0     FTDI FT232R USB UART 

Blink 为例,首先要进入到Blink目录下,可以使用以下命令:

/opt/tinyos-2.1.2/apps/Blink

编译:

 make telosb

系统给出回应

  root@asus:/opt/tinyos-2.1.2/apps/Blink# make telosb   
mkdir -p build/telosb 
    compiling BlinkAppC to a telosb binary  
ncc -o build/telosb/main.exe  -Os -fnesc-separator=__ -Wall -Wshadow -Wnesc-all -target=telosb -fnesc cfile=build/telosb/app.c -board= -DDEFINED_TOS_AM_GROUP=0x22 -DIDENT_APPNAME=\"BlinkAppC\"DIDENT_USERNAME=\"root\" -DIDENT_HOSTNAME=\"asus\" -DIDENT_USERHASH=0x902b0604L -DIDENT_TIMESTAMP=0x53ba1c44LDIDENT_UIDHASH=0x89c7fff1L  BlinkAppC.nc -lm
    compiled BlinkAppC to build/telosb/main.exe
            2538 bytes in ROM 
              56 bytes in RAM 
msp430-objcopy --output-target=ihex build/telosb/main.exe build/telosb/main.ihex
    writing TOS image

下载程序,执行以下命令:

make telosb install bsl,/dev/ttyUSB0 

最后提示

cp build/telosb/main.ihex build/telosb/main.ihex.out 
    installing telosb binary using bsl    
tos-bsl --telosb -c /dev/ttyUSB0 -r -e -I -p build/telosb/main.ihex.out 
MSP430 Bootstrap Loader Version: 1.39-goodfet-8  
Mass Erase... 
Transmit default password ...
Invoking BSL...    
Transmit default password ... 
Current bootstrap loader version: 1.61 (Device ID: f16c)
Changing baudrate to 38400 ...
Program ...
2598 bytes programmed. 
Reset device ...    
rm -f build/telosb/main.exe.out build/telosb/main.ihex.out

你会看到三个led交替闪烁!tinyos学习之旅开始啦!

//***************************************

//Email:912293097@qq.com

//***************************************

一步步教你搭建TinyOS2.1.2开发环境