首页/文章/ 详情

代码适当“瘦身”优化带来的美好体验

5月前浏览2806

大家好,我是电源漫谈,在想必今年的贺岁档电影,由贾玲导演的“热辣滚烫”很多朋友都看过,在其中讲述的是主人公励志瘦身后开启的热辣滚烫的人生故事。

同样在嵌入式开发中,当用户使用XC16编译器时,往往会由于Flash空间大小或者其它问题需要使用代码优化功能,本文将对这方面问题做一个简单介绍。在一些特殊的场景下,如涉及到多方合作开发时,固定空间的代码占用Flash空间受限时,通过编译器的优化处理“瘦身”是一种方便的方式。

MPLAB XC16 C 编译器许可证类型有FREE、EVAL 和 PRO。初始编译器开始下载为评估 (EVAL) 版本, 允许在60 天的时间内, 将编译器用作为专业 (PRO) 许可证,它具有最 优化的功能。当然,免费许可证的优化最少。PRO 许可证可以随时购买,在编译器优化选项里可以设置不同的优化,从无优化到完全优化,具体取决于您的编译器 版本。  

这里值得一提的是,当调试代码时,您可能不希望优化代码以确保预期的程序流程。

图1 FREE和PRO版本优化等级  

FREE等级和PRO等级的编译器的优化能力等级如上述图1,二者相差较多。  

图2 三种编译器版本的可使用优化等级及限制  

在上述图2表格中,可以看到PRO版本的编译器具有所有等级的优化功能,如O0,O1,O2,O3,mpa等,但是PREE版本的优化功能也不止选择默认的O0,对于O1,O2优化选项也可以选择,EVAL版本的编译器在60天内可以按照PRO版本来用。  

每个许可证都支持与特定功能相同的优化。当前支持的优化功能列表是显示如下,如图3所示,这些功能可能会发生变化。  

图3 FREE和PRO版本编译器的优化内容说明  

图4 默认编译器优化选项  

上述图4中,默认编译器优化选项为0,这时候编译器一般是没有优化的。  

图5 不同优化等级的选项  

可以在上述编译器特性选项中设置不同的优化等级,说明如下。  

- 0 - Do notoptimize. The compiler’s goal is to reduce the cost of compilation and to makedebugging produce the expected results.  


- 1 - Optimize. Optimizing compilation takes somewhat longer, and a lot morehost memory for a large function. The compiler tries to reduce code size andexecution time.
 


- 2 - Optimize even more. The compiler performs nearly all supportedoptimizations that do not involve a space-speed trade-off.
 


- s - Optimize yet more favoring size (superset of O2).
 


- 3 - Optimize yet more favoring speed (superset of O2)


来源:电源漫谈
电源半导体电力电子UG新能源芯片UM理论科普控制Origin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-11
最近编辑:5月前
仿真秀32093466624
硕士 签名征集中
获赞 89粉丝 74文章 163课程 0
点赞
收藏
作者推荐

开发环境|嵌入式芯片开发环境中的编程选项

大家好,我是电源漫谈,MPLAB XIDE中的编程选项使用了很多次,关于这个按钮的各个功能是不是很清楚呢,想必一些朋友并没有注意,这里我们简要说明易下这个按钮里面的各个主要选项的含义。图1 MPLAB XIDE的编程按钮说明 编程按钮的内部分为几个选项。其中,上表中的下载箭头选项中分为几项,第一个选项为Make andProgram Device,表示这个工程将被编译产生hex,并且器件被编程,程序在完成编程后就会立即执行。 Program Device for Debugging,这个选项表示器件将用debug结果文件image编程,同样的,程序将在完成编程后立即执行。 Program Device for Production,这个选项表示器件将被以生产image编程,同样的,程序将在完成编程后立即执行。 除了对器件编程的选项之外,还可以进行器件中的image进行读取,也在上表中的绿色向上箭头显示,其中,Read Device Memory表示将器件中的memory传输到MPLAB XIDE的环境中,这个功能往往对于分析一些异常问题有重要作用。 而Read Device Memory to File,表示将目标器件中的内容传输到指定文件中,方便使用。来源:电源漫谈

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈