打印

个人总结单片机硬跟踪调试方法

[复制链接]
3679|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arthur0561|  楼主 | 2009-2-17 09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我们在嵌入式的软件调试不能像PC机上那样方便,过程的控制很难去跟踪,比如调试USB枚举,你很难看到先进行的哪一步,这里总结几条嵌入式调试的方法。

1.       串口跟踪调试。这种方法可以应用于不支持在线调试的主控,如at89S51单片机。因为串口的实现比较简单,在调试51程序时可以用串口实时输出调试信息。

 

2.       模拟断电调试,这个需要按键和LED灯配合,很多单片机是不支持仿真的,所以设断点的方法比较难实现。不过可以在要设断点的地方加while语句,并且关掉所有中断。然后检测按键,如果按下继续往下走,LED灯负责指示那个地方的断点。

   void BreakPoint(void)

   {

       EA=0;

       LED=RED;

       while(key!=0);

       LED=NULL;

       EA=1;

    }

    void test(void)

   {

      a=1;

      wreakPoint(); 

      a=3;

   }

3.       变量存过程,如果串口不好实现,那可以把所有的过程保存到一组数组中,也可以把程序中的某些要查看的值保持到这组数组中,好比一张记录过程的纸,把过程的记录依次记录下来。比如我在USB调试程序中的一段代码

//高校电子联盟--肖继达

//Master Studio

 

#define Debug 1
 uchar test[50];
 uchar conters=0;

switch (type)

       {

              case STANDARD_TYPE:

                     switch (device_request.bRequest) {

                     case CLEAR_FEATURE:

                     #ifdef Debug

                     test[conters]='1';

                     conters++;

                     #endif

 

                            func_Clear_Feature();           break;

                     case GET_CONFIGURATION:

                     #ifdef Debug

                     test[conters]='2';

                     conters++;

                     #endif

}

相关帖子

沙发
machunshui| | 2009-2-17 10:21 | 只看该作者

一招解决

一招解决:

坚决不用不带调试功能的mcu.

使用特权

评论回复
板凳
arthur0561|  楼主 | 2009-2-17 10:23 | 只看该作者

由不得你

哈哈,在开发中很多时候由不得你啊,人在江湖,身不由己啊~

使用特权

评论回复
地板
程序匠人| | 2009-2-17 12:28 | 只看该作者

裤之

使用特权

评论回复
5
arthur0561|  楼主 | 2009-2-17 13:01 | 只看该作者

谢谢加酷

哈哈,谢谢加酷,继续努力!

使用特权

评论回复
6
冷漠| | 2009-2-17 13:37 | 只看该作者

泼冷水,看看教授怎么做的。

还是那句话:当今任何人能够想到的任何问题,都是前人早就想过了并且做过了的。

20年前,好像是周慈航还是陈章龙写了一本书《单片机抗干扰技术》,其中讲述了调试/实际运行中的程序跟踪方法。后来的《电子技术应用》也有过各种技巧应用。基本思想是怎样设置token,如何保存记录当前状态等等(看来是国外学来的)。其中的思想方法,我们根本想象不到。

使用特权

评论回复
7
arthur0561|  楼主 | 2009-2-17 14:08 | 只看该作者

回复泼冷水

哈哈,这个我不否认,个人总结,干嘛要确认是否重复呢?呵呵,把自己的一点心得拿出来分享一下就是了,生活不必计较那么多,做好自己就好了,

使用特权

评论回复
8
gavin_he| | 2009-2-18 09:38 | 只看该作者

支持!

使用特权

评论回复
9
dragon20100708| | 2011-9-24 14:09 | 只看该作者
mark

使用特权

评论回复
10
dailei251337957| | 2011-12-9 15:43 | 只看该作者
顶起~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

84

帖子

9

粉丝