- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式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;
您可能关注的文档
最近下载
- 第8课 中国古代的法治与教化 课件(共27张PPT)(内嵌音频+视频).pptx VIP
- 第四章:as-ad模型习题&答案.doc VIP
- 牙周病治疗翻瓣术.ppt VIP
- 《OSI参考模型体系》课件.ppt VIP
- 2025年牙周病治疗翻瓣术.pptx VIP
- GB50303-2015 建筑电气工程施工质量验收规范.docx VIP
- 2025年陕西省高考生物试卷真题(含答案解析).docx
- 线路板厂安全生产应急预案.docx
- 第一章 1.中融-隆晟1号结构化集合资金信托计划优先A12信托计划说明书.pdf VIP
- 2025-2030中国六氟磷酸锂(LiPF6)市场发展现状及竞争格局研究研究报告.docx
文档评论(0)