Benchmark库的建立04:单个任务的长时间执行Bug

Bug类型

  1. 单个任务的长时间执行Bug(执行这个任务耗时很长而引起的bug)

正确版本程序

  1. apps/benchmark/BlinkRunTask

这里写图片描述

程序描述

  1. 在Blink程序的基础上添加computeTask任务并在
    Timer0.fired()事件中post出去。
  2. 每隔0.25s/0.5s/1s的时间间隔切换LED0/LED1/LED2的状态。

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 brt.elf;
  4. avrora -platform=mica2 -monitors=leds -seconds=10
    -simulation=sensor-network brt.elf

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

  5. LED0,LED1、LED2切换结果正确。

bug版本程序

  1. /apps/benchmark/bm_BlinkRunTask
    这里写图片描述

程序修改的部分

  1. 将computeTask修改成一个计算量大的任务。

bug的显现条件

  1. 当单个computeTask任务的计算量很大时

Bug症状
1. 在指定的模拟时间内,LED灯切换的次数减少且最终不再闪烁变换。

**备注**
  1. 任务的计算量大大影响了定时器的运行,导致LED的切换不正常;
  2. 应该把大计算量的任务分解成多个小任务执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值