历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2019年10月12日 | stm32后生成编译文件大小探索之二

发布者:忠正 来源: eefocus关键字:stm32  编译文件  初始化 手机看文章 扫描二维码
随时随地手机看文章

之前总结过编译文件大小的一些研究:

https://blog.csdn.net/ZenNaiHeQiao/article/details/83343504

总结起来是这样的:

(1)

在这里插入图片描述

单片机:生产的编译信息中,包含了

code : 代码信息

RO-data: 只读信息–》程序中的指令 和常量

RW-data: 被初始化的变量

ZI-data: 无需初始化的变量


我做了这么一个实验,

①增加一个很大的数组,不初始化或者初始化为0; 它会被分配到ZI-data信息中。

②增加一个很大的数组,切对其进行初始化, 它会被分配到RW-data信息中


烧录文件的大小=code + RO-data + RW-data

增加ZI-data的大小,bin文件未必增大很多。 应该是,对于不需要初始化赋值的变量,ZI-data信息包含了是一些 起始地址 ,数据大小 等等这一些信息。


芯片需要的RAM大小=RW-data+ZI-data

bin文件我们称之为 ARM映像文件(image文件):Image文件包含了RO和RW数据。之所以Image文件不包含ZI数据,是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。包含进去反而浪费存储空间。


ARM程序的执行过程:

1. 将RW从ROM中搬到RAM中,因为RW是变量。

2. 将ZI所在的RAM区域全部清零,因为ZI区域并不在Image中,所以需要程序根据编译器给出的ZI地址及大小来将相应得RAM区域清零。ZI中也是变量.

关键字:stm32  编译文件  初始化 引用地址:stm32后生成编译文件大小探索之二

上一篇:【stm32f103】USART RX实现(寄存器版)
下一篇:STM32-自学笔记(11.通过串口与PC通信,发Hello)

推荐阅读

今天,机器人“网红”公司波士顿动力又有了新动态,他们发布了一段以腿足式机器人“Altas”为主角的演示视频。视频中,面对一层比一层高的高台,Altas以跳跃式的姿态很稳定的、以层层递进的方式跳上了高台。关于Altas的这段表演,波士顿动力在视频中描述道:“控制软件(control software)利用包括腿、胳膊和躯干在内的整个身体,在不中断步伐的情况下,...
本部分主要介绍1602液晶显示,显示内容为“Hello,Welcome to my site,my friends.”。原理图如下: 程序如下:#include#define uchar unsigned char#define uint unsigned intsbit RS=P3^0; //数据/命令选择端(H/L)sbit EN=P3^2; //使能端sbit RW=P3^1; //读/写选择端(H/L),本文章只写,所以该端口供低电平sbit wela=P3^3;//锁存器位选信...
1,FLASH操作程序设计下面我们来学习编程的内容。在学习编程前,我们要先了解一下FLASH存储模块的控制寄存器。FLASH存储模块的所有操作都通过控制相关的控制寄存器来实现的。包括FCTL1、FCTL2、FCTL3三个控制寄存器,其中FCTL1主要包含对FLASH的编程和擦除操作的控制位;FCTL2主要定义进入时序发生器前的时钟源和分频系数;FCTL3保存FLASH存储模块的一些标...
写完特斯拉的4680,我想一起说说国内真正的圆柱电池,做这块的一家是华霆动力给相关厂家的方案,还有一家就是岚图汽车做的琥珀电池。今天我大致做一些盘点。 一、国内铁锂的快速上量 从2020年下半年开始,电动汽车在中国发展已经进入私人购买占大多数的阶段,消费者对于车辆的需求是里程要高,快充速度要快,电池要安全。电池线路之争,磷酸铁锂电池因为寿...

史海拾趣

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved