esp32tool 1.3.8 → 1.4.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/apple-touch-icon.png +0 -0
- package/dist/esp_loader.js +10 -4
- package/dist/util.d.ts +5 -0
- package/dist/util.js +15 -0
- package/dist/web/index.js +1 -1
- package/icons/icon-128.png +0 -0
- package/icons/icon-144.png +0 -0
- package/icons/icon-152.png +0 -0
- package/icons/icon-192.png +0 -0
- package/icons/icon-384.png +0 -0
- package/icons/icon-512.png +0 -0
- package/icons/icon-72.png +0 -0
- package/icons/icon-96.png +0 -0
- package/js/console.js +31 -0
- package/js/improv.js +1163 -0
- package/js/modules/esptool.js +1 -1
- package/package.json +1 -1
- package/screenshots/desktop.png +0 -0
- package/screenshots/mobile.png +0 -0
- package/src/esp_loader.ts +13 -4
- package/src/util.ts +20 -0
- package/sw.js +1 -1
package/apple-touch-icon.png
CHANGED
|
Binary file
|
package/dist/esp_loader.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="@types/w3c-web-serial" />
|
|
2
2
|
import { CHIP_FAMILY_ESP32, CHIP_FAMILY_ESP32S2, CHIP_FAMILY_ESP32S3, CHIP_FAMILY_ESP32C2, CHIP_FAMILY_ESP32C3, CHIP_FAMILY_ESP32C5, CHIP_FAMILY_ESP32C6, CHIP_FAMILY_ESP32C61, CHIP_FAMILY_ESP32H2, CHIP_FAMILY_ESP32H4, CHIP_FAMILY_ESP32H21, CHIP_FAMILY_ESP32P4, CHIP_FAMILY_ESP32S31, CHIP_FAMILY_ESP8266, MAX_TIMEOUT, DEFAULT_TIMEOUT, ERASE_REGION_TIMEOUT_PER_MB, ESP_CHANGE_BAUDRATE, ESP_CHECKSUM_MAGIC, ESP_FLASH_BEGIN, ESP_FLASH_DATA, ESP_FLASH_END, ESP_MEM_BEGIN, ESP_MEM_DATA, ESP_MEM_END, ESP_READ_REG, ESP_WRITE_REG, ESP_SPI_ATTACH, ESP_SYNC, ESP_GET_SECURITY_INFO, FLASH_SECTOR_SIZE, FLASH_WRITE_SIZE, STUB_FLASH_WRITE_SIZE, MEM_END_ROM_TIMEOUT, ROM_INVALID_RECV_MSG, SYNC_PACKET, SYNC_TIMEOUT, USB_RAM_BLOCK, ESP_ERASE_FLASH, ESP_ERASE_REGION, ESP_READ_FLASH, CHIP_ERASE_TIMEOUT, FLASH_READ_TIMEOUT, timeoutPerMb, ESP_ROM_BAUD, USB_JTAG_SERIAL_PID, ESP_FLASH_DEFL_BEGIN, ESP_FLASH_DEFL_DATA, ESP_FLASH_DEFL_END, getSpiFlashAddresses, DETECTED_FLASH_SIZES, CHIP_DETECT_MAGIC_REG_ADDR, CHIP_DETECT_MAGIC_VALUES, CHIP_ID_TO_INFO, ESP32_BASEFUSEADDR, ESP32_APB_CTL_DATE_ADDR, ESP32S2_EFUSE_BLOCK1_ADDR, ESP32S3_EFUSE_BLOCK1_ADDR, ESP32C2_EFUSE_BLOCK2_ADDR, ESP32C5_EFUSE_BLOCK1_ADDR, ESP32C6_EFUSE_BLOCK1_ADDR, ESP32C61_EFUSE_BLOCK1_ADDR, ESP32H2_EFUSE_BLOCK1_ADDR, ESP32P4_EFUSE_BLOCK1_ADDR, ESP32S31_EFUSE_BLOCK1_ADDR, SlipReadError, ESP32S2_RTC_CNTL_WDTWPROTECT_REG, ESP32S2_RTC_CNTL_WDTCONFIG0_REG, ESP32S2_RTC_CNTL_WDTCONFIG1_REG, ESP32S2_RTC_CNTL_WDT_WKEY, ESP32S2_RTC_CNTL_OPTION1_REG, ESP32S2_RTC_CNTL_FORCE_DOWNLOAD_BOOT_MASK, ESP32S3_RTC_CNTL_WDTWPROTECT_REG, ESP32S3_RTC_CNTL_WDTCONFIG0_REG, ESP32S3_RTC_CNTL_WDTCONFIG1_REG, ESP32S3_RTC_CNTL_WDT_WKEY, ESP32S3_RTC_CNTL_OPTION1_REG, ESP32S3_RTC_CNTL_FORCE_DOWNLOAD_BOOT_MASK, ESP32C3_EFUSE_RD_MAC_SPI_SYS_3_REG, ESP32C3_EFUSE_RD_MAC_SPI_SYS_5_REG, ESP32C3_RTC_CNTL_WDTWPROTECT_REG, ESP32C3_RTC_CNTL_WDTCONFIG0_REG, ESP32C3_RTC_CNTL_WDTCONFIG1_REG, ESP32C3_RTC_CNTL_WDT_WKEY, ESP32C5_C6_RTC_CNTL_WDTWPROTECT_REG, ESP32C5_C6_RTC_CNTL_WDTCONFIG0_REG, ESP32C5_C6_RTC_CNTL_WDTCONFIG1_REG, ESP32C5_C6_RTC_CNTL_WDT_WKEY, ESP32C5_UART_CLKDIV_REG, ESP32C5_PCR_SYSCLK_CONF_REG, ESP32C5_PCR_SYSCLK_XTAL_FREQ_V, ESP32C5_PCR_SYSCLK_XTAL_FREQ_S, ESP32P4_RTC_CNTL_WDTWPROTECT_REG, ESP32P4_RTC_CNTL_WDTCONFIG0_REG, ESP32P4_RTC_CNTL_WDTCONFIG1_REG, ESP32P4_RTC_CNTL_WDT_WKEY, ESP32P4_RTC_CNTL_OPTION1_REG, ESP32P4_RTC_CNTL_FORCE_DOWNLOAD_BOOT_MASK, ESP32P4_LP_SYSTEM_REG_ANA_XPD_PAD_GROUP_REG, ESP32P4_PMU_EXT_LDO_P0_0P1A_ANA_REG, ESP32P4_PMU_ANA_0P1A_EN_CUR_LIM_0, ESP32P4_PMU_EXT_LDO_P0_0P1A_REG, ESP32P4_PMU_0P1A_TARGET0_0, ESP32P4_PMU_0P1A_FORCE_TIEH_SEL_0, ESP32P4_PMU_DATE_REG, ESP32S2_UARTDEV_BUF_NO, ESP32S2_UARTDEV_BUF_NO_USB_OTG, ESP32S3_UARTDEV_BUF_NO, ESP32S3_UARTDEV_BUF_NO_USB_OTG, ESP32S3_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32C3_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32C3_BUF_UART_NO_OFFSET, ESP32C5_UARTDEV_BUF_NO, ESP32C5_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32C6_UARTDEV_BUF_NO, ESP32C6_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32C61_UARTDEV_BUF_NO_REV_LE2, ESP32C61_UARTDEV_BUF_NO_REV_GT2, ESP32C61_UARTDEV_BUF_NO_USB_JTAG_SERIAL_REV_LE2, ESP32C61_UARTDEV_BUF_NO_USB_JTAG_SERIAL_REV_GT2, ESP32H2_UARTDEV_BUF_NO, ESP32H2_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32H4_UARTDEV_BUF_NO, ESP32H4_UARTDEV_BUF_NO_USB_JTAG_SERIAL, ESP32P4_UARTDEV_BUF_NO_REV0, ESP32P4_UARTDEV_BUF_NO_REV300, ESP32P4_UARTDEV_BUF_NO_USB_OTG, ESP32P4_UARTDEV_BUF_NO_USB_JTAG_SERIAL, } from "./const";
|
|
3
3
|
import { getStubCode } from "./stubs";
|
|
4
|
-
import { hexFormatter, sleep, slipEncode, toHex } from "./util";
|
|
4
|
+
import { hexFormatter, padTo, sleep, slipEncode, toHex } from "./util";
|
|
5
5
|
import { FLASH_MANUFACTURERS, FLASH_DEVICES } from "./flash_jedec";
|
|
6
6
|
import { deflate } from "pako";
|
|
7
7
|
import { pack, unpack } from "./struct";
|
|
@@ -1078,8 +1078,12 @@ export class ESPLoader extends EventTarget {
|
|
|
1078
1078
|
});
|
|
1079
1079
|
}
|
|
1080
1080
|
}
|
|
1081
|
-
// Add general fallback strategies only for
|
|
1082
|
-
|
|
1081
|
+
// Add general fallback strategies only for Native USB chips (not USB-Serial)
|
|
1082
|
+
// and only for chips not already handled by specific blocks above
|
|
1083
|
+
if (!isUSBSerialChip &&
|
|
1084
|
+
!isCP2102 &&
|
|
1085
|
+
!isESP32S2NativeUSB &&
|
|
1086
|
+
!isUSBJTAGSerial) {
|
|
1083
1087
|
// Classic reset (for chips not handled above)
|
|
1084
1088
|
if (portInfo.usbVendorId !== 0x1a86) {
|
|
1085
1089
|
resetStrategies.push({
|
|
@@ -1111,7 +1115,7 @@ export class ESPLoader extends EventTarget {
|
|
|
1111
1115
|
},
|
|
1112
1116
|
});
|
|
1113
1117
|
// WebUSB Strategy: USB-JTAG/Serial fallback
|
|
1114
|
-
if (!
|
|
1118
|
+
if (!isEspressifUSB) {
|
|
1115
1119
|
resetStrategies.push({
|
|
1116
1120
|
name: "USB-JTAG/Serial fallback (WebUSB)",
|
|
1117
1121
|
fn: async function () {
|
|
@@ -2100,6 +2104,8 @@ export class ESPLoader extends EventTarget {
|
|
|
2100
2104
|
const headerFlashSizeFreq = header[3];
|
|
2101
2105
|
this.logger.log(`Image header, Magic=${toHex(headerMagic)}, FlashMode=${toHex(headerFlashMode)}, FlashSizeFreq=${toHex(headerFlashSizeFreq)}`);
|
|
2102
2106
|
}
|
|
2107
|
+
const paddedData = padTo(new Uint8Array(binaryData), 4);
|
|
2108
|
+
binaryData = paddedData.buffer;
|
|
2103
2109
|
const uncompressedFilesize = binaryData.byteLength;
|
|
2104
2110
|
let compressedFilesize = 0;
|
|
2105
2111
|
let dataToFlash;
|
package/dist/util.d.ts
CHANGED
|
@@ -15,4 +15,9 @@ export declare const toHex: (value: number, size?: number) => string;
|
|
|
15
15
|
* Format MAC address array to string (e.g., [0xAA, 0xBB, 0xCC] -> "AA:BB:CC:DD:EE:FF")
|
|
16
16
|
*/
|
|
17
17
|
export declare const formatMacAddr: (macAddr: number[]) => string;
|
|
18
|
+
/**
|
|
19
|
+
* @name padTo
|
|
20
|
+
* Pad data to the next alignment boundary with the given fill byte (default 0xFF)
|
|
21
|
+
*/
|
|
22
|
+
export declare function padTo(data: Uint8Array, alignment: number, padCharacter?: number): Uint8Array;
|
|
18
23
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
package/dist/util.js
CHANGED
|
@@ -51,4 +51,19 @@ export const formatMacAddr = (macAddr) => {
|
|
|
51
51
|
.map((value) => value.toString(16).toUpperCase().padStart(2, "0"))
|
|
52
52
|
.join(":");
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* @name padTo
|
|
56
|
+
* Pad data to the next alignment boundary with the given fill byte (default 0xFF)
|
|
57
|
+
*/
|
|
58
|
+
export function padTo(data, alignment, padCharacter = 0xff) {
|
|
59
|
+
const padMod = data.length % alignment;
|
|
60
|
+
if (padMod !== 0) {
|
|
61
|
+
const padding = new Uint8Array(alignment - padMod).fill(padCharacter);
|
|
62
|
+
const paddedData = new Uint8Array(data.length + padding.length);
|
|
63
|
+
paddedData.set(data);
|
|
64
|
+
paddedData.set(padding, data.length);
|
|
65
|
+
return paddedData;
|
|
66
|
+
}
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
54
69
|
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|