tasmota-webserial-esptool 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +10 -0
- package/.github/workflows/build_upload.yml +31 -0
- package/.github/workflows/ci.yml +22 -0
- package/.prettierignore +1 -0
- package/README.md +18 -0
- package/css/dark.css +91 -0
- package/css/light.css +79 -0
- package/css/style.css +383 -0
- package/dist/const.d.ts +159 -0
- package/dist/const.js +252 -0
- package/dist/esp_loader.d.ts +166 -0
- package/dist/esp_loader.js +931 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +12 -0
- package/dist/struct.d.ts +2 -0
- package/dist/struct.js +105 -0
- package/dist/stubs/esp32.json +1 -0
- package/dist/stubs/esp32c3.json +1 -0
- package/dist/stubs/esp32s2.json +1 -0
- package/dist/stubs/esp32s3.json +1 -0
- package/dist/stubs/esp8266.json +1 -0
- package/dist/stubs/index.d.ts +10 -0
- package/dist/stubs/index.js +26 -0
- package/dist/util.d.ts +14 -0
- package/dist/util.js +46 -0
- package/dist/web/esp32-a2dcbc2e.js +1 -0
- package/dist/web/esp32c3-18e9678b.js +1 -0
- package/dist/web/esp32s2-3109ccc6.js +1 -0
- package/dist/web/esp32s3-c1dbd867.js +1 -0
- package/dist/web/esp8266-144419c0.js +1 -0
- package/dist/web/index.js +1 -0
- package/index.html +196 -0
- package/js/esptool.js +1292 -0
- package/js/modules/esp32-a2dcbc2e.js +1 -0
- package/js/modules/esp32c3-18e9678b.js +1 -0
- package/js/modules/esp32s2-3109ccc6.js +1 -0
- package/js/modules/esp32s3-c1dbd867.js +1 -0
- package/js/modules/esp8266-144419c0.js +1 -0
- package/js/modules/esptool.js +1 -0
- package/js/script.js +447 -0
- package/js/utilities.js +148 -0
- package/license.md +12 -0
- package/package.json +36 -0
- package/rollup.config.js +27 -0
- package/script/build +8 -0
- package/script/develop +17 -0
- package/script/stubgen.py +47 -0
- package/src/const.ts +315 -0
- package/src/esp_loader.ts +1204 -0
- package/src/index.ts +27 -0
- package/src/struct.ts +115 -0
- package/src/stubs/esp32.json +1 -0
- package/src/stubs/esp32c2.json +1 -0
- package/src/stubs/esp32c3.json +1 -0
- package/src/stubs/esp32h2.json +1 -0
- package/src/stubs/esp32s2.json +1 -0
- package/src/stubs/esp32s3.json +1 -0
- package/src/stubs/esp8266.json +1 -0
- package/src/stubs/index.ts +48 -0
- package/src/util.ts +49 -0
- package/stubs/esp32c2.json +1 -0
- package/stubs/esp32c3.json +1 -0
- package/stubs/esp32h2.json +1 -0
- package/stubs/esp32s3.json +1 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import urllib.request
|
|
2
|
+
import re
|
|
3
|
+
import base64
|
|
4
|
+
import zlib
|
|
5
|
+
import json
|
|
6
|
+
|
|
7
|
+
ESPTOOL_URL = "https://raw.githubusercontent.com/espressif/esptool/master/esptool/stub_flasher.py"
|
|
8
|
+
STUB_HEADERS = {
|
|
9
|
+
"esp8266": "ESP8266ROM.STUB_CODE",
|
|
10
|
+
"esp32": "ESP32ROM.STUB_CODE",
|
|
11
|
+
"esp32s2": "ESP32S2ROM.STUB_CODE",
|
|
12
|
+
"esp32s3": "ESP32S3ROM.STUB_CODE",
|
|
13
|
+
"esp32c3": "ESP32C3ROM.STUB_CODE",
|
|
14
|
+
"esp32h2": "ESP32H2BETA2ROM.STUB_CODE",
|
|
15
|
+
"esp32c2": "ESP32C2ROM.STUB_CODE",
|
|
16
|
+
}
|
|
17
|
+
STUB_REGEX = ' = eval\(zlib.decompress\(base64\.b64decode\((.*?)\)\)\)'
|
|
18
|
+
|
|
19
|
+
print("Downloading esptool.py from GitHub...")
|
|
20
|
+
with urllib.request.urlopen(ESPTOOL_URL) as f:
|
|
21
|
+
esptool_code = f.read().decode('utf-8')
|
|
22
|
+
|
|
23
|
+
print("Extracting Stubs from esptool.py...")
|
|
24
|
+
stubs = {}
|
|
25
|
+
for key, header in STUB_HEADERS.items():
|
|
26
|
+
match = re.search(header + STUB_REGEX, esptool_code, flags=(re.MULTILINE + re.DOTALL))
|
|
27
|
+
if match:
|
|
28
|
+
print(f"Found {key}!")
|
|
29
|
+
stubs[key] = eval(match.group(1))
|
|
30
|
+
|
|
31
|
+
print("Converting Stubs to JSON...")
|
|
32
|
+
for key, stub in stubs.items():
|
|
33
|
+
code = eval(zlib.decompress(base64.b64decode(stub)))
|
|
34
|
+
print("\nProcessing " + key)
|
|
35
|
+
print("Text size:", str(len(code["text"])) + " bytes")
|
|
36
|
+
print("Data size:", str(len(code["data"])) + " bytes")
|
|
37
|
+
|
|
38
|
+
print(code["text"])
|
|
39
|
+
print(base64.b64encode(code["text"]))
|
|
40
|
+
code["text"] = base64.b64encode(code["text"]).decode("utf-8")
|
|
41
|
+
code["data"] = base64.b64encode(code["data"]).decode("utf-8")
|
|
42
|
+
|
|
43
|
+
jsondata = json.dumps(code)
|
|
44
|
+
|
|
45
|
+
f = open("../src/stubs/" + key + ".json", "w+")
|
|
46
|
+
f.write(jsondata)
|
|
47
|
+
f.close()
|
package/src/const.ts
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { toByteArray } from "./util";
|
|
2
|
+
|
|
3
|
+
export interface Logger {
|
|
4
|
+
log(msg: string, ...args: any[]): void;
|
|
5
|
+
error(msg: string, ...args: any[]): void;
|
|
6
|
+
debug(msg: string, ...args: any[]): void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const baudRates = [
|
|
10
|
+
115200, 128000, 153600, 230400, 460800, 921600, 1500000, 2000000,
|
|
11
|
+
];
|
|
12
|
+
export const FLASH_SIZES = {
|
|
13
|
+
"512KB": 0x00,
|
|
14
|
+
"256KB": 0x10,
|
|
15
|
+
"1MB": 0x20,
|
|
16
|
+
"2MB": 0x30,
|
|
17
|
+
"4MB": 0x40,
|
|
18
|
+
"2MB-c1": 0x50,
|
|
19
|
+
"4MB-c1": 0x60,
|
|
20
|
+
"8MB": 0x80,
|
|
21
|
+
"16MB": 0x90,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const ESP32_FLASH_SIZES = {
|
|
25
|
+
"1MB": 0x00,
|
|
26
|
+
"2MB": 0x10,
|
|
27
|
+
"4MB": 0x20,
|
|
28
|
+
"8MB": 0x30,
|
|
29
|
+
"16MB": 0x40,
|
|
30
|
+
"32MB": 0x50,
|
|
31
|
+
"64MB": 0x60,
|
|
32
|
+
"128MB": 0x70,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
interface FlashSize {
|
|
36
|
+
[key: number]: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const DETECTED_FLASH_SIZES: FlashSize = {
|
|
40
|
+
0x12: "256KB",
|
|
41
|
+
0x13: "512KB",
|
|
42
|
+
0x14: "1MB",
|
|
43
|
+
0x15: "2MB",
|
|
44
|
+
0x16: "4MB",
|
|
45
|
+
0x17: "8MB",
|
|
46
|
+
0x18: "16MB",
|
|
47
|
+
0x19: "32MB",
|
|
48
|
+
0x1a: "64MB",
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const FLASH_WRITE_SIZE = 0x400;
|
|
52
|
+
export const STUB_FLASH_WRITE_SIZE = 0x4000;
|
|
53
|
+
export const FLASH_SECTOR_SIZE = 0x1000; // Flash sector size, minimum unit of erase.
|
|
54
|
+
export const ESP_ROM_BAUD = 115200;
|
|
55
|
+
export const USB_JTAG_SERIAL_PID = 0x1001;
|
|
56
|
+
|
|
57
|
+
export const ESP8266_SPI_REG_BASE = 0x60000200;
|
|
58
|
+
export const ESP8266_BASEFUSEADDR = 0x3ff00050;
|
|
59
|
+
export const ESP8266_MACFUSEADDR = 0x3ff00050;
|
|
60
|
+
export const ESP8266_SPI_USR_OFFS = 0x1c;
|
|
61
|
+
export const ESP8266_SPI_USR1_OFFS = 0x20;
|
|
62
|
+
export const ESP8266_SPI_USR2_OFFS = 0x24;
|
|
63
|
+
export const ESP8266_SPI_MOSI_DLEN_OFFS = -1;
|
|
64
|
+
export const ESP8266_SPI_MISO_DLEN_OFFS = -1;
|
|
65
|
+
export const ESP8266_SPI_W0_OFFS = 0x40;
|
|
66
|
+
export const ESP8266_UART_DATE_REG_ADDR = 0x60000078;
|
|
67
|
+
export const ESP8266_BOOTLOADER_FLASH_OFFSET = 0x0;
|
|
68
|
+
|
|
69
|
+
export const ESP32_SPI_REG_BASE = 0x3ff42000;
|
|
70
|
+
export const ESP32_BASEFUSEADDR = 0x3ff5a000;
|
|
71
|
+
export const ESP32_MACFUSEADDR = 0x3ff5a000;
|
|
72
|
+
export const ESP32_SPI_USR_OFFS = 0x1c;
|
|
73
|
+
export const ESP32_SPI_USR1_OFFS = 0x20;
|
|
74
|
+
export const ESP32_SPI_USR2_OFFS = 0x24;
|
|
75
|
+
export const ESP32_SPI_MOSI_DLEN_OFFS = 0x28;
|
|
76
|
+
export const ESP32_SPI_MISO_DLEN_OFFS = 0x2c;
|
|
77
|
+
export const ESP32_SPI_W0_OFFS = 0x80;
|
|
78
|
+
export const ESP32_UART_DATE_REG_ADDR = 0x60000078;
|
|
79
|
+
export const ESP32_BOOTLOADER_FLASH_OFFSET = 0x1000;
|
|
80
|
+
|
|
81
|
+
export const ESP32S2_SPI_REG_BASE = 0x3f402000;
|
|
82
|
+
export const ESP32S2_BASEFUSEADDR = 0x3f41a000;
|
|
83
|
+
export const ESP32S2_MACFUSEADDR = 0x3f41a044;
|
|
84
|
+
export const ESP32S2_SPI_USR_OFFS = 0x18;
|
|
85
|
+
export const ESP32S2_SPI_USR1_OFFS = 0x1c;
|
|
86
|
+
export const ESP32S2_SPI_USR2_OFFS = 0x20;
|
|
87
|
+
export const ESP32S2_SPI_MOSI_DLEN_OFFS = 0x24;
|
|
88
|
+
export const ESP32S2_SPI_MISO_DLEN_OFFS = 0x28;
|
|
89
|
+
export const ESP32S2_SPI_W0_OFFS = 0x58;
|
|
90
|
+
export const ESP32S2_UART_DATE_REG_ADDR = 0x60000078;
|
|
91
|
+
export const ESP32S2_BOOTLOADER_FLASH_OFFSET = 0x1000;
|
|
92
|
+
|
|
93
|
+
export const ESP32S3_SPI_REG_BASE = 0x60002000;
|
|
94
|
+
export const ESP32S3_BASEFUSEADDR = 0x60007000;
|
|
95
|
+
export const ESP32S3_MACFUSEADDR = 0x60007000 + 0x044;
|
|
96
|
+
export const ESP32S3_SPI_USR_OFFS = 0x18;
|
|
97
|
+
export const ESP32S3_SPI_USR1_OFFS = 0x1c;
|
|
98
|
+
export const ESP32S3_SPI_USR2_OFFS = 0x20;
|
|
99
|
+
export const ESP32S3_SPI_MOSI_DLEN_OFFS = 0x24;
|
|
100
|
+
export const ESP32S3_SPI_MISO_DLEN_OFFS = 0x28;
|
|
101
|
+
export const ESP32S3_SPI_W0_OFFS = 0x58;
|
|
102
|
+
export const ESP32S3_UART_DATE_REG_ADDR = 0x60000080;
|
|
103
|
+
export const ESP32S3_BOOTLOADER_FLASH_OFFSET = 0x0;
|
|
104
|
+
|
|
105
|
+
export const ESP32C3_SPI_REG_BASE = 0x60002000;
|
|
106
|
+
export const ESP32C3_BASEFUSEADDR = 0x60008800;
|
|
107
|
+
export const ESP32C3_MACFUSEADDR = 0x60008800 + 0x044;
|
|
108
|
+
export const ESP32C3_SPI_USR_OFFS = 0x18;
|
|
109
|
+
export const ESP32C3_SPI_USR1_OFFS = 0x1c;
|
|
110
|
+
export const ESP32C3_SPI_USR2_OFFS = 0x20;
|
|
111
|
+
export const ESP32C3_SPI_MOSI_DLEN_OFFS = 0x24;
|
|
112
|
+
export const ESP32C3_SPI_MISO_DLEN_OFFS = 0x28;
|
|
113
|
+
export const ESP32C3_SPI_W0_OFFS = 0x58;
|
|
114
|
+
export const ESP32C3_UART_DATE_REG_ADDR = 0x6000007c;
|
|
115
|
+
export const ESP32C3_BOOTLOADER_FLASH_OFFSET = 0x0;
|
|
116
|
+
|
|
117
|
+
export interface SpiFlashAddresses {
|
|
118
|
+
regBase: number;
|
|
119
|
+
baseFuse: number;
|
|
120
|
+
macFuse: number;
|
|
121
|
+
usrOffs: number;
|
|
122
|
+
usr1Offs: number;
|
|
123
|
+
usr2Offs: number;
|
|
124
|
+
mosiDlenOffs: number;
|
|
125
|
+
misoDlenOffs: number;
|
|
126
|
+
w0Offs: number;
|
|
127
|
+
uartDateReg: number;
|
|
128
|
+
flashOffs: number;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export const SYNC_PACKET = toByteArray(
|
|
132
|
+
"\x07\x07\x12 UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"
|
|
133
|
+
);
|
|
134
|
+
export const CHIP_DETECT_MAGIC_REG_ADDR = 0x40001000;
|
|
135
|
+
// These values for the families are made up; nothing that esptool uses.
|
|
136
|
+
export const CHIP_FAMILY_ESP8266 = 0x8266;
|
|
137
|
+
export const CHIP_FAMILY_ESP32 = 0x32;
|
|
138
|
+
export const CHIP_FAMILY_ESP32S2 = 0x3252;
|
|
139
|
+
export const CHIP_FAMILY_ESP32S3 = 0x3253;
|
|
140
|
+
export const CHIP_FAMILY_ESP32C3 = 0x32c3;
|
|
141
|
+
export const CHIP_FAMILY_ESP32C6 = 0x32c6;
|
|
142
|
+
export const CHIP_FAMILY_ESP32H2 = 0x3272;
|
|
143
|
+
export type ChipFamily =
|
|
144
|
+
| typeof CHIP_FAMILY_ESP8266
|
|
145
|
+
| typeof CHIP_FAMILY_ESP32
|
|
146
|
+
| typeof CHIP_FAMILY_ESP32S2
|
|
147
|
+
| typeof CHIP_FAMILY_ESP32S3
|
|
148
|
+
| typeof CHIP_FAMILY_ESP32C3
|
|
149
|
+
| typeof CHIP_FAMILY_ESP32C6
|
|
150
|
+
| typeof CHIP_FAMILY_ESP32H2;
|
|
151
|
+
|
|
152
|
+
interface ChipInfo {
|
|
153
|
+
[magicValue: number]: {
|
|
154
|
+
name: string;
|
|
155
|
+
family: ChipFamily;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export const CHIP_DETECT_MAGIC_VALUES: ChipInfo = {
|
|
160
|
+
0xfff0c101: { name: "ESP8266", family: CHIP_FAMILY_ESP8266 },
|
|
161
|
+
0x00f01d83: { name: "ESP32", family: CHIP_FAMILY_ESP32 },
|
|
162
|
+
0x000007c6: { name: "ESP32-S2", family: CHIP_FAMILY_ESP32S2 },
|
|
163
|
+
0x9: { name: "ESP32-S3", family: CHIP_FAMILY_ESP32S3 },
|
|
164
|
+
0xeb004136: { name: "ESP32-S3(beta2)", family: CHIP_FAMILY_ESP32S3 },
|
|
165
|
+
0x6921506f: { name: "ESP32-C3", family: CHIP_FAMILY_ESP32C3 },
|
|
166
|
+
0x1b31506f: { name: "ESP32-C3", family: CHIP_FAMILY_ESP32C3 },
|
|
167
|
+
0xca26cc22: { name: "ESP32-H2", family: CHIP_FAMILY_ESP32H2 },
|
|
168
|
+
0x0da1806f: { name: "ESP32-C6(beta)", family: CHIP_FAMILY_ESP32C6 },
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
// Commands supported by ESP8266 ROM bootloader
|
|
172
|
+
export const ESP_FLASH_BEGIN = 0x02;
|
|
173
|
+
export const ESP_FLASH_DATA = 0x03;
|
|
174
|
+
export const ESP_FLASH_END = 0x04;
|
|
175
|
+
export const ESP_MEM_BEGIN = 0x05;
|
|
176
|
+
export const ESP_MEM_END = 0x06;
|
|
177
|
+
export const ESP_MEM_DATA = 0x07;
|
|
178
|
+
export const ESP_SYNC = 0x08;
|
|
179
|
+
export const ESP_WRITE_REG = 0x09;
|
|
180
|
+
export const ESP_READ_REG = 0x0a;
|
|
181
|
+
|
|
182
|
+
export const ESP_ERASE_FLASH = 0xd0;
|
|
183
|
+
export const ESP_ERASE_REGION = 0xd1;
|
|
184
|
+
|
|
185
|
+
export const ESP_SPI_SET_PARAMS = 0x0b;
|
|
186
|
+
export const ESP_SPI_ATTACH = 0x0d;
|
|
187
|
+
export const ESP_CHANGE_BAUDRATE = 0x0f;
|
|
188
|
+
export const ESP_SPI_FLASH_MD5 = 0x13;
|
|
189
|
+
export const ESP_CHECKSUM_MAGIC = 0xef;
|
|
190
|
+
export const ESP_FLASH_DEFL_BEGIN = 0x10;
|
|
191
|
+
export const ESP_FLASH_DEFL_DATA = 0x11;
|
|
192
|
+
export const ESP_FLASH_DEFL_END = 0x12;
|
|
193
|
+
|
|
194
|
+
export const ROM_INVALID_RECV_MSG = 0x05;
|
|
195
|
+
|
|
196
|
+
export const USB_RAM_BLOCK = 0x800;
|
|
197
|
+
export const ESP_RAM_BLOCK = 0x1800;
|
|
198
|
+
|
|
199
|
+
// Timeouts
|
|
200
|
+
export const DEFAULT_TIMEOUT = 3000;
|
|
201
|
+
export const CHIP_ERASE_TIMEOUT = 600000; // timeout for full chip erase in ms
|
|
202
|
+
export const MAX_TIMEOUT = CHIP_ERASE_TIMEOUT * 2; // longest any command can run in ms
|
|
203
|
+
export const SYNC_TIMEOUT = 100; // timeout for syncing with bootloader in ms
|
|
204
|
+
export const ERASE_REGION_TIMEOUT_PER_MB = 30000; // timeout (per megabyte) for erasing a region in ms
|
|
205
|
+
export const MEM_END_ROM_TIMEOUT = 500;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* @name timeoutPerMb
|
|
209
|
+
* Scales timeouts which are size-specific
|
|
210
|
+
*/
|
|
211
|
+
export const timeoutPerMb = (secondsPerMb: number, sizeBytes: number) => {
|
|
212
|
+
let result = Math.floor(secondsPerMb * (sizeBytes / 0x1e6));
|
|
213
|
+
if (result < DEFAULT_TIMEOUT) {
|
|
214
|
+
return DEFAULT_TIMEOUT;
|
|
215
|
+
}
|
|
216
|
+
return result;
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export const getSpiFlashAddresses = (
|
|
220
|
+
chipFamily: ChipFamily
|
|
221
|
+
): SpiFlashAddresses => {
|
|
222
|
+
switch (chipFamily) {
|
|
223
|
+
case CHIP_FAMILY_ESP32:
|
|
224
|
+
return {
|
|
225
|
+
regBase: ESP32_SPI_REG_BASE,
|
|
226
|
+
baseFuse: ESP32_BASEFUSEADDR,
|
|
227
|
+
macFuse: ESP32_MACFUSEADDR,
|
|
228
|
+
usrOffs: ESP32_SPI_USR_OFFS,
|
|
229
|
+
usr1Offs: ESP32_SPI_USR1_OFFS,
|
|
230
|
+
usr2Offs: ESP32_SPI_USR2_OFFS,
|
|
231
|
+
mosiDlenOffs: ESP32_SPI_MOSI_DLEN_OFFS,
|
|
232
|
+
misoDlenOffs: ESP32_SPI_MISO_DLEN_OFFS,
|
|
233
|
+
w0Offs: ESP32_SPI_W0_OFFS,
|
|
234
|
+
uartDateReg: ESP32_UART_DATE_REG_ADDR,
|
|
235
|
+
flashOffs: ESP32_BOOTLOADER_FLASH_OFFSET,
|
|
236
|
+
};
|
|
237
|
+
case CHIP_FAMILY_ESP32S2:
|
|
238
|
+
return {
|
|
239
|
+
regBase: ESP32S2_SPI_REG_BASE,
|
|
240
|
+
baseFuse: ESP32S2_BASEFUSEADDR,
|
|
241
|
+
macFuse: ESP32S2_MACFUSEADDR,
|
|
242
|
+
usrOffs: ESP32S2_SPI_USR_OFFS,
|
|
243
|
+
usr1Offs: ESP32S2_SPI_USR1_OFFS,
|
|
244
|
+
usr2Offs: ESP32S2_SPI_USR2_OFFS,
|
|
245
|
+
mosiDlenOffs: ESP32S2_SPI_MOSI_DLEN_OFFS,
|
|
246
|
+
misoDlenOffs: ESP32S2_SPI_MISO_DLEN_OFFS,
|
|
247
|
+
w0Offs: ESP32S2_SPI_W0_OFFS,
|
|
248
|
+
uartDateReg: ESP32S2_UART_DATE_REG_ADDR,
|
|
249
|
+
flashOffs: ESP32S2_BOOTLOADER_FLASH_OFFSET,
|
|
250
|
+
};
|
|
251
|
+
case CHIP_FAMILY_ESP32S3:
|
|
252
|
+
return {
|
|
253
|
+
regBase: ESP32S3_SPI_REG_BASE,
|
|
254
|
+
usrOffs: ESP32S3_SPI_USR_OFFS,
|
|
255
|
+
baseFuse: ESP32S3_BASEFUSEADDR,
|
|
256
|
+
macFuse: ESP32S3_MACFUSEADDR,
|
|
257
|
+
usr1Offs: ESP32S3_SPI_USR1_OFFS,
|
|
258
|
+
usr2Offs: ESP32S3_SPI_USR2_OFFS,
|
|
259
|
+
mosiDlenOffs: ESP32S3_SPI_MOSI_DLEN_OFFS,
|
|
260
|
+
misoDlenOffs: ESP32S3_SPI_MISO_DLEN_OFFS,
|
|
261
|
+
w0Offs: ESP32S3_SPI_W0_OFFS,
|
|
262
|
+
uartDateReg: ESP32S3_UART_DATE_REG_ADDR,
|
|
263
|
+
flashOffs: ESP32S3_BOOTLOADER_FLASH_OFFSET,
|
|
264
|
+
};
|
|
265
|
+
case CHIP_FAMILY_ESP8266:
|
|
266
|
+
return {
|
|
267
|
+
regBase: ESP8266_SPI_REG_BASE,
|
|
268
|
+
usrOffs: ESP8266_SPI_USR_OFFS,
|
|
269
|
+
baseFuse: ESP8266_BASEFUSEADDR,
|
|
270
|
+
macFuse: ESP8266_MACFUSEADDR,
|
|
271
|
+
usr1Offs: ESP8266_SPI_USR1_OFFS,
|
|
272
|
+
usr2Offs: ESP8266_SPI_USR2_OFFS,
|
|
273
|
+
mosiDlenOffs: ESP8266_SPI_MOSI_DLEN_OFFS,
|
|
274
|
+
misoDlenOffs: ESP8266_SPI_MISO_DLEN_OFFS,
|
|
275
|
+
w0Offs: ESP8266_SPI_W0_OFFS,
|
|
276
|
+
uartDateReg: ESP8266_UART_DATE_REG_ADDR,
|
|
277
|
+
flashOffs: ESP8266_BOOTLOADER_FLASH_OFFSET,
|
|
278
|
+
};
|
|
279
|
+
case CHIP_FAMILY_ESP32C3:
|
|
280
|
+
return {
|
|
281
|
+
regBase: ESP32C3_SPI_REG_BASE,
|
|
282
|
+
baseFuse: ESP32C3_BASEFUSEADDR,
|
|
283
|
+
macFuse: ESP32C3_MACFUSEADDR,
|
|
284
|
+
usrOffs: ESP32C3_SPI_USR_OFFS,
|
|
285
|
+
usr1Offs: ESP32C3_SPI_USR1_OFFS,
|
|
286
|
+
usr2Offs: ESP32C3_SPI_USR2_OFFS,
|
|
287
|
+
mosiDlenOffs: ESP32C3_SPI_MOSI_DLEN_OFFS,
|
|
288
|
+
misoDlenOffs: ESP32C3_SPI_MISO_DLEN_OFFS,
|
|
289
|
+
w0Offs: ESP32C3_SPI_W0_OFFS,
|
|
290
|
+
uartDateReg: ESP32C3_UART_DATE_REG_ADDR,
|
|
291
|
+
flashOffs: ESP32C3_BOOTLOADER_FLASH_OFFSET,
|
|
292
|
+
};
|
|
293
|
+
default:
|
|
294
|
+
return {
|
|
295
|
+
regBase: -1,
|
|
296
|
+
baseFuse: -1,
|
|
297
|
+
macFuse: -1,
|
|
298
|
+
usrOffs: -1,
|
|
299
|
+
usr1Offs: -1,
|
|
300
|
+
usr2Offs: -1,
|
|
301
|
+
mosiDlenOffs: -1,
|
|
302
|
+
misoDlenOffs: -1,
|
|
303
|
+
w0Offs: -1,
|
|
304
|
+
uartDateReg: -1,
|
|
305
|
+
flashOffs: -1,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
export class SlipReadError extends Error {
|
|
311
|
+
constructor(message: string) {
|
|
312
|
+
super(message);
|
|
313
|
+
this.name = "SlipReadError";
|
|
314
|
+
}
|
|
315
|
+
}
|