STM32的Code、RO-data、RW-data、ZI-data和RAM以及flash的关系

news2025/4/20 9:37:41

对于刚接触stm32编程的同学来说,通常不知道如何选择合适型号的芯片来开发自己的项目,下面就分析一下多大的片内ram以及flash能符合我们项目的需求。

不知道大家有没有注意到,我们的项目每次编译完成后,都会出现这个Program Size,然后后面跟着Code、RO-data、RW-data、ZI-data,其实这里就是编译软件在告诉我们,这个项目需要用到多少ram以及flash才能正常运行。

Program Size中各个参数的含义

1.Code(代码)

Code部分包括程序的被调用的函数代码量,如果只是被定义了,不被调用,那么不会增加到Code里面,Code被保存在我们MCU的flash里面。

(1)定义addcode函数前 code为1256

(2)定义addcode函数后,未调用,code依旧为1256

(3)调用addcode函数以后,Code增加到1272字节,由此可见,只有函数被调用以后,才会被存到flash计算到代码量中

2.RO-data(只读数据)

RO-data(只读数据)表示所有被调用的全局常量数据,RO-data被保存在MCU的flash中,因为它们在程序执行期间不会被修改。

(1)定义了常量数组,被调用前,RO-data=460,RO-data没有增加

(2)定义了常量数组,被调用后,RO-data=464,RO-data增加了4,说明我们定义的全局常量只有被调用后才会加入到RO-data中

注意的是,此结果博主亲测只有在Optimization为Level 0的情况下,自己写的这个常量才被加入到RO-data中,在level 1/2/3的时候都被当做冗余量被优化。

3.RW-data(读写数据)

RW-data(读写数据)代表被调用的已经初始且初始化不为0的全局变量,RW-data会先被存储到flash里面,等待程序运行的时候,再被复制到RAM中,所以RW-data既占用一份flash,也会占用一份RAM

(1)定义变量数组,被调用前,RW-data=12字节。

(2)定义变量数组,被调用后,RW-data=1012字节,说明初始化后不为0的常量数组被调用后会增加到RW-data中。

4.ZI-data(零初始化数据)

ZI-data(零初始化数据)是被调用的初始化为0或者未初始化的全局变量,ZI-data被保存在我们MCU的RAM中。

(1)定义未初始化的数组被调用前,ZI-data=1292,无变化。

(2)定义未初始化的数组被调用后,ZI-data=2292,增加了1000,说明被调用到的未初始化的全局变量是存在ZI-data中的。

Program Size和RAM以及flash的关系

由上面分析得出

RAM=RW-data+ZI-data

flash=Code+RO-data+RW-data

我们在挑选单片机芯片的时候,RAM和flash要根据实际项目大于上面算出的容量,才能确保我们的项目能够正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1917574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

查看尝试登服务器ssh 访问ip地址

不指定时间查看尝试登录服务器的SSH访问IP地址 # CentOS/RHEL系统 zgrep "sshd" /var/log/secure-* | grep "Failed password" | awk {print $(NF-3)} | sort | uniq -c | sort -nr | head -n 10检查过去7天的日志尝试登录服务器的SSH访问IP地址 # CentOS…

浅谈谷歌浏览器axure扩展程序

Axure RP Extension for Chrome 是一款专门为Axure设计的谷歌浏览器扩展程序,它的主要作用是帮助用户在谷歌浏览器中无缝预览和测试由Axure RP创建的交互式原型。当您在Axure RP中构建原型并将其导出为HTML格式时,此扩展程序允许您直接在浏览器中打开这些…

自主升级,平稳过渡!麒麟信安保障长沙市智慧交通发展中心CentOS迁移无忧

长沙市智慧交通发展中心围绕综合交通运输协调体系的构建,实施交通运行的监测、预测和预警,面向公众提供交通信息服务,开展多种运输方式的调度协调,提供交通行政管理和应急处置的信息保障。 该中心目前数据日交换量超2亿条&#x…

threeJS 为模型增加精灵图

前言 之前使用css3DRender创建图片弹框,在旋转模型到背面时,弹框也背对模型,这与UI要求的效果有出入。考虑将css3DRender换成css2Drender,但是可能是模型的问题,将弹框加入到模型的子集,旋转模型时弹框发生比较明显的…

博物馆环境监测系统——文物的绿色守护者

博物馆环境监测系统是现代博物馆不可或缺的一项技术装备。该系统可以实时监测温度、湿度等因素,旨在保持文物所处环境的稳定性,确保馆内的文物得到最佳的保护和展示条件。尤其是在梅雨季节,博物馆环境监测系统在博物馆的工作中发挥着至关重要…

ENSP-防火墙小实验

实验总要求 我的拓扑图: 具体配置 1.交换机 vlan: # sysname Lswl # vlan batch 2 to 3 # 接口: [LSWl]int e 0/0/2 [LSWl-Ethernet0/0/2ldisplay this # interface Ethernet0/0/2port link-type accessport default vlan 2 # return [LsWl-Ethernet0…

nohup java -jar 启动java项目

hi,我是程序员王也,一个资深Java开发工程师,平时十分热衷于技术副业变现和各种搞钱项目的程序员~,如果你也是,可以一起交流交流。 今天我们聊聊linux中运行java jar包的问题~ 理解nohup命令 nohup命令的基本概念 noh…

对于一些未来规划的想法

文章目录 一、关于如何加技能点二、关于大厂、中厂、小厂三、大语言模型、元宇宙、VR、虚拟货币四、关于嵌入式的技术路线五、其他 一、关于如何加技能点 首先进入课题组,务必先把眼前的东西学好,做好当下的事情。 也是关于个人的发展规划的话&#xff…

强强联手促发展,奋楫共进启新篇 | 中创算力与中国移动签订战略合作协议

在数字化浪潮席卷全球的今天,河南中创算力信息科技有限公司与中国移动通信集团河南有限公司郑州分公司携手并进,共同开启了数字化转型的新篇章。 2024年7月10日上午,双方在中国移动郑州分公司隆重举行了战略合作协议的签约仪式。双方将在5G技…

炎热夏季环境下的文物保护:挑战与策略

随着夏季的到来,高温和强烈的日照给文物保护带来了新的挑战。在这个季节,文物不仅面临着物理和化学损害的风险,还可能因为管理不善而遭受人为破坏。因此,探讨如何在夏季炎热天气中做好文物保护工作具有重要意义。 夏季炎热天气对文…

海外电商SAAS平台对接流程

海外电商SAAS平台对接流程通常包括以下几个步骤,需要说明的是对接这些平台存在一定的风险,为了降低这些风险,建议您选择信誉良好的平台,并做好安全防护措施。北京木奇移动技术有限公司,专业的软件外包开发公司&#xf…

FastAPI 学习之路(三十九)对开发接口进行测试

概况 对于开发好的接口需要进行测试之后才能发布。当我们在开发的时候,没有提前测试,我们也要对我们自己的接口进行测试,那么FastApi自身也带有针对开发的接口进行测试的功能。我们看下FastApi官方给我们提供了什么样的支持。 接口还是基于…

景点门票销售管理系统(数据库课设)

1.课设要求描述 ●实现票价管理,应分老年、小孩、成人、团体等; ●实现营业员管理; 实现门票销售、退票管理; ● 创建存储过程,统计指定日期的门票销售情况; ●创建存储过程,统计指定月份…

PHP智慧社区小区物业管理系统小程序源码

让生活更便捷,社区更和谐✨ 🏡【开篇:智慧生活,从社区开始】🏡 在快节奏的现代生活中,寻找一份便捷与舒适成为了我们共同的追求。小区,作为我们日常生活的温馨港湾,其管理水平和服…

小红书的大模型有点「怂」

大模型发展至今,各个公司都根据自己的业务发布了各自的大模型。而小红书作为种草类产品的代表,自研的大模型一直引而不发,还在内测阶段。 AI以及自研大模型的持续火热,让以原创内容为主导的小红书坐不住了。 近期,据多…

Day66 代码随想录打卡|回溯算法篇---分割回文串

题目(leecode T131): 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。 方法:本题是一个分割回文串的问题,是回溯算法的另一类问题。 针对一个字…

oak相机使用oak官网方式标定

目录 一、depthai ROS驱动 一、depthai ROS驱动 (1)驱动下载地址:2. C 开发快速上手 — DepthAI Docs 0.3.0.0 documentation sudo apt install ./depthai_2.17.1_arm64.deb //运行 Python3 utilities/cam_test.py -mres 400 -cams rgb,m …

【2】kettle使用的小细节——输出数据分发和复制

在进行地铁数据清洗时,遇到3组线路: 出现的问题:程序运行到 增加序列 组件还有396条数据记录,但是在排序记录中只有 132条数据,即对3条线路进行了分发,各发送了132条数据。 断开这三条连接,重新…

对智能的研究正在悄悄地诱发复杂取代科学

随着智能人工智能的发展,传统科学研究方法可能面临新的挑战或者被扩展。人工智能的发展带来了大数据分析、机器学习、深度学习等新的工具和方法,这些方法在处理复杂系统和大规模数据方面表现出色,使得科学研究变得更加多样化和复杂化。对智能…

市面上护眼台灯哪个牌子最好?五款必须入手的护眼台灯分享

护眼台灯最终都绕不开护眼这个话题。护眼灯作为保护视力的辅助工具,以有效护眼的价值深受大众青睐。学生长时间用眼,普通台灯的伤害大,而护眼台灯的出现,通过其先进的技术和设计,能为学生提供了一个既舒适又健康的照明…