当前位置:网站首页>[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
边栏推荐
- Mysql的索引实现之B树和B+树
- 共用体(union)详解【C语言】
- 树莓派 轻触开关 按键使用
- [NPUCTF2020]ReadlezPHP
- Pytoch implements simple linear regression demo
- Characteristics, task status and startup of UCOS III
- ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
- RT thread API reference manual
- RT-Thread 线程的时间片轮询调度
- Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
猜你喜欢
随机推荐
荣耀Magic 3Pro 充电架构分析
[mrctf2020] dolls
RT thread API reference manual
Internet protocol details
Mysql database interview questions
Basic use of pytest
Reno7 60W super flash charging architecture
sklearn之feature_extraction.text.CountVectorizer / TfidVectorizer
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
物联网系统框架学习
arduino获取随机数
【ESP32学习-1】Arduino ESP32开发环境搭建
OPPO VOOC快充电路和协议
STM32 how to locate the code segment that causes hard fault
AMBA、AHB、APB、AXI的理解
E-commerce data analysis -- salary prediction (linear regression)
imgcat使用心得
Wangeditor rich text reference and table usage
Contiki source code + principle + function + programming + transplantation + drive + network (turn)
Stage 4 MySQL database