首页/文章/ 详情

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

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

同样在嵌入式开发中,当用户使用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
最近编辑:21天前
仿真秀32093466624
硕士 签名征集中
获赞 75粉丝 63文章 150课程 0
点赞
收藏

作者推荐

未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈