历史上的今天

今天是: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)

推荐阅读

全球照明与科技领导者欧司朗发布了新款Oslon Boost HX LED。作为数字微镜装置(DMD)系统的一部分,Oslon Boost HX LED可以将高清质量的符号投影到路面,帮助驾驶员获得更多实时道路及安全信息,以实现汽车照明功能性和行车安全性的双重提升。 正如常规投影仪能在屏幕上投射图片一样,DMD系统可以通过数百万微镜面将光投影到路面并呈现出不同的符号...
中国储能网讯:10月1日,国家电网有限公司华东分部开展四级调度协同的新能源消纳泛在资源互动响应试验,通过源网荷储多元协调的泛在调度控制建设,汇集源网荷储各类泛在资源,并利用泛在可调资源参与电网互动响应,提高电网调节能力,促进新能源柔性消纳。 国网华东分部选择国庆期间华东地区新能源消纳形势最为严峻的安徽电网为试验对象,通过调控云平...
开关电源的质量直接影响到产品的技术性能以及其安全性和可靠性。电源测试项目多,计算量大,统计繁琐等问题一直困扰着工程师们,为了解决这些问题,今天就带您走进开关电源测试的新世界。 示波器电源测试分析主要实现使用示波器来对电源(开关电源)进行相关测试,提高电源开发人员的工作效率,方便对电源模块进行测试。主要涉及开关...
阿尔卑斯阿尔派参展“CEATEC 2021 ONLINE”  阿尔卑斯阿尔派株式会社(TOKYO 6770、社长:栗山 年弘,总部:东京,下称“阿尔卑斯阿尔派”)将参展10月19日(周二)起在线举行的“CEATEC 2021 ONLINE”展会。届时将介绍面向广泛市场的最新举措,包括搭载实现无人驾驶所必须的C-V2X功能的5G通信模块等面向新一代汽车的新提案、凭借为疫情防控作贡献而...

史海拾趣

问答坊 | AI 解惑

DCS集散控制系统产品开发之我见

DCS集散控制系统产品开发之我见     摘要:     随着电站汽轮机、燃汽轮机市场的逐步复苏,新发电机组招标和老机改造正在紧锣密鼓的蓄势待发。而基于我们轻车熟路的DEH控制系统却逐步将被DCS系统所 取代。我们的生存面临着严峻的挑战。我们 ...…

查看全部问答∨

发现

 最近维修一台三菱A540-55K变频器,是一位维修新手维修不好才拿到我们这里来,这台机本来是坏了一个模块,换好模块后,这位新手想测量驱动是否正常,把模块触发线拨掉,结果一通电就跳闸,检查后发现又烧掉一个模块!他想很久都弄不明白为什么会这 ...…

查看全部问答∨

单片机资料宝典

整理的论坛资料,讲的比较全,希望大家喜欢…

查看全部问答∨

如何实现BINFS与FATFS共存?

EBOOT支持BINFS格式化FLASH, 由于板子的FLASH容量较大,我想分成两个文件系统BINFS,FATFS. 请问怎样实现FATFS,EBOOT没有该选项。 就读取速度来说,BINFS与FATFS哪个更快?…

查看全部问答∨

可逆计数器的问题

关于FPGA有一个实验:设计一个8位的可逆计数器,利用实验板上的三个按钮开关分别作为“减少计数值”、“增加计数值”和清零计数值的输入。计数器的8位二进制输出用两个七段数码管来显示。 http://www.docin.com/p-3780904.html     ...…

查看全部问答∨

请问使用DeviceIoControl函数能够读写硬盘(包括U盘)的最大扇区数是多少?

我在写一个U盘的时候最大的128个扇区,写硬盘的时候最大为248个,想请问下DeviceIoControl能够读写的最大扇区数是由什么决定的?谢谢了。…

查看全部问答∨

VHDL integer装换为real的问题

我想转换integer类型的信号为real类型 程序如下。 这段程序在maxplus II报错: file standard.vhdl:Unsupported feature error:floating is not supported 在quartus II中报错: Error (10414): VHDL error at yuvtorgb.vhd(22), at object ...…

查看全部问答∨

XILINX EDK: 从串口获取数据

大家好! 最近在学xilinx EDK,在这里请教大家一个问题。 首先,我用的板子是ML506,软件是EDK 11.1。 示例程序中有个“hello world”程序用,print(“。。。”)来向232输出字符串,想问一下 读取该怎么做? 有什么好的microblaze上c代码的资料介 ...…

查看全部问答∨

2812的A/D转换

adc=((float)AdcRegs.RESULT0)*3.0/65520.0+adclo。 A/D转换中,我使用Watchwindow来观察adc和AdcRegs.RESULT0中的值,发现他们两个不满足上面的关系 式,请问是什么原因。…

查看全部问答∨

求推荐FPGA开发板

新人打算学FPGA,求大家推荐开发板,板子加仿真器最好不要超过500元,谢谢大家了…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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