TinyOS学习笔记1-TinyOS安装 1、Ubuntu系统的安装
安装TinyOS可以在Windows中利用Cygwin进行安装,经过测试在XP中可以正确安装,但是安装的步骤过于麻烦,可以参考官方网站的安装步骤。在Win7中安装后有问题,不能正确编译。因此最好使用Linux系统来安装TinyOS,安装过程简单。 安装Ubuntu系统
1.Ubuntu的官方网站下载iso镜像,我安装的是10.04版本 2.可以有两种方式进行Ubuntu安装。
(1)传统方式安装:在系统中划分出空闲分区,利用U盘制作启动盘,官网有,可下载。重启系统选择U盘启动。进行安装。
(2)wubi方式进行安装:以文件形式进行安装,下载wubi,将镜像与wubi放于同一文件夹。点击wubi进行安装。 3.更新Ubuntu
更行Ubuntu时需要注意,更新时grub不更新。利用wubi安装,我选择了更新grub,重新启动系统出现错误。解决方法如下:
1.另一台电脑,到Ubuntu网站下载镜像,安装到U盘中,制作启动盘。
2.开机,选择从U盘启动,在Boot里设置不好使,像我的ASUS A8,开机按ESC,选择U盘启动。
3.看到Ubuntu的欢迎界面,选择第一项,进入U盘中的Ubuntu系统。 4.在终端中,输入 sudo apt-get install lilo sudo lilo -M /dev/SDa mbr
5.重启系统,问题解决 4.使用root登录系统
2、在Ubuntu系统下安装TinyOS
我安装的时TinyOS2.1.1,安装过程参考TinOS官网的安装指导,但有问题,具体步骤如下: 1)在系统的“/etc/apt/sources.list”中,添加如下代码: deb http://tinyos.stanford.edu/tinyo ... lt;distribution> main
以上的源可能有问题,在安装是提示tinyos-2.1.1依赖的包找不到或无法安装,更新源如下解决此问题:
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main deb http://hinrg.cs.jhu.edu/tinyos oneiric main
2)更新知识库,打开终端,输入 sudo apt-get update 3)安装TinyOS
sudo apt-get install tinyos
提示可选的tinyos的版本,选择最新的版本2.1.1 sudo apt-get install tinyos-2.1.1 4)设置环境变量
在~/.bashrc或者~/.profile中加入如下代码
#Sourcing the tinyos environment variable setup script
source /opt/tinyos-2.1.1/tinyos.sh
可用如下方法打开~/.bashrc或者~/.profile gedit ~/.bashrc
添加成功后需要重新启动终端 5)测试是否安装成功
cd /opt/tinyos-2.1.1/apps/Blink/
(若当前文件夹没有权限创建文件,将Blink复制到当前用户的目录进行运行) make telosb
显示如下则安装成功: mkdir -p build/telosb
compiling BlinkAppC to a telosb binary
ncc -obuild/telosb/main.exe -Os-O -mdisable-hwmul -fnesc-separator=__ -Wall -Wshadow -Wnesc-all-target=telosb -fnesc-cfile=build/telosb/app.c -board=-DDEFINED_TOS_AM_GROUP=0x22
-DIDENT_APPNAME=/\-DIDENT_HOSTNAME=/\
-DIDENT_TIMESTAMP=0x4c566efbL-DIDENT_UIDHASH=0xd972ea96L BlinkAppC.nc -lm
compiled BlinkAppC to build/telosb/main.exe
2648 bytes in ROM
54 bytes in RAM
MSP430-objcopy --output-target=ihexbuild/telosb/main.exe build/telosb/main.ihex
writing TOS image
TinyOS学习笔记2-TinyOS的IDE-Yeti2
3.测试TinyOS中的Toosim
? make micaz sim
? 提示找不到python2.5
? 查看本机python的版本,我的版本为2.6 ? 进入/opt/tinyos-2.1.1/support/make/sim.extra ? 修改python的版本PYTHON_VERSION=2.6 ? 重新make micazsim
? 提示*** Successfullybuilt micaz TOSSIM library.则可运行tossim。 4.安装Eclipse以及TinyOS的IDE-Yeti2 1)下载,解压Eclipse
Eclipse,在桌面创建启动器,连接Eclipse. 2)参考http://tos-ide.ethz.ch/wiki/index.php
Help->Install New Software
3)点击Add,Name:Yeti2,location:http://tos-ide.ethz.ch/update/site.xml 4) next等待更新
5)选择如下,进行安装
6)安装Graphical Editing Framework 若出现如下错误:
Cannot complete the install because one or more required items could not be found.
Software being installed: Yeti 2 - TinyOS Debugger (optional) 1.2.18 (tinyos.yeti.debugger.feature.group 1.2.18)
Missing requirement: Yeti 2 - TinyOS Debugger (optional) 1.2.18 (tinyos.yeti.debugger.feature.group 1.2'org.eclipse.cdt.debug.core 0.0.0' but it could not be found
在安装Eclipse时解压错误,导致一些文件没有正确安装,卸载Eclipse重新安装,注意是先解压后再拷贝到相应tar出错的),再次安装问题解决。 7)安装完毕,设置环境变量
Window->Preferences->TinyOS->Environments
检查各个目录,点击Apply,OK,设置完毕。 8)检查TinyOS的安装
TinyOS->CheckInstallation(需要新建一个TinyOS项目才会出来此选项,在上部Window旁) 我的返回:Done Errors:0 Warnings:1 警告的部分:
Test:Environment variables
Description: Compare the environment variables known toEclipse with the variables known to the shell Environment variables differ, this can lead to failureswhen compiling or debugging an application.
CLASSPATH: Eclipse = ''
Shell =':/opt/tinyos-2.1.1/support/SDk/java'
LESSCLOSE: Eclipse = ''
Shell ='/usr/bin/lesSPIpe %s %s'
LESSOPEN: Eclipse = ''
Shell ='| /usr/bin/lesspipe %s'
LS_COLORS: Eclipse = '' Shell =''
MAKERULES: Eclipse = ''
Shell ='/opt/tinyos-2.1.1/support/make/Makerules'
TOSDIR: Eclipse = ''
Shell ='/opt/tinyos-2.1.1/tos'
TOSROOT: Eclipse = ''
Shell ='/opt/tinyos-2.1.1' Status: warning
Message: Not all environment variables are thesame 警告未解决!!!
TinyOS学习笔记3-Blink分析
5.TinyOS2.1.1应用程序举例:Blink 1.导入TinyOS例子
File->New->Example->选择TinyOS Example,配置如下: Projete Name:MyBlink
Environment: TinyOS Unix Wrapper 2 Example: Blink Targer: telosb
2.参考Blink例子,建立自己的TestBlink进行分析,我们的程序只让一个灯闪烁。 File->New->Project->TinyOSProject Project Name:TestBlink Target:telosb
3.src->New->Module->Nameof new Module:BlinkC
Moduule的含义:模块实现应用程序的代码,实现一个或多个接口。 在模块中添加接口,供configuration来调用。 本程序的源代码如下:
#include \导比入头文件
module BlinkC @safe(){ //@safe的含义:?????
uses interface Timer as Timer0; //Timer接口,必须实现 uses interface Leds;//Led灯的接口 uses interface Boot;//启动接口 }
//接口的实现 implementation{ //自动生成
event void Timer0.fired(){
// TODO Auto-generated method stub //输出信息,在tossim中显示
dbg(\
//使led灯改变
call Leds.led0Toggle(); }
event void Boot.booted(){
// TODO Auto-generated method stub //时间周期为250毫秒
call Timer0.startPeriodic(250); } }
3.src->New->configuration->Nameof new Configuration:BlinkAppC
Configuration的含义:配置是将组件装配起来的组件,将各个组件使用的接口与其他组件提供的接口连接在一起。
components的含义:各个组件连接形成nesC的程序,组件是由各个模块组成的。
TinyOS学习笔记4-task操作分析
task操作分析 1.task操作的含义
正如基本的c语言一样,所有的代码是同步的,cup的资源是没有充分利用的。进一步而言,如果一段代码运行会影响其他代码的运行。任务的含义就是使任务中的代码在后台运行,也就是说过一会儿运行,类似于中断操作例如:
task void computeTask() { uint32_t i;
for (i = 0; i < 400001; i++){} }
event void Timer0.fired() { call Leds.led0Toggle(); post computeTask(); }
task为任务的代码部分,而task利用post来调用。本段代码的含义就是在灯亮过之后进行一个400,001次的作用就是在进行循环时不影响Timer.fired()的结束。 实验如下:
event void Timer0.fired() {
uint32_t i;
for (i = 0; i < 400001; i++) { call Leds.led0Toggle(); } }
此段代码的含义:循环400,001次,灯进行反转400,001次,由于是奇数,最后的结果是红灯。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新教育文库TinyOS学习笔记1 全文阅读和word下载服务。
相关推荐: