目 录
1 概述 1
2 ULP Advisor简介与优化流程 2
2.1. ULP Advisor简介 2
2.2. ULP Advisor设置 2
2.3. ULP Advisor的运行与优化 2
3 Optimizer Assistant简介与优化流程 4
3.1. Optimizer Assistant简介 4
3.2. Optimizer Assistant优化编译流程 4
1 概述本文简要介绍了使用CCSv6.0的低功耗优化建议ULP Advisor、编译优化助手Optimizer Assistant对msp430的项目进行设计优化和优化编译。
硬件平台:TI-Launchpad FR5969
软件平台:CCS V6.0.1
2 ULP Advisor简介与优化流程本章介绍采用ULP Advisor对msp430芯片的设计进行低功耗优化。
2.1. ULP Advisor简介CCS集成的ULP Advisor内建了许多低功耗规则,在编译期间扫描这个项目的代码,查找是否具有满足规则的低功耗运行,并给出相应的建议。
2.2. ULP Advisor设置设置ULP在右键的Property里面,选择如下图,勾上所有的选项:
图 2-1 ULP Advisor的首选项设置
2.3. ULP Advisor的运行与优化编译项目,则可以在console面板看到优化信息,同时打开Advice面板,可以看到更多的优化建议,如下图:
图 2-2 ULP advisor输出的优化建议
其中建议在console面板和advice面板中输出。可以看到其中提示没有使用低功耗模式(规则ULP 1.1),以及PortB没有初始化(规则ULP 4.1),给出了两条重要的建议。
根据建议,增加如下代码:
- ......
- PBDIR = 0xFFFF;
- .....
- __bis_SR_register(LPM3_bits | GIE); // Enter LPM3, wait for ~1sec timer
- ......
优化后再次编译,则这两项建议没有输出了,证明已经达到了优化目的。
3 Optimizer Assistant简介与优化流程本章介绍采用ULP Advisor对msp430芯片的设计进行编译优化。
3.1. Optimizer Assistant简介Optimizer Assistant则是采用批量化编译,对比编译后的二进制文件大小,从而确定编译器的优化选项(-Ox)和 速度与代码大小折中优化选项(-opt-for-speed, -mf)。
建立好msp430项目并完成代码编写、调试之后,最后一步可以采用Optimizer Assistant,对项目的编译优化选项进行优化设置。
3.2. Optimizer Assistant优化编译流程打开菜单栏的Window->Show View->Optimizer Assistant,然后点击Start Analysis:
图 3-1 ULP advisor输出的优化建议
选择Speed vs. Size,点击Start,则可以看到编译器在一趟趟地编译,并最后列举出编译后的代码大小,可供开发人员参考。
图 3-2 Optimizer Assitant在不同Optimization Level下编译的代码大小
图 3-3 Optimizer Assitant在不同Size vs Speed Setting下编译的代码大小
鼠标移动到最优化的编译输出后,可以点击Applay this settings......即可应用该优化选项,最终优化选项在项目的Property里面设置如下:
图 3-4 Optimizer Assitant最终优化得出的编译选项
至此,Optimizer Assistant完成了项目的编译优化,需要注意的是,code size越小,可能导致代码执行效率降低,最终如何确定编译优化选项,需要开发者进行选择折中。