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) 若有某一代码很短的函数被多个函数经常调用,最好将其定义为宏,因为若函数代码很短时,由于被调函数和调用函数不在同一代码页所产生的附加代码可能都会超过函数代码本身的长度。

  • 相关阅读:
    【架构】如何设计支持多租户的数据库?
    maven的仓库:本地和远程
    maven私服
    MSA(微服务简介)
    json数据的格式
    shiro的原理理解
    异构的概念?大数据量的异构处理?
    面试之多线程通信
    面试之并发的解决方案
    进程与线程的简单理解
  • 原文地址:https://www.cnblogs.com/aipeli/p/390865.html
Copyright © 2011-2022 走看看