Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
韩旭在努力
arduino-esp32
提交
d4d14589
A
arduino-esp32
项目概览
韩旭在努力
/
arduino-esp32
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
arduino-esp32
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d4d14589
编写于
9月 14, 2022
作者:
J
Jason2866
提交者:
GitHub
9月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Real flash chip mode (#7239)
上级
8191aaf8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
30 addition
and
6 deletion
+30
-6
cores/esp32/Esp.cpp
cores/esp32/Esp.cpp
+30
-6
未找到文件。
cores/esp32/Esp.cpp
浏览文件 @
d4d14589
...
...
@@ -30,6 +30,7 @@ extern "C" {
}
#include <MD5Builder.h>
#include "soc/spi_reg.h"
#include "esp_system.h"
#ifdef ESP_IDF_VERSION_MAJOR // IDF 4+
#if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4
...
...
@@ -55,6 +56,14 @@ extern "C" {
#define ESP_FLASH_IMAGE_BASE 0x1000
#endif
// REG_SPI_BASE is not defined for S3/C3 ??
#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3
#ifndef REG_SPI_BASE
#define REG_SPI_BASE(i) (DR_REG_SPI1_BASE + (((i)>1) ? (((i)* 0x1000) + 0x20000) : (((~(i)) & 1)* 0x1000 )))
#endif // REG_SPI_BASE
#endif // TARGET
/**
* User-defined Literals
* usage:
...
...
@@ -192,7 +201,7 @@ static uint32_t sketchSize(sketchSize_t response) {
return
data
.
image_len
;
}
}
uint32_t
EspClass
::
getSketchSize
()
{
return
sketchSize
(
SKETCH_SIZE_TOTAL
);
}
...
...
@@ -329,11 +338,26 @@ uint32_t EspClass::getFlashChipSpeed(void)
FlashMode_t
EspClass
::
getFlashChipMode
(
void
)
{
esp_image_header_t
fhdr
;
if
(
flashRead
(
ESP_FLASH_IMAGE_BASE
,
(
uint32_t
*
)
&
fhdr
,
sizeof
(
esp_image_header_t
))
&&
fhdr
.
magic
!=
ESP_IMAGE_HEADER_MAGIC
)
{
return
FM_UNKNOWN
;
}
return
magicFlashChipMode
(
fhdr
.
spi_mode
);
#if CONFIG_IDF_TARGET_ESP32S2
uint32_t
spi_ctrl
=
REG_READ
(
PERIPHS_SPI_FLASH_CTRL
);
#else
uint32_t
spi_ctrl
=
REG_READ
(
SPI_CTRL_REG
(
0
));
#endif
/* Not all of the following constants are already defined in older versions of spi_reg.h, so do it manually for now*/
if
(
spi_ctrl
&
BIT
(
24
))
{
//SPI_FREAD_QIO
return
(
FM_QIO
);
}
else
if
(
spi_ctrl
&
BIT
(
20
))
{
//SPI_FREAD_QUAD
return
(
FM_QOUT
);
}
else
if
(
spi_ctrl
&
BIT
(
23
))
{
//SPI_FREAD_DIO
return
(
FM_DIO
);
}
else
if
(
spi_ctrl
&
BIT
(
14
))
{
// SPI_FREAD_DUAL
return
(
FM_DOUT
);
}
else
if
(
spi_ctrl
&
BIT
(
13
))
{
//SPI_FASTRD_MODE
return
(
FM_FAST_READ
);
}
else
{
return
(
FM_SLOW_READ
);
}
return
(
FM_DOUT
);
}
uint32_t
EspClass
::
magicFlashChipSize
(
uint8_t
byte
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录