跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
LED灯珠捷比信 · 专业器件主题站

快来看看您的微控制器程序有多大!

我以前一直有一个奇怪的问题。每次编写MCU程序时,使用刻录软件进行刻录时,都可以看到刻录文件的文件大小,即十六进制文件大小:我使用的微控制器芯片是STM32F103C8T6,程序存储器(闪存)只有64K。从上图可以看出,十六进制为128K。我有两个问题。 1.这只是一个非常简单的平衡车程序128K,那么大吗? 2.即使有128K,也可以下载到容量仅为64K的单片机中吗?这可能是一个命题!让我们开始探索之旅,以STM32开发为例。在keil中编译该程序之后,在界面部分:许多朋友估计他们看到了此界面,他们只关心两点:首先,您自己编写的程序是否正确生成了十六进制!其次,您自己编写的程序中是否存在任何错误或警告!在图中的红线部分:有4:代码,RO数据,RW数据,ZI数据。代码:表示要执行的代码,程序中的所有功能均位于此处。 RO-data:代表只读数据。程序中定义的全局常量数据和字符串都位于此处。 RW-data:表示已初始化的读写数据。程序中定义和初始化的全局变量和静态变量位于此处。 ZI-data:表示未初始化的读写数据。程序中定义但尚未初始化的全局变量和静态变量位于此处。可以从描述中得出:1.下载到MCU FLASH的程序为:Code + RO-data + RW-data(上图中的数据为字节数,kb = byte / 1024); hex =(39546 + 5862 + 12428)/1024=56.48 2. RAM中运行的数据为:RW-数据+ ZI-数据;在原始窗口下显示的十六进制大小不是我们下载到微控制器的十六进制大小。至于为什么显示不同,这是另一个非常有趣的问题,有兴趣的朋友可以一起讨论。最后,看来C8T6芯片的资源几乎被我耗尽了,我不得不考虑更换芯片〜本文已授权从公众号“ Bigfish Robot”转载,作者张巧龙-END-推荐阅读[01]微控制器固件模块化体系结构设计的详细说明(要点)[02]实际案例:讨论为什么我在两三年后转移到嵌入式MCU的原因[03]太神奇了! 5分钟后,使用STM32CubeMX将您的单片机变成USB闪存驱动器[04]单片机和爱[05]单片机中各个周期与定时器原理之间的关系