Benchmark库的建立02:除0 bug

本文介绍了一个嵌入式程序中的除0错误bug案例,分析了bug出现的原因及表现,涉及程序状态LED切换异常等问题,并给出了正确的程序行为对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bug类型

  1. Bug类型

正确版本程序

  1. apps/benchmark/BlinkToDivide

程序描述

  1. 计算一个常量与数组中每个数的比率值;
  2. 每计算一个比率值切换LED1的状态;除0时切换LED1的状态;计算结束后切换LED3的状态。

Avrora运行程序

  1. alias avrora=’java -jar avrora-beta-1.7.113.jar -colors=false -banner=false’;
  2. make mica2;
  3. mv build/mica2/main.exe btd.elf;
  4. avrora -platform=mica2 -monitors=leds-seconds=10 -simulation=sensor-network btd.elf 。

运行结果分析(正确版本)

  1. 能正确计算常量与每个测试数组中的比率值;
  2. 每计算一个比率值切换LED1的状态;计算结束后切换LED3的状态;LED1的状态不会发生切换。

bug版本程序

  1. /apps/benchmark/bm_BlinkToDivide

bug的显现条件

  1. testArray数组中有0元素

Bug症状

这里写图片描述

  1. 当计算数组0元素的比率值时LED1的状态发生切换。
  2. 运行net.tinyos.tools.PrintClient程序会显示除0错误提示信息:Error:Divide by Zero.”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值