嵌入式培训
美国上市嵌入式培训机构

400-111-8989

热门课程

嵌入式培训班高手分享C语言调试经验

  • 时间:2018-05-10 16:16
  • 发布:嵌入式培训
  • 来源:嵌入式ARM

<a style='color:blue' href='http://arm.tedu.cn/'>嵌入式培训</a>班高手分享C语言调试经验

最近听有的人说:写程序简单,一调试就头疼,这到底是怎么回事呢?这不请来了嵌入式培训高手给大家分享C语言调试经验,希望可以带给大家一些思考。

在开始之前先回答大家一个问题:为什么是嵌入式培训高手分享C语言调试经验?嵌入式与C语言又有着怎样的渊源呢?

众所周知,C语言在嵌入式开发中占有十分重要的地位,它们的关系非比寻常。那么为什么嵌入式开发会选择C语言,而不是其他语言呢?

嵌入式开发是在操作系统内部做开发的,操作系统所有的内核几乎都是C语言编写,如果我们也使用C语言做开发,必定会具备一定的优势。

再者,C语言相较其他的高级编程语言,其所有的特点对于嵌入式开发软件是再合适不过的了。

C语言的特点如下:

C语言具有出色的可移植性,能在多种不同体系结构的软/硬件平台上运行。

C语言具有简洁紧凑、使用灵活的语法机制,并能直接访问硬件。

C语言具有很高的运行效率。

嵌入式软件一般需着重考虑三个方面:性能、安全性和开发效率(包括代码可移植性等)。

性能(运行效率)方面,汇编明显是最高的。但汇编在安全性和开发效率方面明显是最低的。所以除非是要求极端高性能的嵌入式平台(或者是系统实在是太简单而没办法支持高级语言),使用汇编语言的不多。我们一般进行初始化时会使用汇编语言。

而其它高级语言的运行效率一般比较低(C程序运行效率可达汇编的80%,而其它程序可能只有C程序的80%),源代码和目标代码也可能会比较长。这样占用的内存也会比较大。嵌入式开发的编程是要在开发板上跑的,占用内存的增多必然会影响性能。这样一来,C语言的优势就会凸现出来啦。

接下来,我们再来看正文吧:

很多同学在写C语言时,感觉最难的不是程序怎么写,而是程序写完了怎么调试。程序写出来了,自己检查着没有错误,但一运行却出现一大堆错误,好不容易、好不容易改的没错误了,一运行却不出正确结果,然后又小心恋恋的改动一处,忽然又冒出一大堆错误来,再后来呢,稀里哗啦一阵乱响之后,便“飘然而去”。

产生这种情况的原因是基本知识掌握不牢,基本语法掌握不靠,练习做的太少,调试功夫不到家所致。掌握了正确的调试技巧,多多练习,这种情况应该能比较快的解决。

程序的调试非常重要,不只是C语言,对于所有语言来说都是如此,掌握好的调试方法,可以事半功倍。下面说一下程序已经没有编译错误,能够运行,但又得不出正确结果的情况下的程序的常用常见调试方法:

1、追踪方式执行(Trace):一步一步执行,遇到函数调用,追踪到调用函数,一步一步执行。

2、单步方式执行(step):一步一步执行,遇到函数调用,调用语句作为一步执行。

3、下断点(breakpoint):设置断点,当程序执行到断点时,程序暂停执行。

4、执行到光标所在处(go to cursor):相当于一个断点。

5、监视(watches):随时监视某些变量或对象值的变化情况。

常用常见的就是这五种方法。以上方法适用于程序已经没有编译错误,能够运行,但又得不出正确结果的情况。在程序的调试过程中,监视某些变量或对象值的变化情况是很重要的一部分,前四种执行方式与值的监视配合使用,能准确定位错误所在,可以具体到是哪一行出现错误。

如果怎么调都有编译错误怎么办呢?这是练习做的太少,基础不是太好的缘故。这需要再下点功夫,再多做点练习。程序写多了,当出现一种错误时,就知道大体是什么原因造成的了。网上和教材上有专门论述出错信息及错误处理的文章,个人觉得这类文章大部分不太适合初学者看。

出错信息都是英文,不是太明白怎么办?可以用金山快译翻译一下,尽量避免下次再犯错。

恭喜你阅读完了本文,相信对你做C语言调试有一定的帮助,你还有其他有助于C语言调试的方法吗?或者你还有嵌入式相关的问题吗?欢迎你来达内嵌入式培训机构进行咨询。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

上一篇:嵌入式培训班每日一练:嵌入式基础复习题三道
下一篇:透彻了解各种系统调用助你成为嵌入式Linux下编程高手

用嵌入式算法创业的苦与乐,这里给有想法的你一些思考!

做嵌入式ARM面试题,给你更多的思考!

如果在高考中出现这三道嵌入式ARM基础题,你会做吗?

高考周,嵌入式ARM基础题继续练!

选择城市和中心
贵州省

广西省

海南省