esp32tool 1.0.0
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/README.md +31 -0
- package/css/dark.css +156 -0
- package/css/light.css +156 -0
- package/css/style.css +870 -0
- package/dist/const.d.ts +277 -0
- package/dist/const.js +511 -0
- package/dist/esp_loader.d.ts +222 -0
- package/dist/esp_loader.js +1466 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +15 -0
- package/dist/lib/spiffs/index.d.ts +15 -0
- package/dist/lib/spiffs/index.js +16 -0
- package/dist/lib/spiffs/spiffs.d.ts +26 -0
- package/dist/lib/spiffs/spiffs.js +132 -0
- package/dist/lib/spiffs/spiffsBlock.d.ts +36 -0
- package/dist/lib/spiffs/spiffsBlock.js +140 -0
- package/dist/lib/spiffs/spiffsConfig.d.ts +63 -0
- package/dist/lib/spiffs/spiffsConfig.js +79 -0
- package/dist/lib/spiffs/spiffsPage.d.ts +45 -0
- package/dist/lib/spiffs/spiffsPage.js +260 -0
- package/dist/lib/spiffs/spiffsReader.d.ts +19 -0
- package/dist/lib/spiffs/spiffsReader.js +192 -0
- package/dist/partition.d.ts +26 -0
- package/dist/partition.js +129 -0
- package/dist/struct.d.ts +2 -0
- package/dist/struct.js +91 -0
- package/dist/stubs/esp32.json +8 -0
- package/dist/stubs/esp32c2.json +8 -0
- package/dist/stubs/esp32c3.json +8 -0
- package/dist/stubs/esp32c5.json +8 -0
- package/dist/stubs/esp32c6.json +8 -0
- package/dist/stubs/esp32c61.json +8 -0
- package/dist/stubs/esp32h2.json +8 -0
- package/dist/stubs/esp32p4.json +8 -0
- package/dist/stubs/esp32p4r3.json +8 -0
- package/dist/stubs/esp32s2.json +8 -0
- package/dist/stubs/esp32s3.json +8 -0
- package/dist/stubs/esp8266.json +8 -0
- package/dist/stubs/index.d.ts +10 -0
- package/dist/stubs/index.js +56 -0
- package/dist/util.d.ts +14 -0
- package/dist/util.js +46 -0
- package/dist/wasm/filesystems.d.ts +33 -0
- package/dist/wasm/filesystems.js +114 -0
- package/dist/web/esp32-D955RjN9.js +16 -0
- package/dist/web/esp32c2-CJkxHDQi.js +16 -0
- package/dist/web/esp32c3-BhUHzH0o.js +16 -0
- package/dist/web/esp32c5-Chs0HtmA.js +16 -0
- package/dist/web/esp32c6-D6mPN6ut.js +16 -0
- package/dist/web/esp32c61-CQiYCWAs.js +16 -0
- package/dist/web/esp32h2-LsKJE9AS.js +16 -0
- package/dist/web/esp32p4-7nWC-HiD.js +16 -0
- package/dist/web/esp32p4r3-CwiPecZW.js +16 -0
- package/dist/web/esp32s2-CtqVheSJ.js +16 -0
- package/dist/web/esp32s3-CRbtB0QR.js +16 -0
- package/dist/web/esp8266-nEkNAo8K.js +16 -0
- package/dist/web/index.js +7265 -0
- package/electron/main.js +333 -0
- package/electron/preload.js +37 -0
- package/eslint.config.js +22 -0
- package/index.html +408 -0
- package/js/modules/esp32-D955RjN9.js +16 -0
- package/js/modules/esp32c2-CJkxHDQi.js +16 -0
- package/js/modules/esp32c3-BhUHzH0o.js +16 -0
- package/js/modules/esp32c5-Chs0HtmA.js +16 -0
- package/js/modules/esp32c6-D6mPN6ut.js +16 -0
- package/js/modules/esp32c61-CQiYCWAs.js +16 -0
- package/js/modules/esp32h2-LsKJE9AS.js +16 -0
- package/js/modules/esp32p4-7nWC-HiD.js +16 -0
- package/js/modules/esp32p4r3-CwiPecZW.js +16 -0
- package/js/modules/esp32s2-CtqVheSJ.js +16 -0
- package/js/modules/esp32s3-CRbtB0QR.js +16 -0
- package/js/modules/esp8266-nEkNAo8K.js +16 -0
- package/js/modules/esptool.js +7265 -0
- package/js/script.js +2237 -0
- package/js/utilities.js +182 -0
- package/license.md +11 -0
- package/package.json +61 -0
- package/script/build +12 -0
- package/script/develop +17 -0
- package/src/const.ts +599 -0
- package/src/esp_loader.ts +1907 -0
- package/src/index.ts +63 -0
- package/src/lib/spiffs/index.ts +22 -0
- package/src/lib/spiffs/spiffs.ts +175 -0
- package/src/lib/spiffs/spiffsBlock.ts +204 -0
- package/src/lib/spiffs/spiffsConfig.ts +140 -0
- package/src/lib/spiffs/spiffsPage.ts +357 -0
- package/src/lib/spiffs/spiffsReader.ts +280 -0
- package/src/partition.ts +155 -0
- package/src/struct.ts +108 -0
- package/src/stubs/README.md +3 -0
- package/src/stubs/esp32.json +8 -0
- package/src/stubs/esp32c2.json +8 -0
- package/src/stubs/esp32c3.json +8 -0
- package/src/stubs/esp32c5.json +8 -0
- package/src/stubs/esp32c6.json +8 -0
- package/src/stubs/esp32c61.json +8 -0
- package/src/stubs/esp32h2.json +8 -0
- package/src/stubs/esp32p4.json +8 -0
- package/src/stubs/esp32p4r3.json +8 -0
- package/src/stubs/esp32s2.json +8 -0
- package/src/stubs/esp32s3.json +8 -0
- package/src/stubs/esp8266.json +8 -0
- package/src/stubs/index.ts +86 -0
- package/src/util.ts +49 -0
- package/src/wasm/fatfs/fatfs.wasm +0 -0
- package/src/wasm/fatfs/index.d.ts +26 -0
- package/src/wasm/fatfs/index.js +343 -0
- package/src/wasm/filesystems.ts +156 -0
- package/src/wasm/littlefs/index.d.ts +83 -0
- package/src/wasm/littlefs/index.js +529 -0
- package/src/wasm/littlefs/littlefs.js +2 -0
- package/src/wasm/littlefs/littlefs.wasm +0 -0
- package/src/wasm/shared/types.ts +13 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { Logger, ChipFamily, SpiFlashAddresses } from "./const";
|
|
2
|
+
export declare class ESPLoader extends EventTarget {
|
|
3
|
+
port: SerialPort;
|
|
4
|
+
logger: Logger;
|
|
5
|
+
private _parent?;
|
|
6
|
+
chipFamily: ChipFamily;
|
|
7
|
+
chipName: string | null;
|
|
8
|
+
chipRevision: number | null;
|
|
9
|
+
chipVariant: string | null;
|
|
10
|
+
_efuses: any[];
|
|
11
|
+
_flashsize: number;
|
|
12
|
+
debug: boolean;
|
|
13
|
+
IS_STUB: boolean;
|
|
14
|
+
connected: boolean;
|
|
15
|
+
flashSize: string | null;
|
|
16
|
+
__inputBuffer?: number[];
|
|
17
|
+
__totalBytesRead?: number;
|
|
18
|
+
private _currentBaudRate;
|
|
19
|
+
private _maxUSBSerialBaudrate?;
|
|
20
|
+
private _reader?;
|
|
21
|
+
private _isESP32S2NativeUSB;
|
|
22
|
+
private _initializationSucceeded;
|
|
23
|
+
constructor(port: SerialPort, logger: Logger, _parent?: ESPLoader | undefined);
|
|
24
|
+
private get _inputBuffer();
|
|
25
|
+
private get _totalBytesRead();
|
|
26
|
+
private set _totalBytesRead(value);
|
|
27
|
+
private detectUSBSerialChip;
|
|
28
|
+
initialize(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Detect chip type using GET_SECURITY_INFO (for newer chips) or magic value (for older chips)
|
|
31
|
+
*/
|
|
32
|
+
detectChip(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get chip revision for ESP32-P4
|
|
35
|
+
*/
|
|
36
|
+
getChipRevision(): Promise<number>;
|
|
37
|
+
/**
|
|
38
|
+
* Get security info including chip ID (ESP32-C3 and later)
|
|
39
|
+
*/
|
|
40
|
+
getSecurityInfo(): Promise<{
|
|
41
|
+
flags: number;
|
|
42
|
+
flashCryptCnt: number;
|
|
43
|
+
keyPurposes: number[];
|
|
44
|
+
chipId: number;
|
|
45
|
+
apiVersion: number;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* @name readLoop
|
|
49
|
+
* Reads data from the input stream and places it in the inputBuffer
|
|
50
|
+
*/
|
|
51
|
+
readLoop(): Promise<void>;
|
|
52
|
+
sleep(ms?: number): Promise<unknown>;
|
|
53
|
+
state_DTR: boolean;
|
|
54
|
+
setRTS(state: boolean): Promise<void>;
|
|
55
|
+
setDTR(state: boolean): Promise<void>;
|
|
56
|
+
hardReset(bootloader?: boolean): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* @name macAddr
|
|
59
|
+
* The MAC address burned into the OTP memory of the ESP chip
|
|
60
|
+
*/
|
|
61
|
+
macAddr(): any[];
|
|
62
|
+
readRegister(reg: number): Promise<number>;
|
|
63
|
+
/**
|
|
64
|
+
* @name checkCommand
|
|
65
|
+
* Send a command packet, check that the command succeeded and
|
|
66
|
+
* return a tuple with the value and data.
|
|
67
|
+
* See the ESP Serial Protocol for more details on what value/data are
|
|
68
|
+
*/
|
|
69
|
+
checkCommand(opcode: number, buffer: number[], checksum?: number, timeout?: number): Promise<[number, number[]]>;
|
|
70
|
+
/**
|
|
71
|
+
* @name sendCommand
|
|
72
|
+
* Send a slip-encoded, checksummed command over the UART,
|
|
73
|
+
* does not check response
|
|
74
|
+
*/
|
|
75
|
+
sendCommand(opcode: number, buffer: number[], checksum?: number): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* @name readPacket
|
|
78
|
+
* Generator to read SLIP packets from a serial port.
|
|
79
|
+
* Yields one full SLIP packet at a time, raises exception on timeout or invalid data.
|
|
80
|
+
*/
|
|
81
|
+
readPacket(timeout: number): Promise<number[]>;
|
|
82
|
+
/**
|
|
83
|
+
* @name getResponse
|
|
84
|
+
* Read response data and decodes the slip packet, then parses
|
|
85
|
+
* out the value/data and returns as a tuple of (value, data) where
|
|
86
|
+
* each is a list of bytes
|
|
87
|
+
*/
|
|
88
|
+
getResponse(opcode: number, timeout?: number): Promise<[number, number[]]>;
|
|
89
|
+
/**
|
|
90
|
+
* @name checksum
|
|
91
|
+
* Calculate checksum of a blob, as it is defined by the ROM
|
|
92
|
+
*/
|
|
93
|
+
checksum(data: number[], state?: number): number;
|
|
94
|
+
setBaudrate(baud: number): Promise<void>;
|
|
95
|
+
reconfigurePort(baud: number): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* @name sync
|
|
98
|
+
* Put into ROM bootload mode & attempt to synchronize with the
|
|
99
|
+
* ESP ROM bootloader, we will retry a few times
|
|
100
|
+
*/
|
|
101
|
+
sync(): Promise<boolean>;
|
|
102
|
+
/**
|
|
103
|
+
* @name _sync
|
|
104
|
+
* Perform a soft-sync using AT sync packets, does not perform
|
|
105
|
+
* any hardware resetting
|
|
106
|
+
*/
|
|
107
|
+
_sync(): Promise<boolean>;
|
|
108
|
+
/**
|
|
109
|
+
* @name getFlashWriteSize
|
|
110
|
+
* Get the Flash write size based on the chip
|
|
111
|
+
*/
|
|
112
|
+
getFlashWriteSize(): 1024 | 16384;
|
|
113
|
+
/**
|
|
114
|
+
* @name flashData
|
|
115
|
+
* Program a full, uncompressed binary file into SPI Flash at
|
|
116
|
+
* a given offset. If an ESP32 and md5 string is passed in, will also
|
|
117
|
+
* verify memory. ESP8266 does not have checksum memory verification in
|
|
118
|
+
* ROM
|
|
119
|
+
*/
|
|
120
|
+
flashData(binaryData: ArrayBuffer, updateProgress: (bytesWritten: number, totalBytes: number) => void, offset?: number, compress?: boolean): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* @name flashBlock
|
|
123
|
+
* Send one block of data to program into SPI Flash memory
|
|
124
|
+
*/
|
|
125
|
+
flashBlock(data: number[], seq: number, timeout?: number): Promise<void>;
|
|
126
|
+
flashDeflBlock(data: number[], seq: number, timeout?: number): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* @name flashBegin
|
|
129
|
+
* Prepare for flashing by attaching SPI chip and erasing the
|
|
130
|
+
* number of blocks requred.
|
|
131
|
+
*/
|
|
132
|
+
flashBegin(size?: number, offset?: number, encrypted?: boolean): Promise<number>;
|
|
133
|
+
/**
|
|
134
|
+
* @name flashDeflBegin
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
137
|
+
flashDeflBegin(size?: number, compressedSize?: number, offset?: number): Promise<number>;
|
|
138
|
+
flashFinish(): Promise<void>;
|
|
139
|
+
flashDeflFinish(): Promise<void>;
|
|
140
|
+
getBootloaderOffset(): number;
|
|
141
|
+
flashId(): Promise<number>;
|
|
142
|
+
getChipFamily(): ChipFamily;
|
|
143
|
+
writeRegister(address: number, value: number, mask?: number, delayUs?: number, delayAfterUs?: number): Promise<void>;
|
|
144
|
+
setDataLengths(spiAddresses: SpiFlashAddresses, mosiBits: number, misoBits: number): Promise<void>;
|
|
145
|
+
waitDone(spiCmdReg: number, spiCmdUsr: number): Promise<void>;
|
|
146
|
+
runSpiFlashCommand(spiflashCommand: number, data: number[], readBits?: number): Promise<number>;
|
|
147
|
+
detectFlashSize(): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* @name getEraseSize
|
|
150
|
+
* Calculate an erase size given a specific size in bytes.
|
|
151
|
+
* Provides a workaround for the bootloader erase bug on ESP8266.
|
|
152
|
+
*/
|
|
153
|
+
getEraseSize(offset: number, size: number): number;
|
|
154
|
+
/**
|
|
155
|
+
* @name memBegin (592)
|
|
156
|
+
* Start downloading an application image to RAM
|
|
157
|
+
*/
|
|
158
|
+
memBegin(size: number, blocks: number, blocksize: number, offset: number): Promise<[number, number[]]>;
|
|
159
|
+
/**
|
|
160
|
+
* @name memBlock (609)
|
|
161
|
+
* Send a block of an image to RAM
|
|
162
|
+
*/
|
|
163
|
+
memBlock(data: number[], seq: number): Promise<[number, number[]]>;
|
|
164
|
+
/**
|
|
165
|
+
* @name memFinish (615)
|
|
166
|
+
* Leave download mode and run the application
|
|
167
|
+
*
|
|
168
|
+
* Sending ESP_MEM_END usually sends a correct response back, however sometimes
|
|
169
|
+
* (with ROM loader) the executed code may reset the UART or change the baud rate
|
|
170
|
+
* before the transmit FIFO is empty. So in these cases we set a short timeout and
|
|
171
|
+
* ignore errors.
|
|
172
|
+
*/
|
|
173
|
+
memFinish(entrypoint?: number): Promise<[number, number[]]>;
|
|
174
|
+
runStub(skipFlashDetection?: boolean): Promise<EspStubLoader>;
|
|
175
|
+
writeToStream(data: number[]): Promise<void>;
|
|
176
|
+
disconnect(): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* @name reconnectAndResume
|
|
179
|
+
* Reconnect the serial port to flush browser buffers and reload stub
|
|
180
|
+
*/
|
|
181
|
+
reconnect(): Promise<void>;
|
|
182
|
+
/**
|
|
183
|
+
* @name drainInputBuffer
|
|
184
|
+
* Actively drain the input buffer by reading data for a specified time.
|
|
185
|
+
* Simple approach for some drivers (especially CP210x on Windows) that have
|
|
186
|
+
* issues with buffer flushing.
|
|
187
|
+
*
|
|
188
|
+
* Based on esptool.py fix: https://github.com/espressif/esptool/commit/5338ea054e5099ac7be235c54034802ac8a43162
|
|
189
|
+
*
|
|
190
|
+
* @param bufferingTime - Time in milliseconds to wait for the buffer to fill
|
|
191
|
+
*/
|
|
192
|
+
private drainInputBuffer;
|
|
193
|
+
/**
|
|
194
|
+
* @name flushSerialBuffers
|
|
195
|
+
* Flush any pending data in the TX and RX serial port buffers
|
|
196
|
+
* This clears both the application RX buffer and waits for hardware buffers to drain
|
|
197
|
+
*/
|
|
198
|
+
private flushSerialBuffers;
|
|
199
|
+
/**
|
|
200
|
+
* @name readFlash
|
|
201
|
+
* Read flash memory from the chip (only works with stub loader)
|
|
202
|
+
* @param addr - Address to read from
|
|
203
|
+
* @param size - Number of bytes to read
|
|
204
|
+
* @param onPacketReceived - Optional callback function called when packet is received
|
|
205
|
+
* @returns Uint8Array containing the flash data
|
|
206
|
+
*/
|
|
207
|
+
readFlash(addr: number, size: number, onPacketReceived?: (packet: Uint8Array, progress: number, totalSize: number) => void): Promise<Uint8Array>;
|
|
208
|
+
}
|
|
209
|
+
declare class EspStubLoader extends ESPLoader {
|
|
210
|
+
IS_STUB: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* @name memBegin (592)
|
|
213
|
+
* Start downloading an application image to RAM
|
|
214
|
+
*/
|
|
215
|
+
memBegin(size: number, _blocks: number, _blocksize: number, offset: number): Promise<[number, number[]]>;
|
|
216
|
+
/**
|
|
217
|
+
* @name getEraseSize
|
|
218
|
+
* depending on flash chip model the erase may take this long (maybe longer!)
|
|
219
|
+
*/
|
|
220
|
+
eraseFlash(): Promise<void>;
|
|
221
|
+
}
|
|
222
|
+
export {};
|