NXP

使用CodeWarrior的构建工具选项来优化HC12/HCS12/HCS12X/HCS12XE内核

2019-07-12 13:22发布

class="markdown_views prism-atom-one-light"> 由于在暑假匆忙接收的嵌入式项目中需要使用特别大的数组,非分页RAM的内存不够用了,没办法,硬着头皮尝试使用分页RAM,但是完全没有单片机的基础,导致极其的困难。之前写程序都是按照纯软件的思维,主要考虑架构,不会考虑到每个变量具体存在哪个物理地址这么底层的问题,结果被飞思卡尔这分页地址、prm文件什么的搞得一头雾水,而网上的资料又少,讲的又大同小异的笼统,最后写出来的程序因为这分页地址的原因存在各种问题(还以为把变量放到分页RAM了,结果现在稍微懂了点回去看,发现其实很多根本还是分配在非分页区。晕倒~。但是居然还能相对正常运行也是很神奇)。这些天各种找相关的资料,结果发现在CodeWarrior的官方文档资料里其实把我想知道的都讲的很清楚了(还是官方文档给力,以后学什么东西直接找官方文档,不去到处找网上一堆零零散散的资源来学了)。本着学习的态度,将逐步把官方文档翻译一遍,供大家一起交流学习进步。 翻译的资料是公开的,我想应该不会有什么版权问题,如涉及版权问题,请联系我删除文章,原文档在这里(https://www.nxp.com/pages/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5.2:CW-HCS12X?&tab=Documentation_Tab&linkline=Users-Guides),另感谢NXP提供的学习资料。

使用CodeWarrior的构建工具选项来优化HC12/HCS12/HCS12X/HCS12XE内核的性能

译者注:译者博客(http://blog.csdn.net/lin_strong),转载请保留这条。此为官方文档AN4195,仅供学习交流使用,请勿用于商业用途。 目录
1. 介绍
2. 优化速度
3. 优化代码大小

介绍

这篇文档描述了CodeWarrior工具中的两个能为HC12/HCS12/HCS12X/HCS12XE内核生成更优化的代码的选项集。一个选项集优化了代码的速度;另一个则优化了代码的大小。 你可以使用这篇文档中描述的构建工具选项来优化性能,但是构建工具的设置必须与开发的应用相兼容。 欲了解更多关于S12(X)编译器的信息,请参考Freescale的S12(X) Build Tools Reference Manual

优化速度

为了减少代码的总机器周期,给编译器如下选项: -Ot -Cu -Ous -Onf -Oi -OiLib -OnB=al

优化代码大小

为了更优的代码大小,给编译器如下选项: -Os -Ous -Of 下面的选项接受一个选项集的列表作为输入,并指示编译器使用每一个选项集来运行,并为每个函数保留最佳性能的那个。 -Odocf 比如,-OdocF=”-Or”
注意:
编译时间会以传递给编译器的选项集的个数为倍数而增长。
为了获得代码大小的额外优化建议,请参考S12(X) Build Tools Reference Manual 中的 Generating Compact Code 主题。你还可以使用CodeWarrior HC(S)12(X)编译器的MemoryBanker和SmartSliders功能来优化代码的速度和大小。

使用MemoryBanker

你可以通过在项目向导中选择Custom地址模型来激活MemoryBanker(图1)。你可以使用这个功能来降低应用的内存占用,但是small或banked地址模型会给你更好的结果。 为了获得更多关于S12(X) MemoryBanker的信息,请参考Freescale提供的文档 TN262:在S12(X)项目中使用MemoryBanker。 图 1. 激活MemoryBanker
激活MemoryBanker

使用SmartSliders

为了在创建CodeWarrior项目后使用SmartSliders或称Smart Controls:
  1. 打开 Edit>Standard Settings(或者按Alt + F7)。
  2. 从Standard Settings对话框中,选择Compiler for HC12并点击Smart Sliders按钮。
  3. 调整滑块以获得想要的应用性能。
    .
图 2. Compiler Smart Control
Compiler Smart Control