【Keil5】Keil查看程序占用flash大小

文章目录

  • 一、问题
  • 二、解决方法
  • 参考资料


一、问题

我们在挑选一款单片机的时候,会查询单片机的主频、内部flash和RAM、封装、各种外设接口资源。其中flash和RAM大小尤为重要。
以STM32H750VBT6为例,其内部flash只有128KB,RAM却有1056KB。
【Keil5】Keil查看程序占用flash大小_第1张图片
该选型手册可在该链接中免积分下载:STM32系列产品选型手册

该型号的flash容量比F103ZET6的512KB要小4倍,编程的时候会一直担心flash容量不够,因此需要实时监控程序所需的flash大小。

二、解决方法

keil5编译后会显示程序大小:
【Keil5】Keil查看程序占用flash大小_第2张图片
其中,
Code:表示程序所占用 FLASH 的大小( FLASH)。
RO-data:即 Read Only-data, 表示程序定义的常量,如 const 类型( FLASH)。
RW-data:即 Read Write-data, 表示已被初始化的全局变量( FLASH,RAM)
ZI-data:即 Zero Init-data, 表示未被初始化的全局变量(RAM)

在程序初始化的时候,RW-data会从FLASH中拷贝到RAM中,因此在计算flash和ram占用空间时,都得加上RW-data。

计算公式:
flash = Code + RO-data + RW-data
ram = RW-data + ZI-data

以上图为例
flash=27256+964+1116=29336bytes=28.6kb<128kb
ram=1116+17244=18360bytes=17.9kb<1056kb

余量还很充足


参考资料

1、https://blog.csdn.net/qq_42043397/article/details/124264797
2、https://blog.csdn.net/yanlaifan/article/details/107647577

你可能感兴趣的:(单片机,stm32,嵌入式硬件)