跳转到主要内容

如何知道单片机程序占了多少字节?

<strong><font color="#004a85">对于单片机程序占了多少字节?单片机还剩多少存储空间?</font> </strong>

想必你看到这篇文章时对这两个问题也很迷糊吧,接下来我就把自己所了解到的关于单片机程序占用空间大小的问题做一个整理,方便自己也方便他人。

<strong>1、STM32类单片机在程序编译后会出现下面图片中所示内容</strong>

<center><img src="http://mcu.eetrend.com/files/2021-05/wen_zhang_/100113186-207575-1.png&…; alt=“” ></center>

上图中分别有Code、RO-data、RW-data、ZI-data,

Code:表示所要执行的代码,程序中所有的函数都位于此处。

RO-data:表示只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data:表示已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data:表示未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

通过上面的描述就可以看出:

<ul>
<li> <p>下载到单片机FLASH的程序是:Code+RO-data+RW-data(上图中数据为字节数,kb=byte/1024);</p></li>
<li> <p>运行在RAM中的数据是:</p>
<p>RW-data+ZI-data;</p>
</li>
</ul>

<strong>2、51类单片机编译后会有如下画面</strong>

<center><img src="http://mcu.eetrend.com/files/2021-05/wen_zhang_/100113186-207576-2.png&…; alt=“”></center>

上图分别有data、xdata、const、code。

data:片内RAM区消耗。

xdata:片内扩展区RAM区消耗。

code:表示所要执行的代码,程序中所有的函数都位于此处。

下载到单片机FLASH中的程序大小为:code+const

下载到单片机RAM的大小为:data+xdata

本文来源:博客园-Brianzhangzhang,转载请注明出处!
原文链接:https://www.cnblogs.com/brianblog/p/7117896.html