您的位置:首页 > 其它

TinyOS05:Avrora的安装及简介

2015-11-09 11:30 483 查看
相关概念介绍:

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简介

Avrora基于Java实现的;

既是一个传感网程序的模拟器 (Atmel传感结点和Mica2传感节点) + 也为传感网程序提供了一个分析框架(java API)

Avrora提供的功能

1)传感网程序运行的模拟器(Simulator);

2)Avrora监控设备(monitoring infrastructure)能够在线监测程序行为;

3)Avrora的分析工具(profiling utilities)能够让用户在仿真的时候研究程序行为;

4)Avrora的仪表功能(instrumentation capabilities)在不用干扰仿真和修改仿真器源码的情况下详细的观察程序行为;

5)GDB调试工具(GCB debugger hooks)允许代码级别的调试和集成开发和测试;

6)控制流图工具能够为你的程序指令创建一个图形化的表示;

7)能源分析工具;

8)堆栈检测工具能够绑定你的程序使用的最大栈的大小。

二、Avrora的安装

Avrora是基于Java的,需要配置Java环境变量;

下载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文件

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版本 会有这样的错误:找不到主类



在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汇编代码的两个步骤

gcc或make(含ncc):从.c或nesC“生成avr的二进制代码(elf或者.exe)”

1、.c文件—(gcc)—.elf文件:



2、.nesc文件—(ncc)—.exe文件:



从这可以看出一个make命令所需的文件包括:xxxAppC.nc + xxxC.nc + Makefile + build

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插桩程序的时候再看)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: