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)