WSN中的盲调启示录

本文介绍了作者在调试Wireless Sensor Network (WSN)节点时遇到的问题及解决方案。由于单片机在Debugwire模式下易发生不可逆故障,作者采取了盲调方式。通过将关键数据发送到另一个连接PC的WSN节点进行查看,有效解决了无法跟踪变量值的问题。

近来在实验室里负责一块 Wireless sensor network node 的代码调试,因为所采用的Atmel产的ATmega168单片机在Debugwire方式下在线仿真调试常常出现芯片锁死的Bug(从此这块单片机不能再启动,连熔丝位也读不出来,之前已经被我锁死了4块了,导师那个心痛啊~),所以导师交代要用盲调(只能用仿真器连接电路板、烧写HEX文件到Flesh的办法来调试)。

不过这样下来,Debug成了非常人肉的任务,因为代码运行到中途时候的变量数值再也无法通过PC来跟踪查看,都不知道程序跑到哪儿去了。。。所以,无比郁闷的我只能在我认为代码可能会跑偏的地方加点SET_RLED之类的功能,来判断程序实际的走向。

尽管如此,有些地方还是需要看中间变量,譬如一处Timer设置出的系统时钟用来延时的代码段,延时的时间总和实际的时间间隔有偏差,无奈的我也无法知晓系统当时的时刻是多少,所以也无法精确更正。

今天和导师讨论其这个问题了,他的一席话给我极大的启示:既然做的就是WSN的一个node上的代码,而且Send和receive的基本功能也已经能跑了,干嘛不在需要看数据的地方Send一个包到另一个通过串口与PC相连的WSN node上呢,然后不是通过串口调试工具查看变量的数值了吗?

哎,我真是脑袋被猪踢了,这个方法真不错,赶紧来试试~~

对了,试之前得上Blog记录下,这个方法以后也忘不了~~   

My first articles in the blog!!  

<========================}-0

转载于:https://www.cnblogs.com/DeadKnight/archive/2009/03/20/1417806.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值