安装了MDK3.23版本之后,在keilarmoardsembeststm32v100开发板例程中,使用Blinky的例程,该例程含有LCD显示,ADC,USART,GPIO,NVIC等功能,在C/C++选项中使用三级优化-o3选项后编译结果:Code=7764,RO-data=468,RW-data =24,ZI-data=1392.如果您再稍作调整,即在其他配置不变的情况下在C/C++中选择one ELF Section per Function的话,编译结果为Code=5260,RO-data=468,RW-data =24,ZI-data=1392 .Code节约了约32.25%。 分析原因:STM32芯片的编程大多采用ST公司提供的库文件。这些库文件中大量而全面的定义了芯片的结构以及初始化,但是有些库文件中的结构体或者函数根本在主程序中没有调用到,白白的占用了大量的代码空间,使用该选项后,则将这些冗余的配置全部删除了,因此节约了CODE空间。 冗余去无踪,代码更出众!!! |