当前位置:网站首页>[esp32 learning-2] esp32 address mapping
[esp32 learning-2] esp32 address mapping
2022-07-06 12:03:00 【csdndulala】
This article begins with esp32 Technical reference manual A description in
1.3.2.4 Internal SRAM 1
Internal SRAM 1 The capacity of is 128 KB, It can be divided into two CPU Via data bus 0x3FFE_0000 ~ 0x3FFF_FFFF Reading and writing ,
Can also be two CPU Via instruction bus 0x400A_0000 ~ 0x400B_FFFF Reading and writing .
Instruction bus address and data bus address access word It's in reverse order . The address :
0x3FFE_0000 And 0x400B_FFFC Access the same word
0x3FFE_0004 And 0x400B_FFF8 Access the same word
0x3FFE_0008 And 0x400B_FFF4 Access the same wordThe puzzle is why inter SRAM 1 Access different addresses through the data and instruction bus , Get the same content ? Why is this design ? What are the benefits ?
Search for information , Finally found Accurate answer : It can be customized IRAM and DRAM Size .( At the same time, it also solves ,esp32 Inside ram How to divide and use )ROM0 Why do I need Remap:
1.3.2.1 Internal ROM 0
Internal ROM 0 The capacity of is 384 KB, Can be two CPU Via instruction bus 0x4000_0000 ~ 0x4005_FFFF Read .
visit ROM 0 The head of the 32 KB The address of (0x4000_0000 ~ 0x4000_7FFF) Can be Remap To Internal SRAM 1 One of them
branch , This part was originally addressed 0x400B_0000 ~ 0x400B_7FFF visit . When remapping , this 32 KB SRAM Can no longer be addressed
0x400B_0000 ~ 0x400B_7FFF visit , however It can be used by data bus (0x3FFE_8000 ~ 0x3FFE_FFFF) visit . The way to do it is
There are two CPU Configure a register , That is to say PRO_CPU Set up DPORT_PRO_BOOT_REMAP_CTRL_REG The register of
bit 0 Or for APP_CPU Set up DPORT_APP_BOOT_REMAP_CTRL_REG The register of bit 0.There is no explanation on the Internet , I understand it :
rom0 As an instruction space, there are 384KB( It's already very big ), The allocated address space will not be fully used , Can pass remap The way , take rom The address of is mapped to ram The address of . This will speed up First level bootstrap Operation of .
Strongly recommended relevant information :
1 Memory address mapping
2 Flash state
边栏推荐
- Funny cartoon: Programmer's logic
- 小天才电话手表 Z3工作原理
- STM32 如何定位导致发生 hard fault 的代码段
- RT-Thread API参考手册
- MySQL realizes read-write separation
- Wangeditor rich text component - copy available
- Dead loop in FreeRTOS task function
- ES6语法总结--上篇(基础篇)
- Detailed explanation of nodejs
- Comparison of solutions of Qualcomm & MTK & Kirin mobile platform USB3.0
猜你喜欢
arduino JSON数据信息解析
AMBA、AHB、APB、AXI的理解
Correspondence between STM32 model and contex M
Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍
RT thread API reference manual
Come and walk into the JVM
STM32 how to locate the code segment that causes hard fault
E-commerce data analysis -- salary prediction (linear regression)
Small L's test paper
Kaggle competition two Sigma connect: rental listing inquiries
随机推荐
数据库面试常问的一些概念
OPPO VOOC快充电路和协议
arduino JSON数据信息解析
Pytorch实现简单线性回归Demo
encoderMapReduce 随手记
AMBA、AHB、APB、AXI的理解
2019 Tencent summer intern formal written examination
AMBA、AHB、APB、AXI的理解
Dead loop in FreeRTOS task function
MySQL主从复制的原理以及实现
【ESP32学习-2】esp32地址映射
冒泡排序【C语言】
高通&MTK&麒麟 手机平台USB3.0方案对比
Pytorch-温度预测
[template] KMP string matching
C语言回调函数【C语言】
Implementation scheme of distributed transaction
Priority inversion and deadlock
MongoDB
arduino获取随机数