专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
目录
相关文章推荐
产业互联网大视野  ·  重磅议程!2025年中国产业互联网出海大会第 ... ·  8 小时前  
红杉汇  ·  YUE 06期开启报名!准备好一起加速了吗? ·  21 小时前  
高分子科学前沿  ·  浙理工尹鑫、熊杰/上大吴振跃/港理工夏书会、 ... ·  昨天  
独角兽智库  ·  阿里云数据中心核心概念股梳理(附股) ·  3 天前  
高分子科学前沿  ·  江苏省自然科学基金新规:同等条件下,优先支持 ... ·  2 天前  
51好读  ›  专栏  ›  嵌入式微处理器

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

嵌入式微处理器  · 公众号  ·  · 2024-04-15 05:39

正文

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


同样在嵌入式开发中,当用户使用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 not optimize. The compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results.


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


- 2 - Optimize even more. The compiler performs nearly all supported optimizations 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)


END

来源:电源漫谈






请到「今天看啥」查看全文