TinyOS05:Avrora的安装及简介

相关概念介绍:
1、GNU:GNU is not unix的缩写,可以简单将GNU理解成类似于Unix的操作系统
2、gcc:GNU编译器套件(GNU Compiler Collection),涉及到的语言有包括C、C++、Objective-C、Fortran、Java、Ada和Go这些语言编译器的实现,GCC的初衷是为GNU操作系统专门编写的一款编译器;
1、 ncc是nesC的编译器,也是对gcc的修改和扩充,

一、 Avrora简介

  1. Avrora基于Java实现的;
  2. 既是一个传感网程序的模拟器 (Atmel传感结点和Mica2传感节点) + 也为传感网程序提供了一个分析框架(java API)
  3. Avrora提供的功能
    1)传感网程序运行的模拟器(Simulator);
    2)Avrora监控设备(monitoring infrastructure)能够在线监测程序行为;
    3)Avrora的分析工具(profiling utilities)能够让用户在仿真的时候研究程序行为;
    4)Avrora的仪表功能(instrumentation capabilities)在不用干扰仿真和修改仿真器源码的情况下详细的观察程序行为;
    5)GDB调试工具(GCB debugger hooks)允许代码级别的调试和集成开发和测试;
    6)控制流图工具能够为你的程序指令创建一个图形化的表示;
    7)能源分析工具;
    8)堆栈检测工具能够绑定你的程序使用的最大栈的大小。

二、Avrora的安装

  1. Avrora是基于Java的,需要配置Java环境变量;
  2. 下载Avrora的jar归档文件
    http://sourceforge.net/projects/avrora/files/?source=navbar
    (我下载的Avrora版本是avrora-beta-1.7.113.jar),avrora-beta-1.7.117.jar版本的Avrora运行起来会有问题),把Avrora归档文件放到Blink目录下,即:C:\cygwin\opt\tinyos-2.x\apps\Blink(放在其他地方也应该可以吧)
    补充:Avrora支持的程序类型
    1、Atmel汇编语法:.asm文件
    2、GNU汇编语法:.s文件
    3、 avr-objdump 格式:.od文件
  3. Avrora的运行
    1、切换目录到Avrora目录:C:\cygwin\opt\tinyos-2.x\apps\Blink
    这里写图片描述
    2、输入命令:java -jar avrora-beta-1.7.113.jar运行Avrora
    这里写图片描述
    (如果是avrora-beta-1.7.117.jar版本 会有这样的错误:找不到主类
    这里写图片描述
  4. 在Avrora模拟器上运行Blink程序
    1、在micaz传感节点上编译Blink程序
    这里写图片描述
    2、通过命令将Blink程序的main.exe文件“重命名 + 移动”到Blink目录下
    输入命令:mv build/micaz/main.exe Blink.elf(意思就是main.exe文件重命名为Blink.elf文件,可能这种格式的文件会被Avrora执行的时候识别吧)
    这里写图片描述
    输入这个命令后,会发现在Blink目录下出现了个Blink.elf文件。
    4、输入命令java -jar avrora-beta-1.7.113.jar -platform=micaz -simulation=sensor-network -seconds=3 -monitors=leds Blink.elf
    这里写图片描述
    这里显示的输出有问题,官网提示禁用colors可得到正常的输出结果 + 调用Avrora时默认都会显示Avrora的banner,也可以禁用掉,加上这两个命令之后的结果为:
    这里写图片描述

参考资料:http://tinyos.stanford.edu/tinyos-wiki/index.php/Avrora
http://compilers.cs.ucla.edu/avrora/start.html(这里alias重命名命令不会用)
http://tinytechblooms.blogspot.com/2012/10/stepsto-install-avrora-step0-get-java.htmlhttp://tinytechblooms.blogspot.com/2012/10/stepsto-install-avrora-step0-get-java.html
(这个要翻墙访问)

Avrora可支持运行的文件类型

Avrora运行的是“汇编源码文件”:
1、Avrora支持的四中运行文件类型
1. .asm :Atmel AVR的汇编源文件格式;
2. .s:GNU的汇编源文件格式(GAS格式:GUN Assembler)
3. .od:反汇编而得的汇编源码(使用avr-objdump将二进制文件反汇编而得)
4. .elf:avr二进制代码(也可以直接运行)

2、生成.od汇编代码的两个步骤

  1. gcc或make(含ncc):从.c或nesC“生成avr的二进制代码(elf或者.exe)”
    1、.c文件—(gcc)—.elf文件:
    这里写图片描述
    2、.nesc文件—(ncc)—.exe文件:
    这里写图片描述
    从这可以看出一个make命令所需的文件包括:xxxAppC.nc + xxxC.nc + Makefile + build
  2. avr-objdump:将.elf文件或.exe文件反汇编成汇编代码程序.od文件
    1、反汇编(disassembler)工具:将avrora二进制文件(.elf或.exe文件)反汇编成汇编源代码.od文件
    2、objdump:由GNU提供,是Avrora使用的外部工具
    接着上面两张图片的例子:
    3、将.elf文件反汇编成.od文件:
    这里写图片描述
    4、将.exe文件反汇编成.od文件:
    这里写图片描述
    注明:zhD中大概意思就是将>前的文件反汇编成>之后的文件吧
    z:zero,包含控制领NOP;
    h:hander section,用于relocation
    D:disassembler each session;
    5、更简单的方法是:直接将make后生成的main.exe重命名为blink.elf然后直接运行blink即可:
    这里写图片描述

自定义monitor的实现

(老师笔记,先放着,等要实现自己的monitor插桩程序的时候再看)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值