历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-10-12 来源:eefocus

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

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中也是变量.

推荐阅读

史海拾趣

聚辰(Giantec)公司的发展小趣事

面对电子行业的快速变革和市场需求的不断变化,港源公司始终保持敏锐的市场洞察力和持续的创新精神。公司不断加大研发投入,推动产业升级和产品结构优化。通过技术创新和高效智造系统构建,港源公司实现了产品自动化制造的高覆盖率,并在精密小型化的塑胶五金零部件领域取得了突破性技术优势。这些努力不仅使港源公司在市场竞争中保持领先地位,还为公司未来的发展奠定了坚实的基础。

Bytesonic Corporation公司的发展小趣事

为了进一步加强对大陆市场的投资和管控,Bytesonic Corporation在1998年5月在英属维尔京群岛成立了控股公司——剑桥电子有限公司。这一举措不仅提升了公司的资本运作能力,也为其在全球范围内的业务拓展提供了更多的便利。

ETA-USA公司的发展小趣事

ETA-USA一直注重技术创新和研发实力的提升。公司拥有一支高素质的研发团队和先进的研发设施,不断推出具有竞争力的新产品和解决方案。同时,ETA-USA还积极与高校、科研机构等合作,共同推动电子技术的创新和发展。

Armel Electronics Inc公司的发展小趣事

在电子行业中,技术更新迅速,创新是企业持续发展的动力。Armel Electronics Inc公司始终将研发创新作为公司的核心竞争力。公司不断投入资金,引进先进设备和技术,加强研发团队的建设。通过不断创新,Armel成功推出了一系列具有行业领先水平的新产品,为公司的持续发展提供了有力保障。

Elcoma公司的发展小趣事

Elcoma公司在其早期发展阶段,就致力于电子技术的研发和创新。他们成功研发出一种新型高效能的电子芯片,这一突破性的技术大大提高了电子设备的性能和效率。这一创新技术迅速在行业内引起了广泛关注,许多大型电子设备制造商纷纷与Elcoma合作,希望将这一技术应用到他们的产品中。Elcoma凭借这一技术突破,逐渐在电子行业中崭露头角。

Dearborn Electronics Inc公司的发展小趣事

Dearborn Electronics Inc.于1952年在芝加哥注册成立,由一群电子工程师和企业家共同创立。他们看到了当时电子行业对高性能电容器和滤波器的迫切需求,于是决定专注于这一领域。公司初期主要生产薄膜电容器和EMI/RFI滤波器,凭借卓越的产品质量和稳定的性能,逐渐在电子行业中建立了良好的声誉。

问答坊 | AI 解惑

Microsoft Postscript Printer Driver有吗?

我在做一个转PDF的小程序,需要用到虚拟打印机,我现在用到的是HPLJ8550的驱动,但是怕涉及到版权,所以需要一个开源的Postscript Printer 的驱动,发来我找了半天发现别人说windows ddk里面自带了一个Microsoft Postscript Printer Driver,但是我 ...…

查看全部问答>

内核加载

本人现有北京微芯力的一个实验箱,CPU是inter Xscale PXA 255,板子原带的是windows CE 系统,现在我想装载linux 内核,但是配套的资料中没有相关的介绍,在这里想请教一下高手们,装载linux 前还用不用重新下载bootloader?(没有配套的JTAG线),怎 ...…

查看全部问答>

我很无语...c#到底是什么一门语言?!help me!

现在串口丢失数据问题解决了, 但是又迎来了一个新问题。 就是一旦运行某些c#程序,我的串口立即乱码。 经过多次实践证实,这个c#根本和串口一点关系都没有。根本没有打开操作串口的部分。 怎么会这样, ? ———————————————— ...…

查看全部问答>

沈老师说,要学会看风景

和华师大的沈老师吃饭,他谈到人的心态问题。很多人很累,是因为一开始设定的目标太高,永远盯着山顶,盯着那个遥远的目标,人会很累、很疲惫。相反,爬了一段山后,找一个山坳休息休息,向下看看,发现山下还有那么多人,会觉得很幸福。所以可以设 ...…

查看全部问答>

STM32关于LCD例程的一些疑惑

* Description        : This file includes the LCD driver for AM-240320L8TNQW00H*           ...…

查看全部问答>

大炮加干冰,STM32F103超频大赛

最近试了一下,把STM32F103的主频调到100M,工作还正常,不知长时间工作如何,如果把电压提高到3.6V是不是会好点。因为S3C2440的CPU内核电压不同时主频的频率也会不同,包括我们PC机上的CPU也是如此,那么STM32是否可以呢,常时间工作是否稳定 ...…

查看全部问答>

默认MCLK到底是多少?

默认设置下,没有外接晶振,MCLK=SMCLK=DCO=~800K 而当XIN,XOUT之间接32768晶振,MCLK=SMCLK=DCO=32*32867=1M 是这样的么? 谢谢!!!…

查看全部问答>

[lm3s8962]PWM控制模块

看到说明书上说PWM信号在最终从管脚里输出前还得经过控制模块, 控制模块的介绍是这样的♦ PWM输出使能;♦ 输出极性控制;♦ 同步;♦ 故障处理;♦ 中断状态那个输出极性控制是用哪个函数的啊?在驱动库函数里没找到诶?如 ...…

查看全部问答>

TI MCU 研讨会 2012年3月20日(星期二)广州

  为了让您更好的了解MCU设计的解决方案、工具、技巧和实例,安富利科汇在广州承办为期一天的 TI MCU技术研讨会。德州仪器公司的多位MCU专家亲临现场做技术分享,您将获得应用中技术难题的宝贵建议。届时,我们将在现场展示最新的T ...…

查看全部问答>

M128的ADC

Table 97. ADC 参考电压选择 REFS1 REFS0 参考电压选择 0 0 AREF, 内部Vref 关闭 0 1 AVCC, AREF 引脚外加滤波电容 1 0 保留 1 1 2.56V 的片内基准电压源, AREF 引脚外加滤波电容 这四个有什么区别,百度上都是这么写,当是都没有详细的介 ...…

查看全部问答>