在一些对成本敏感且控制功能简单的应用领域,小Flash空间的芯片比较受欢迎,以前这部分都是8位机的地盘,而现在随着ARM产品越来越丰富,低端产品的覆盖率也在增加,其也开始慢慢觊觎这部分市场了。飞思卡尔Kinetis系列中KL02和KE04就是其中比较有代表性的两款产品系列,这两个系列里有部分型号拥有最小8k Flash空间管脚数最少14或者16个SSOP封装,哎,ARM做到这份儿上不容易啊,呵呵。。。 对一些小存储空间的MCU来说,每一个字节的空间都是宝贵的(粒粒皆辛苦啊),所以我们在使用小Flash空间开发时除了要对代码进行功能优化之外还要注意减少不必要的空间损耗,比如一些冗余的常数变量,用不到的API函数或者隐藏起来的一些自带函数库。今天我想说的就是在用Codewarrior10.x开发KL02或者KE04时如何去掉一个占空间的大户,即Debug I/O库(实际上就是一些printf和scanf之类的打印函数实现),这个Debug I/O我们在新建一个工程时是默认勾选的,如下图所示:
这个库我们大多数情况下是用不到的,但是在最后编译时其却包含在其中,所以我们在对KL02 8kflash型号的芯片随便编写几个底层驱动后再编译就会发现8k代码空间已经没剩下多少了
|