ESP32-C3的存储器类型

news2024/11/18 5:30:08

本文主要参考ESP-IDF编程指南,一点小记录。

ESP32-C3的存储器有:

ESP-IDF 区分了指令总线(IRAM、IROM、RTC FAST memory)和数据总线 (DRAM、DROM)。

内部SRAM的一部分是指令RAM(IRAM)。那为什么要把指令放在RAM中,就是为了加快执行速度, 提高代码的性能。比如可以把中断的代码放到IRAM中,简单的做法就是,使用 IRAM_ATTR 宏在源代码中指定需要放入 IRAM 的代码,如:

#include "esp_attr.h"

void IRAM_ATTR gpio_isr_handler(void* arg)
{
        // ...
}

如何操作具体参考: 存储器类型 - ESP32-C3 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

内部SRAM的另外一部分是数据RAM(DRAM)。非常量静态数据(.data 段)和零初始化数据(.bss 段)由链接器放入内部 SRAM 作为数据存储。内部 SRAM 中不用于指令 RAM 的部分都会作为 ​​​​​​数据RAM供静态数据和动态分配(堆)使用。

内部ROM和外部Flash的一部分构成了指令ROM(IROM)。由于 IRAM 空间有限,应用程序的大部分二进制代码都需要放入 IROM 中。其中,内部ROM存储了bootloader等出厂固化的程序,我们是无法改变的;而Flash则存储了用户程序。

内部ROM和外部Flash的一部分构成了数据ROM(DROM)。这里的数据主要是常量。除此之外,可可以通过分区表去设定Flash的分区,存储用户自定义的数据。

具体来看一个程序的编译结果:

$ idf.py size
[...]
Total sizes:
Used stat D/IRAM:   53743 bytes ( 122385 remain, 30.5% used)
      .data size:    6504 bytes
      .bss  size:    1984 bytes
      .text size:   44228 bytes
   .vectors size:    1027 bytes
Used Flash size :  118879 bytes
           .text:   83467 bytes
         .rodata:   35156 bytes
Total image size:  170638 bytes (.bin may be padded larger)

可以看到.bss和.data以及.vector放在了DRAM里,小部分代码.text放在了IRAM里,两部分共占用了内部SRAM的53743字节,剩下的空间用作堆。

.rodata是只读数据也就是常量放在了DROM里,大部分代码.text放在了IROM里,两部分共占用了118879字节。

详细介绍:最小化二进制文件大小 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

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

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

相关文章

工厂车间安灯呼叫系统实现生产过程的可视化管理

工厂生产管理中生产效率低下导致现场管理困难。生产线问题无法及时处理和解决,导致在制品堆积严重。此外,对加工进度的掌握和生产现场状态的监控也存在困难,可控性差。设备故障无法及时处理,造成等待浪费,进一步降低了…

程序员告别996,这款开发工具火了

一、前言 如果一个概念能在科技圈火起来,它往往兼具字面简明和内涵丰富的特征,并具有某种重塑产业格局的潜力。 低代码(Low Code)就是这样一个典型。顾名思义,低代码是指少用代码,甚至不用代码,…

API安全学习 - crAPI漏洞靶场与API测试思路

crAPI漏洞靶场与解题思路 1. 前置基础1.1 认识crAPI1.2 环境搭建1.3 API的分类与鉴别 2. 漏洞验证2.1 失效的对象级别授权挑战1:访问其它用户车辆的详细信息挑战2:访问其它用户的机械报告 2.2 失效的用户身份验证挑战3:重置其它用户的密码 2.…

Vue3实战06-CompositionAPI+<script setup>好在哪?

Vue 3 的Composition API <script setup>这种最新的代码组织方式。

java八股文面试[数据库]——分库分表

什么是分库分表 简单来说&#xff0c;就是指通过某种特定的条件&#xff0c;将我们存放在同一个数据库中的数据分散存放到多个数据库&#xff08;主机&#xff09;上面&#xff0c;以达到分散单台设备负载的效果。 分库分表解决的问题 分库分表的目的是为了解决由于数据量过大…

Delft3D模型教程

详情点击公众号链接&#xff1a;基于Delft3D模型水体流动、污染物对流扩散、质点运移、溢油漂移及地表水环境报告编制教程 Delft3D计算网格构建 Delft3D水动力数值模拟 Delft3D污染物对流扩散数值模拟 一&#xff0c;Delft3D软件及建模原理和步骤 1.1地表水数值模拟常用软件、…

Cmake入门(一文读懂)

目录 1、Cmake简介2、安装CMake3、单目录简单实例3.1、CMakeLists.txt3.2、构建bulid内部构建外部构建 3.3、运行C语言程序 4、多目录文件简单实例4.1、根目录CMakeLists.txt4.2、源文件目录4.3、utils.h4.4、创建build 5、链接外部库文件6、注意 1、Cmake简介 CMake是一个强大…

Centos7离线安装ALISQL5.6.32-8

由于公司设备对数据需要大量的读取和查询&#xff0c;开始使用的mysql8&#xff0c;但是未优化的mysql插入和查询及其缓慢&#xff0c;因此我与同事分开研究&#xff0c;优化方案。我负责寻找可替代高效的数据库&#xff0c;然后问同学&#xff0c;发现alisql性能不错&#xff…

微信小程序开发---事件的绑定

目录 一、事件的概念 二、小程序中常用的事件 三、事件对象的属性列表 四、bindtap的语法格式 &#xff08;1&#xff09;绑定tap触摸事件 &#xff08;2&#xff09;编写处理函数 五、在事件处理函数中为data中的数据赋值 六、事件传参 七、bindinput的语法格式 八、…

微服务框架:一招实现降本、提质、增效办公!

应用什么样的软件平台&#xff0c;可以帮助企业朋友提高办公协作效率&#xff1f;传统的办公方式已经无法满足日益增长的业务需求了&#xff0c;借助低代码技术平台和微服务框架&#xff0c;可以让繁琐的办公轻松化&#xff0c;更高效、快捷、便利地满足客户的办公需求。 在众多…

分布式光伏消纳的微电网群共享储能配置策略研究——Matlab代码复现

目录 摘要&#xff1a; 研究背景&#xff1a; 共享储能参与微能源网新能源消纳模式&#xff1a; 共享储能电站容量功率配置原则&#xff1a; Matlab算例运行结果&#xff1a; ​编辑 Matalb代码数据分享&#xff1a; 摘要&#xff1a; 共享储能是可再生能源实现经济消纳…

Undefined symbols for architecture arm64

解决问题之前&#xff0c;先了解清晰涉及到的知识点&#xff1a; iOS支持的指令集包含&#xff1a;armv6、armv7、armv7s、arm64&#xff0c;在项目TARGETS---->Build Settings--->Architecturs 可以修改对应的指令集&#xff0c;目前Standard Architectures(arm64, arm…

【数据分享】2006-2021年我国省份级别的道路、桥梁、管线建设相关指标(10多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

GNSS融合策略

文章目录 一、背景二、松耦合融合策略1. 信息有效性判断2. 坐标系对齐3. 观测方程a.杆臂补偿b.速度融合c.位置融合d. 航向yaw融合e.观测性分析1&#xff09;状态表示在VIO坐标系下的观测性分析2&#xff09;状态表示在GPS ENU坐标系下的观测性分析 一、背景 前面介绍了GNSS的定…

Dos系统的Debug工具简单使用(2023.9.7)

先看说明书&#xff1a; 文章目录 分项操练-A-C-D-E-F-G-H-I-L-M-N-O-P-Q-R-S-T-U-W-XA-XD-XM-XS-&#xff1f; 分项操练 -A 全称&#xff1a;assemble&#xff08;汇编&#xff09; 作用&#xff1a;给定地址范围&#xff0c;写入汇编命令 格式&#xff1a;-a 首地址 如果…

常用echart图总结

柱状图 - category-work,grid直角坐标,legend,series-bar柱状图,tooltip提示框 - makeapie echarts社区图表可视化案例

制造企业如何优化物料控制?

导 读 ( 文/ 2127 ) 物料控制是指对制造过程中所涉及的物料流动和库存进行有效管理和控制的过程。它包括物料需求计划、供应商管理、物料采购、物料接收和入库、物料库存管理以及物料发放和使用等关键环节。通过精确的物料需求计划和库存管理&#xff0c;物料控制可以确保物料供…

达之云BI平台助力融通集团陕西军民服务社有限公司实现数字化运营

中国融通集团陕西军民服务社是一家大型综合类零售购物中心&#xff0c;公司目前管理系统运行了10年左右&#xff0c;面临系统新零售支持发展严重滞后&#xff0c;行业主流应用落地困难&#xff0c;如线上业务、到家业务、全渠道营销、电子发票、自助收银、扫码购、无感停车、未…

【C++ Core Guidelines解析】深入理解现代C++的特性和原理

文章目录 &#x1f468;‍⚖️《C Core Guidelines解析》的主要观点&#x1f468;‍&#x1f3eb;《C Core Guidelines解析》的主要内容&#x1f468;‍&#x1f4bb;作者介绍 &#x1f338;&#x1f338;&#x1f338;&#x1f337;&#x1f337;&#x1f337;&#x1f490;&a…

城市区县级数字孪生智慧水务信息化建设思考

随着水利部近几年对数字孪生水利建设的不断推进&#xff0c;区县级水司建设数字孪生智慧水务已经成为当前水务管理的重要发展趋势。智慧水务通过信息技术手段提高水务管理的效率和精度&#xff0c;实现水资源的合理利用和保护。本文将探讨区县级水司建设智慧水务的思考&#xf…