mirror of
https://github.com/espressif/esptool.git
synced 2025-10-17 16:01:18 +08:00
feat(esptool): Add tests for get_chip_features
This commit is contained in:
@@ -120,10 +120,16 @@ class ESP32S2ROM(ESP32ROM):
|
||||
num_word = 3
|
||||
return (self.read_reg(self.EFUSE_BLOCK1_ADDR + (4 * num_word)) >> 21) & 0x0F
|
||||
|
||||
def get_flash_cap(self):
|
||||
return self.get_flash_version()
|
||||
|
||||
def get_psram_version(self):
|
||||
num_word = 3
|
||||
return (self.read_reg(self.EFUSE_BLOCK1_ADDR + (4 * num_word)) >> 28) & 0x0F
|
||||
|
||||
def get_psram_cap(self):
|
||||
return self.get_psram_version()
|
||||
|
||||
def get_block2_version(self):
|
||||
# BLK_VERSION_MINOR
|
||||
num_word = 4
|
||||
@@ -137,7 +143,7 @@ class ESP32S2ROM(ESP32ROM):
|
||||
102: "ESP32-S2FNR2",
|
||||
100: "ESP32-S2R2",
|
||||
}.get(
|
||||
self.get_flash_version() + self.get_psram_version() * 100,
|
||||
self.get_flash_cap() + self.get_psram_cap() * 100,
|
||||
"unknown ESP32-S2",
|
||||
)
|
||||
major_rev = self.get_major_chip_version()
|
||||
@@ -154,14 +160,14 @@ class ESP32S2ROM(ESP32ROM):
|
||||
0: "No Embedded Flash",
|
||||
1: "Embedded Flash 2MB",
|
||||
2: "Embedded Flash 4MB",
|
||||
}.get(self.get_flash_version(), "Unknown Embedded Flash")
|
||||
}.get(self.get_flash_cap(), "Unknown Embedded Flash")
|
||||
features += [flash_version]
|
||||
|
||||
psram_version = {
|
||||
0: "No Embedded PSRAM",
|
||||
1: "Embedded PSRAM 2MB",
|
||||
2: "Embedded PSRAM 4MB",
|
||||
}.get(self.get_psram_version(), "Unknown Embedded PSRAM")
|
||||
}.get(self.get_psram_cap(), "Unknown Embedded PSRAM")
|
||||
features += [psram_version]
|
||||
|
||||
block2_version = {
|
||||
|
@@ -24,6 +24,7 @@ import tempfile
|
||||
import time
|
||||
from socket import AF_INET, SOCK_STREAM, socket
|
||||
from time import sleep
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
# Link command line options --port, --chip, --baud, --with-trace, and --preload-port
|
||||
from conftest import (
|
||||
@@ -1138,6 +1139,23 @@ class TestReadWriteMemory(EsptoolTestCase):
|
||||
finally:
|
||||
esp._port.close()
|
||||
|
||||
def test_read_get_chip_features(self):
|
||||
try:
|
||||
esp = esptool.get_default_connected_device(
|
||||
[arg_port], arg_port, 10, 115200, arg_chip
|
||||
)
|
||||
|
||||
if hasattr(esp, "get_flash_cap") and esp.get_flash_cap() == 0:
|
||||
esp.get_flash_cap = MagicMock(return_value=1)
|
||||
if hasattr(esp, "get_psram_cap") and esp.get_psram_cap() == 0:
|
||||
esp.get_psram_cap = MagicMock(return_value=1)
|
||||
|
||||
features = ", ".join(esp.get_chip_features())
|
||||
assert "Unknown Embedded Flash" not in features
|
||||
assert "Unknown Embedded PSRAM" not in features
|
||||
finally:
|
||||
esp._port.close()
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
arg_chip != "esp8266", reason="Make image option is supported only on ESP8266"
|
||||
|
Reference in New Issue
Block a user