使用C语言编写高效嵌入式软件的教学探讨.docVIP

使用C语言编写高效嵌入式软件的教学探讨.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用C语言编写高效嵌入式软件的教学探讨   文章编号:1672-5913(2008)18-0123-02   摘要:“嵌入式应用技术”课程的一个教学难点是培养学生编写高效嵌入式C语言程序的能力,本文从教学角度讲述了如何让学生理解嵌入式软件时空要求的苛刻性、编写高质量代码所需的基础知识以及C语言代码的常用优化方法。   关键词:嵌入式软件;C语言;代码优化   中图分类号:G642 文献标识码:B      随着嵌入式系统在汽车电子、工业控制、智能家居等领域的广泛使用,大专院校的计算机、电子、通信、自动化控制等理工科专业都开设了“嵌入式应用技术”课程,编写高效的嵌入式C语言程序是嵌入式基础课程学习的一个重要环节,也是一个教学难点。嵌入式系统受其使用的硬件以及运行环境的限制,对程序运行的空间和时间要求非常严格,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。本文结合作者多年实际嵌入式系统开发经验及嵌入式应用技术课程教学体会,探讨如何培养学生编写高效嵌入式软件的能力。      1培养学生编写高效嵌入式软件的意识      嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,其核心是嵌入式微处理器。嵌入式系统是一种性价比很高的应用系统,为了提高性价比,一方面在硬件上要进行合理配置,另一方面需要提高软件的效率,充分发挥硬件的特性,这两个方面是相辅相成的。但是刚刚接触嵌入式系统的学生会缺乏这方面的认识,他们往往习惯于PC机的程序设计,很少考虑程序的优化。嵌入式系统的运算速度、内存容量和PC机相比,差距太大。例如作者在实现一款方位测定系统时,选用Freescale的MC908MR8作为主控芯片,其最高总线速度为8MHZ、内存为256字节、程序存储空间才8K。面对这种有限的硬件资源,要实现高效,一定要区别于常规的PC机编程,要合理使用有限的硬件资源,对每一个内存空间的分配、每一条程序语句以及每一个算法都要进行仔细斟酌。   为了提高学生对于嵌入式软件的认识,作者在“嵌入式应用技术”课程教学中特别设计了一些教学案例。例如,假定16位整型数值X和Y是直角三角形的两边,编程求解Y边所对应角的度数(精确到1度,基于MC908MR8芯片)。当时学生很纳闷,这种问题太简单了,一条C语句就可以实现了:   JiaoDu=atan(Y/X)*180/PI;   的确,通过调用内部函数atan可以实现上述功能,但这种方法在低端嵌入式软件中是一种很糟糕的方法。在MT-IDE For Freescale HC08的集成开发环境中,通过查看list列表文件,这条语句编译后,需要占用8038~8B04,2764字节的程序存储空间。假如将这条语句用在上述的方位测定系统中,一条语句就要占MR8三分之一的存储空间,2764/(8*1024)≈0.33,这是一件很可怕的事情。再仔细查看list文件,内部函数atan在实现时使用浮点运算,通过泰勒展开式来实现的,而通常的8位、16位微处理器没有协处理器,对于浮点运算的处理效率是非常低的。因此,从嵌入式软件的角度来审视这条语句,它是一个不好的选择。假如采用查表的思想,将atan(χ) *180/PI预先计算出来,建一张表,根据χ值的不同,查表就可以很快地计算出角度。通过这种实例,学生体会到了高质量的嵌入式软件需要区别于PC机的程序设计。      2深入理解汇编语言是编写高效嵌入式软件的基础      汇编语言是学习嵌入式系统的基础,使用汇编程序的优点是执行效率高,时序控制精确。在刚开始学习嵌入式系统时,要克服畏惧汇编语言的心理,一定要先使用汇编语言编写一些程序,在这个过程中可以深刻理解单片机的各种概念,特别是指令系统。最近几年微控制器的发展很快,其资源有了极大的丰富,但其运算速度、存储容量和PC机还是有天壤之别,所以在面向低端的嵌入式编程时,对资源的利用还需要精打细算。通过汇编语言编程,可以更深层次了解微控制器资源的分配情况,养成“节约”资源的习惯。同时,掌握了汇编语言,对于以后使用C语言程序时,会恰当地选择C语言语句。另外,C语言对编译器的依赖性较强,不同的编译器编译出来的目标代码差别较大,通过查看编译产生的汇编文件,可以提高C语言编程技巧,优化C语言程序。   在上述的实例中,假如需要分解出角度值(JiaoDu)的百位、十位及个位,通常的编程方法如下:   BaiWei= JiaoDu /100;   ShiWei =(JiaoDu %100)/10;   GeWei= JiaoDu %10;   这种方法是可行的,但通过阅读编译后的list文件,就会发现它的不足。   在执行除

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档