单片机程序调试宝典

单片机程序调试宝典

ID:30377688

大小:847.97 KB

页数:22页

时间:2018-12-29

单片机程序调试宝典_第1页
单片机程序调试宝典_第2页
单片机程序调试宝典_第3页
单片机程序调试宝典_第4页
单片机程序调试宝典_第5页
资源描述:

《单片机程序调试宝典》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、单片机程序调试黑宝书2012-1-25全文完,如果您因故无法阅一、前言:读完整内容,请给我发送电子邮件,我会将完整的版本发送给您!欢迎广大网友批评讨论!1.1你离高手有多远?E-mail:soundman@sohu.com首先我必须放下架子,因为本文的读者中很大一部分在不久的将来都会超越我。而且我也100%不能自诩为高手,我不过是比本文的部分读者碰的钉子多些罢了。再退一步讲,即使你请了一位“高手”帮忙,如果他不是对你的具体系统十分了解,也只能给你一些原则上的建议罢了。☞结论:没有绝对的高手,高手是积累出来的,程序调试靠自己。1.2谁应该读这篇文

2、章?我们经常在论坛看到类似这些主题的帖子“I2C程序怎么调为什么我的程序不对?”,然后贴一堆代码上来;“为什么我这样写对,那样写不对”。如果你提过类似问题,或者不知道程序该怎么Debug,就请读本文了。如果你刚开始学习单片机,可能觉得本文不着边际,那么请先死记这些结论,待到3年后再从头读一遍,一定会和我发生共鸣。1.3这篇文章针对哪种单片机或者哪种语言?这篇文章不涉及任何具体单片机型号和任何具体语言,你可以把他理解为凌驾在具体嵌入式技术之上的技术,就像哲学那样。1.4这篇文章有版权吗?有的!但是我不准备出版,也不准备收费。因为我国99.99%的

3、高校毕业生(甚至读完研究生)都不曾看到这样专业化的程序调试教程,如果按大家为高等教育付出的几万元代价计算,这篇文章我起码会卖到10万/人,太天价了!这篇文章的目的是总结、提高,并在21IC(bbs.21ic.com)上提供免费下载,你转载的时候只要保证本文的完整性,并注明出处就可以了。作为免费的等价条件,我也不承担读者因为本文造成的任何损失,请保持独立思考的习惯,并不要轻易使用本文中的代码,这些代码有的是伪语句,这些代码只是为了配合文字说明问题用。1.5这篇文章所列举的事例和BUG真实吗?孙子云:兵不厌诈。这些例子不一定是我所在公司所遇到的,也

4、有我经过组装修饰的,也得给我点隐私权嘛,鉴于本文的非商业化目的,我不对文中任何所提及的产品和技术负责。二、该如何写程序:我们不怕得罪“Coder”,但是需要首先建立一个观点——程序是电子技术里面最最简单的东西,因为程序的确定性比起硬件大得多。处理器的行为是认为设计的数字逻辑行为,不存在硬件上得容差问题。话说硬件设计需要很多数据库型的知识支撑,高频还需要黑色艺术细胞,学写程序除了背点语句,掌握一些基本技巧外加做好规划之外,不需要其他东西,会说话就会写程序!☞结论:程序的确定性比硬件大,不要害怕程序问题。2.1什么是程序?“程序就是为了让处理器做某

5、件事情而编写的有序汇编代码集合”。这里要注意两件事情,一是“做某件事情”,说明程序是为需求服务的,只有把需求搞清楚了,程序才能写得出来;二是“汇编代码集合”,所有计算机只认识一种语言——机器码,也就是汇编所对应的机器语言,其他再华丽的高层语言(例如C)最终都会成为汇编指令供机器执行,只是这个过程被编译器(例如C编译器)自动执行罢了。从这个角度来说,无论你掌握了多少种语言,例如C、C++、汇编,也无论你可以在计算机二级C语言考试得多高分,都不等于你会写程序。☞结论:写程序,最重要的不是学会某种语言,而是会分析问题并提出解决问题的方法。2.2顺序程

6、序如果当一个程序编写好后,所有语句被执行的先后顺序已经确定下来,这就是一个顺序程序。这种程序通常有如下特征:1)不使用中断系统(当然也就包括了不使用操作系统)打开冰箱门2)不与操作者发生交互,或者在交互时,死等操作者指令顺序程序可以用流程图非常明确地描述出来,例如非常经典的“如何把大象放进冰箱”问题,可以用右边的流程图【1】表达把大象放进去虽然把大象放进冰箱只是一个笑话,但是说明了这个过程是由3个动作组成的,并且这3个动作之间的顺序是不可颠倒的。任何初学关上冰箱门者,只要能够理解“如何把大象放进冰箱”的奥妙,就能开始写程序图【1】了!作为一个特

7、例,在程序中有等待用户操作环节的,只要在等待时不进行其他操作,同样也是顺序程序。2.3含有中断的程序如果一个程序使用了中断,无论这个中断是用硬件中断(例如外中断INT,串口接收中断等)直接操作,还是通过定时器切换的操作系统,都统称为含有中断的程序。这种程序的特点是:1)含有多个并行运行的代码(例如主循环和中断服务程序)2)这些并行代码间运行的先后顺序错综复杂我们继续用“如何把大象放进冰箱”问题,来描述。金黄色部分流程线描述了在放大象的过打开冰箱门程中接电话的“中断”。一旦程序加入了中断的环节,就会变得复杂起来,因为接电话这个事情可能发生在任何时

8、候——打电话的人不接电话可能知道你在放大象嘛。另外,加入了中断环节的程序可能出现把大象放进去很多意想不到的事情,比如接电话期间,大象可能跑掉,或者冰箱

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

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

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