程序调试(除错)过程中的一些雕虫小技02740

程序调试(除错)过程中的一些雕虫小技02740

ID:13894053

大小:40.50 KB

页数:16页

时间:2018-07-24

程序调试(除错)过程中的一些雕虫小技02740_第1页
程序调试(除错)过程中的一些雕虫小技02740_第2页
程序调试(除错)过程中的一些雕虫小技02740_第3页
程序调试(除错)过程中的一些雕虫小技02740_第4页
程序调试(除错)过程中的一些雕虫小技02740_第5页
资源描述:

《程序调试(除错)过程中的一些雕虫小技02740》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、程序调试(除错)过程中的一些雕虫小技02740一、前言调试程序,是软件开发过程中的一个必不可少的环节。这篇帖子,匠人试着来整理一下一些调试的技巧。说到“技巧”,这个词自从被所长批臭之后,匠人就吓得不敢再提,生怕一不小心就暴露了思想的浅薄和眼光的局限,呵呵。所以咱们不叫“技巧”,干脆低调点,就叫“雕虫小技”吧。这里所讨论的“调试”技巧,有些是必须结合开发工具本身的功能来实现,而有些可以通过烧录芯片来验证。各种开发工具,提供的功能多少强弱也不尽相同,这些方法也未必都能套用。仅供参考吧。最后说明一下,这是没有草稿的帖子,匠人仍然以不定期连载的方式,边写边发边改。可能结构会比较混

2、乱。欢迎大家一起参与讨论。二、磨刀不误砍柴功在调试之前,需要掌握以下一些基本功:1、熟悉当前的开发(调试)环境,比如:设置断点、单步运行、全速运行、终止运行,查看RAM、查看堆栈、查看IO口状态……总之,要熟练掌握基本操作的方法,并深刻了解其中意义。2、了解芯片本身的资源和特性。3、了解一点汇编语言的知识。(本来匠人是准备写“精通”的,但考虑到现状,还是“放低”这方面的要求罢了)。4、掌握基本的电路知识和排错能力。(软件调试有时也会牵涉到硬件原因。总不能连三极管的好坏都不能识别吧?)5、万用表、示波器、信号发生器……这些工具总该会用吧?6、搜索、鉴别资料的能力。(内事问百

3、度、外事问古狗、有事没事上21ic网)7、与人沟通,描述问题的能力。(调试36计的最后一计——就是向他人讨教。当然,你得把话说明白才行)差不多了,如果上述7把砍柴刀磨好了,就可以开始调试了。接下来,请调入你的程序……——什么?你说你程序还没写?——匠人倒塌……三、优先调试人机界面面对程序中的一大堆模块,无从下手是吗?好吧,匠人告诉你,先调显示模块,然后是键盘。为什么要先调显示模块?道理很简单,我们说“眼睛是心灵的窗户”,同样,“显示是程序的窗户”。一旦把显示模块调试好了,就可以通过这个窗口,偷窥(天呐,这两个居然是敏感字!)程序内部的数据和状态了。然后紧接着,就是调试键盘

4、模块。有了这个按键,我们就可以人工干预程序的运行了。——什么,你的程序没有显示和按键?——这位童鞋,你真不幸,请去检查一下自己的人品和星座运程先。谢谢。实在是没显示?再看看系统有蜂鸣器吗?如果侥幸有的话,也能凑合着发发提示声音吧?或者,有串口吗?可以考虑借助PC端的串口调试软件来收发数据,这也是一个间接的人机交流方法。总而言之,要尽快建立人机交流界面。(未完待续)五、给程序安装个黑匣子某年某月的某一天,一架飞机以优美的抛物线形状,一头栽到海里去了……几天后,人们找到了飞机的黑匣子,里面记录了飞行员的最后一句话:“天呐,我看到火星人了!……”以上空难情节我们经常会通过新闻看

5、到吧(当然,最后一句是匠人版的科幻情节)。看看,飞机的黑匣子可以记录并再现现场,多么神奇!欧耶!我们在调试程序时,也可以借鉴这个方法,给程序按装一个黑匣子。程序中的黑匣子其实就是一个在内存中开辟的队列。队列的原理我们很清楚,先进先出,后进后出(与飞机黑匣子的特性相同)。比如说吧,假设我们的系统在工作中,某个输入量的采样值经常受到不明原因的扰动。我们要摸清这种扰动的规律,以便对症下药。但是这种扰动稍纵即逝。我们的困扰是:程序正常运行时看不出规律,单步走又难以捕捉扰动。怎么办?有没有办法,把扰动记录下来?当然可以。我们可以利用系统里剩余的RAM,开辟一块单元,做成队列。并写段

6、测试程序,定时把新采样值压入队列。然后我们让程序运行,在需要的(任意)时刻,让程序停下来。这时,队列里记录的就是最新一批采样数据。只要队列的深度足够大,我们就可以找出扰动的规律来。——什么,你问我什么叫队列?——匠人曰“天呐,我看到火星人了!……”(未完待续……)也谈程序“鲁棒性”magicchip发表于2008-2-11:24:000推荐N年前,匠人曾经在“侃单片机”论坛里发起过一次关于软件抗干扰的讨论。其实,当时的讨论基本上已经达到了软件所能做的一切范畴。但是随后,讨论的方向逐渐转向了“软件抗干扰是否有实际意义”上去了。虽然匠人坚持认为软件在抗干扰方面可以有所作为。但

7、是,来自反面的意见,也让匠人深思了许久。世纪轮回。这次,由emailli网友发起的“建议做为2008年1月的专题----软件抗干扰的方法研究”,又把当年的讨论场景再现。别具意味的是,对软件抗干扰本身的置疑也被再次提出。从某种意义上来说,随着单片机硬件抗干扰性能的越来越完善。软件在此方面的用武之地,似乎确实在萎缩。试问又有几个单片机程序中应用到了软件陷阱呢?比例恐怕很小吧。然而,匠人最近有事没事,经常喜欢在同事面前卖弄这个词——“鲁棒性”。鲁棒性robust[rEJ5bQst]adj.强壮的;健壮的Hisrobuststreng

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。