zoukankan      html  css  js  c++  java
  • Picc 代码优化

    使用PICC时,为了更有效的利用资源,应注意以下几点:
    (1) 尽量使用无符号数和字节变量。
    (2) 在寄存器资源允许的情况下,对某些对执行效率要求较高的平级无相互调用函数中用到的内部变量,可将其定义为全局临时变量,编程时覆盖使用,这样可减少很多编译代码。而对于中断函数内部用到的变量,可用全局变量
    (3) 寄对于有一定汇编经验的人在开始使用PICC时,应多注意观看经编译后产生的汇编源代码,并应经常观看经正确编译连接后产生的映象文件(.MAP文件),在该文件中详细列出了分配给变量和代码的地址和生成代码的大小等信息。使用者可了解代码是否优化,变量分配是否合理,堆栈是否溢出等,从而写出高效简洁的C源代码。
    (4) 对于有一定汇编经验的人在开始使用PICC时,应多注意观看经编译后产生的汇编源代码,并应经常观看经正确编译连接后产生的映象文件(.MAP文件),在该文件中详细列出了分配给变量和代码的地址和生成代码的大小等信息。使用者可了解代码是否优化,变量分配是否合理,堆栈是否溢出等,从而写出高效简洁的C源代码。
    (5) PICC在好多情况下,不支持类型强制转换,即在类型不匹配时须查验编译后的汇编代码,看是否正确,尤其是对指针操作的时候一定要注意。
    (6) 对某位变量自操作时,比如求反,不可以直接简写,例如: !flag;
    编译后不能正确产生代码,而须写成:flag = !flag;
    (7) 尽量选择全局优化编译选项,为保证寄存器页(包括程序存储期页面和RAM寄存器页)的正确转换,PICC的编译代码中有大量的变换寄存器页的代码,选择全局优化PICC会优化去大有关RP0、RP1、PCLAPH所增加的变换代码,从而加快程序执行速度,并节省大量的程序空间。
    (8) 若有某一代码很短的函数被多个函数经常调用,最好将其定义为宏,因为若函数代码很短时,由于被调函数和调用函数不在同一代码页所产生的附加代码可能都会超过函数代码本身的长度。

  • 相关阅读:
    Unity3d-UI插件EZGUI官方视频教程
    安装安卓模拟器和unity3d插件EZGUI
    NGUI的原理机制:深入剖析UIPanel,UIWidget,UIDrawCall底层原理
    分享我的2014年3月unity3d面试题与参考答案
    WP8持续集成之通过命令行跑单元测试
    深入学习HttpClient(一)扩展额外的功能
    Windows Phone实用教程:利用Blend为程序添加设计时数据
    WP架构设计(一)MVVM回顾
    Windows Phone Unit Test 环境搭建
    Caliburn Micro框架快速上手(WP)
  • 原文地址:https://www.cnblogs.com/aipeli/p/390865.html
Copyright © 2011-2022 走看看