TinyOS毕业设计
境界之轮回
在研究生研究养成边学习边总结的好习惯,另外把学习的知识分享给大家。
展开
-
TinyOS论文08:Proteum
一个评估C程序测试充分性的工具Abstract该论文提出了Proteum的主要特征,Proteum是一个支持变异测试标准的测试工具;通过配置可以让Proteum测试很多面向过程的编程语言;Proteum的相关环境:SUM工作站 + OPENWIONDOWS环境。Introduce在Proteum中,由测试session来引导程序测试过程。在测试session中测试人员可以创建、中断或者继续原创 2015-12-10 21:27:19 · 1045 阅读 · 2 评论 -
Benchmark库的建立06:变量溢出 Bug
Bug类型变量溢出 Bug正确版本程序apps/benchmark/TestOverflow程序描述传感器每0.1S采集数据并保存到的buffer[2]数组中;传感器采集数据成功,切换LED0的状态,并提交 computeTask任务,采集失败则切换LED1的状态;任务computeTask中计算结果如果大于uint16_t则发生溢出,切换LED2的状态。Avrora运行程序cd原创 2016-02-29 11:01:31 · 460 阅读 · 0 评论 -
Benchmark库的建立05:任务Post失败 Bug
Bug类型 任务Post失败 Bug正确版本程序 apps/benchmark/BlinkPostFail 程序描述 定时器每隔0.25s提交任务TestTask,任务 TestTask的功能是切换LED0的状态;如果任务Post提交成功,切换LED1的状态,否则切换LED2的状态。Avrora运行程序alias avrora=’java -jar avrora-beta原创 2016-02-27 21:47:47 · 582 阅读 · 0 评论 -
Benchmark库的建立04:单个任务的长时间执行Bug
Bug类型单个任务的长时间执行Bug(执行这个任务耗时很长而引起的bug)正确版本程序apps/benchmark/BlinkRunTask程序描述在Blink程序的基础上添加computeTask任务并在 Timer0.fired()事件中post出去。每隔0.25s/0.5s/1s的时间间隔切换LED0/LED1/LED2的状态。Avrora运行程序alias avrora=’原创 2016-02-26 19:16:37 · 630 阅读 · 0 评论 -
Benchmark库的建立03:空指针异常Bug
Bug类型 空指针异常Bug正确版本程序 apps/benchmark/BlinkToRadio 1、运行BlinkToRadio节点结果: 2、PC端运行结果: 程序描述 以计数和发送节点id作为packet的有效负载,通过无线定时将packet发送出去;BaseStation节点将接收到的数据包通过串口转发给PC端,并在PC端打印接收到的数据包;接收其它节点发送过原创 2016-02-25 11:37:59 · 441 阅读 · 0 评论 -
Benchmark库的建立02:除0 bug
Bug类型Bug类型正确版本程序apps/benchmark/BlinkToDivide程序描述计算一个常量与数组中每个数的比率值;每计算一个比率值切换LED1的状态;除0时切换LED1的状态;计算结束后切换LED3的状态。Avrora运行程序alias avrora=’java -jar avrora-beta-1.7.113.jar -colors=false -banner=f原创 2016-02-24 11:20:46 · 491 阅读 · 0 评论 -
Benchmark库的建立01:数组越界bug
正确版本程序tinyos-2.x/apps/Oscilloscope程序描述节点周期性启动传感器采集数据,传感器收集10个数据之后通过无线发送给基站节点;无线开启失败或者采集数据失败时切换LED0的状态;节点成功发送数据时切换LED1的状态;节点接收到消息时切换LED2的状态。Avrora运行程序alias avrora=’java -jar avrora-beta-1.7.113.ja原创 2016-02-22 20:57:48 · 475 阅读 · 0 评论 -
TinyOS论文06:Clairvoyant: A Comprehensive Source-Level Debugger for Wireless Sensor Networks
Clairvoyant:一个功能全面的源码级传感网程序调试器Abstract开发人员可以通过Clairvoyant连接到无线传感器网络,并且执行标准的调试命令,例如break、step、watch、backtrace中这专门为调试WSNs设计的专门的命令。Clairvoyant也视图减少在调试过程中网络负载、内存占用、执行速度、锁的一致性和结点的快速声明周期一、Introduce源码级调试器原创 2015-12-03 17:21:18 · 656 阅读 · 0 评论 -
TinyOS论文10:Bug Hunting in Sensor Network Applications
Abstract论文提出了KleeNet工具,一个独立平台的传感网程序bug检测工具,他能针对所有可能的输入测试应用程序,能够保证程序的内存安全;KeelNet根据真实输入值生成正确的测试集,并且识别特定的错误程序路径;将KeelNet很好地集成到了TinyOS中;IntroduceWSNs应用程序:内存限制 + CPU资源有限 + 低级、非类型安全的语言且没有动态监测和内存保护 + 高度原创 2015-12-15 16:56:16 · 582 阅读 · 0 评论 -
TinyOS论文09:Random Testing of Interrupt-Driven Software
中断驱动软件的随机测试Abstract嵌入中断驱动软件由于大范围的执行路径,很难做到完全测试,论文提出了随机中断测试:在随机次数中出发随机的中断处理器;本地的对中断驱动软件的随机测试应用程序:一些随机生成的中断钓鱼违反了系统语义,造成错误伪报。论文贡献:RID的设计、实现、实验评估。RID:限制中断训练的测试方式来处理嵌入式软件,并且会考虑到非预期的中断。总之:执行随机测试 + 不会产生误报。原创 2015-12-14 17:01:25 · 593 阅读 · 0 评论 -
TinyOS论文05:Efficient Memory Safety for TinyOS
TinyOS的有效内存安全。 Safe TinyOS:在现有的TinyOS之上保证传感网程序的内存安全和类型安全。 Deputy通过注解为传感网程序插入相应的验证代码,类似于Java中的泛型,只是Deputy验证的是变量的范围值。Abstract创建可靠地传感器网络程序很难:并发 + 分布 + 没有保护的硬件内存 + 资源受限 + 低级的编程语言;论文为TinyOS应用程序提供了有效的内存安原创 2015-11-28 21:04:40 · 622 阅读 · 0 评论 -
TinyOS论文07:MILU :
MiLu:一个可定制、运行时优化、高阶的C语言变异测试工具; 1. MiLu:C语言变异测试工具 1、一阶 + 高阶变异测试 2、之前的工具是将所有可能的变异算子应用到测试中;而MiLu可以指定应用到测试中的变异算子; 3、为减少运行时开销,MiLu使用“测试治理(test harness)”技术将变异体和测试集嵌入到测试程序中。 2. background介绍了现有的一些变异测试工具原创 2015-12-10 11:26:14 · 914 阅读 · 0 评论 -
TinyOS论文01:T-Check:Bug Finding for Sensor Networks.
一、摘要T-Check工具:使用随机漫步和明确的状态模型检测来找出运行在TinyOS上的传感网程序的安全和活性错误;所涉及到的模拟器:TOSSIM模拟器(事件驱动):对中断驱动并发和底层硬件交互的抽象;T-Check不能检测某些底层的错误,但能够检测分布是错误,譬如说当一个结点失效时集合树协议未能正确地修复。二、介绍部署一个可靠的传感器网络很难 + 数据收益率低于100%T-Check:原创 2015-11-11 09:45:38 · 959 阅读 · 0 评论 -
TinyOS论文04:Demo: Towards Bug-free Implementation for Wireless Sensor Networks
Abstract在这个例子程序中,提出了一种特定领域的模型检测器——NesC@PAT;NesC@PAT工具将NesC程序作为输入,并且自动验证WSNs中违反的特定属性(例如无死锁、状态可达和线性时序逻辑公式)。NesC@PAT能够找出非正常情况下小概率的传感网bug,普通的模拟和调试是不嫩找出这些bug的。IntroductionTinyOS/NesC程序的并发性和事件驱动的特点导致有些b原创 2015-11-27 23:25:17 · 536 阅读 · 1 评论 -
TinyOS论文03:Bugs or Anomalies? Sequence Mining based Debugging in Wireless Sensor Networks
bugs或者异常?无线传感器网络中基于调试的序列挖掘。Abstract传感网程序由于它的分布式特点、高并发、资源有限,很容易出现bug。论文提出了一种基于序列挖掘技术、灵活的、迭代的WSNs调试技术。实现步骤为: 1、论文首先开发了一种数据结构:矢量化概率后缀树(以一种灵活的、基于向量的简单后缀树方式的建模技术从程序运行流中提取和存储序列化信息)。 2、之后,通过集成vPST和SVM(支持向原创 2015-11-25 11:29:01 · 557 阅读 · 0 评论 -
TinyOS论文11:Sentomist
Sentomist:通过症状挖掘检测传感器网络的瞬态错误Abstract在摘要部分首先介绍了无线传感网络应用程序:事件驱动、看似简单、以复杂的并发模型执行的,很容易产生错误,特别是瞬态错误(瞬态错误:会产生,持续的时间不长)瞬态错误产生的原因:传感网程序中具有隐式依赖关系的事件过程交错执行时很可能产生瞬态错误;而且这种瞬态错误隐藏的很深,现有的测试工具不只很难检测这种瞬态错误,连这种瞬态错误的症原创 2015-12-16 14:53:14 · 505 阅读 · 1 评论 -
TinyOS论文02:Finding Symbolic Bug Patterns in Sensor Networks
Abstract论文提出了一种用于归纳和总结传感网bug的错误诊断算法。多个不同的事件模式由于具有相同的事件属性可能有相同的错误表现,例如:某些系统中,发送方和接收方如果超出2个范围的跳数的话就会出错。特征模式提取技术用于识别和描述传感网的异常行为,用于归纳传感网节点或者信息交换的特征模式一、Introducebug特征模式:传感器网络中那些可能导致bug的实际可观测的消息交互以及结点、角色原创 2015-11-21 17:15:43 · 439 阅读 · 0 评论 -
JaConTeBe benchmark
Abstract意义:研究人员提出了很多方法来检测并发错误和改善多线程程序,但是对这些方法有效性的评估仍是一个问题现有的研究中用于检测这些方法有效性的程序代码或者是Bug都不具有现实意义的代表性。论文的工作:为了提升代表性,论文提出了JaConTebe benchmark,47个并发错误;测试用例来描述buggy行为;验证检测方法的有效性;提交到开源库中Introduce很重视并发bug原创 2016-05-06 17:26:53 · 899 阅读 · 0 评论