一、代码大小

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

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐