一、代码大小

1、类别

code:

        包含两部分,即代码和数据
        1)code,即程序代码部分,- inline data. For example, literal pools(文字常量池), and short strings(短字符串)等. 这个一般被忽略,请大家注意!!!
        2) 代码段,存放程序的代码部分。

RO-data:

        只读的数据,Shows how many bytes are occupied by read-only data. This is in addition to the inline data included in the Code (inc. data) column. 除inline data 之外的所有只读数据。只读数据段,存放程序中定义的常量

RW-data:

        可读写的数据,Shows how many bytes are occupied by read-write data.。读写数据段,存放初始化为非0值的全局变量。

ZI-data: 

        zero initialized data,零初始化的可读写变量,Shows how many bytes are occupied by zero-initialized data。0数据段,存放未初始化的全局变量及初始化为0的变量。

2、ROM/RAM的大小计算

与处理器相关的ROM和RAM文件大小定义如下:

ROM= Code + RO_data + RW_data (即烧/下载程序到FLASH/ROM时,所占用的最小空间);

RAM=RW Data + ZI Data (即程序运行的时,RAM使用的空间)。

上述图片框选的ROM的大小=9088+2340+136=11564Byte。

上述图片框选的RAM的大小=136+480=616Byte。

二、代码优化

1、通过编译器优化

1)缩减版的库

2)提高代码优化等级

 参考链接:keil-STM32中如何查看代码大小,和KEIL51稍微不同_stm32代码大小_qq_25814297-npl的博客-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐