当前位置:网站首页>[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 
边栏推荐
- Missing value filling in data analysis (focus on multiple interpolation method, miseforest)
- Linux Yum install MySQL
- B tree and b+ tree of MySQL index implementation
- Word typesetting (subtotal)
- 机器学习--线性回归(sklearn)
- Encodermappreduce notes
- Hutool中那些常用的工具类和方法
- 高通&MTK&麒麟 手機平臺USB3.0方案對比
- [template] KMP string matching
- RT-Thread 线程的时间片轮询调度
猜你喜欢
![Several declarations about pointers [C language]](/img/9b/ace0abbd1956123a945a98680b1e86.png)
Several declarations about pointers [C language]

Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍

Cannot change version of project facet Dynamic Web Module to 2.3.

Reno7 60W超级闪充充电架构

STM32 如何定位导致发生 hard fault 的代码段

Variable star user module

mysql实现读写分离

机器学习--线性回归(sklearn)

FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现

R & D thinking 01 ----- classic of embedded intelligent product development process
随机推荐
IOT system framework learning
Apprentissage automatique - - régression linéaire (sklearn)
机器学习--线性回归(sklearn)
【ESP32学习-2】esp32地址映射
小天才电话手表 Z3工作原理
Encodermappreduce notes
Wangeditor rich text reference and table usage
RT-Thread API参考手册
Selective sorting and bubble sorting [C language]
Togglebutton realizes the effect of switching lights
荣耀Magic 3Pro 充电架构分析
互联网协议详解
Gallery之图片浏览、组件学习
Comparaison des solutions pour la plate - forme mobile Qualcomm & MTK & Kirin USB 3.0
C语言回调函数【C语言】
Dead loop in FreeRTOS task function
高通&MTK&麒麟 手机平台USB3.0方案对比
A possible cause and solution of "stuck" main thread of RT thread
Bubble sort [C language]
几个关于指针的声明【C语言】