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