第五讲_嵌入式C语言程序设计技巧分析.pptVIP

第五讲_嵌入式C语言程序设计技巧分析.ppt

  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语言程序设计技巧分析

嵌入式C语言程序设计技巧 变量定义 参数传递 循环条件 以空间换时间 数学方法解决问题 使用位操作 嵌入汇编 一、变量定义 在变量声明的时候,最好把所有相同类型的变量放在一起定义,这样可以优化存储器布局。由下例可以看出: 对于局部变量类型的定义,使用short或char来定义变量并不是总能节省存储空间。有时使用32位int或unsinged int局部变量更有效率一些,如下图所示: 变量定义中,为了精简程序,程序员总是竭力避免使用冗余变量。但有时使用冗余变量可以减少存储器访问的次数这可以提高系统性能。 二、参数传递 为了使单独编译的C语言程序和汇编程序能够互相调用,定义了统一的函数过程调用标准ATPCS。ATPCS定义了寄存器组中的{R0~R3}作为参数传递和结果返回寄存器,如果参数数目超过四个,则使用堆栈进行传递。 内部寄存器的访问速度是远远大于存储器的,所以要尽量使参数传递在寄存器里面进行,即应尽量把函数的参数控制在四个以下。 三、循环条件 计数循环是程序中十分常用的流程控制结构,一般有以下两种形式: for (loop=1;loop=limit;loop++) for (loop=limit;loop!=0;loop--) 这两种循环形式在逻辑上并没有效率差异,但是映射到具体的体系结构中时,就产生了很大的不同,如下图所示。 四、以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,从这个角度出发逆向思维来考虑程序的效率问题,比如若系统的实时性要求很高,内存还有剩余,则我们就有可以用以空间换时间的方法来提高程序执行的效率。 五、数学方法解决问题 数学是计算机之母,计算机的发展是以数学为依据和基础的,所以在编写程序的时候,适当地采用一些数学方法会对程序的执行效率有数量级的提高,如下例所示: 六、使用位操作 一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以减少除法和取模的运算有效地提高程序运行的效率,如下例所示: 七、嵌入汇编 汇编语言是效率最高的计算机语言,但是它地可读性较差,因此在C语言编程中为了获得程序的高效率,我们可以采用变通的方法--嵌入汇编、混合编程。 * 基于ARM的嵌入式软件开发基础 ARM汇编语言的伪操作、宏指令与伪指令 ARM汇编语言程序设计 嵌入式C语言程序设计基础 嵌入式C语言程序设计实例 嵌入式C语言程序设计技巧 C与汇编语言混合编程 基于Embest IDE for ARM 环境的软件开发实例 第五讲 嵌入式C语言程序设计技巧 方法2: int i; i=(100*(1+100))/2 方法1: int i,,j; For (i=1;i=100;i=++){ j+=i; } 方法2: int I,J; I=2573; J=456-(45644); 方法1: int I,J; I=257/8; J=456%32;

文档评论(0)

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

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

1亿VIP精品文档

相关文档