mirror of
				https://github.com/alexandrebobkov/ESP-Nodes.git
				synced 2025-11-04 08:31:04 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import atob from "atob-lite";
 | 
						|
/**
 | 
						|
 * Import flash stub json for the given chip name.
 | 
						|
 * @param {string} chipName Name of chip to obtain flasher stub
 | 
						|
 * @returns {Stub} Stub information and decoded text and data
 | 
						|
 */
 | 
						|
export async function getStubJsonByChipName(chipName) {
 | 
						|
    let jsonStub;
 | 
						|
    switch (chipName) {
 | 
						|
        case "ESP32":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-C2":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32c2.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-C3":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32c3.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-C5":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32c5.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-C6":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32c6.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-C61":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32c61.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-H2":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32h2.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-P4":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32p4.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-S2":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32s2.json");
 | 
						|
            break;
 | 
						|
        case "ESP32-S3":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_32s3.json");
 | 
						|
            break;
 | 
						|
        case "ESP8266":
 | 
						|
            jsonStub = await import("./targets/stub_flasher/stub_flasher_8266.json");
 | 
						|
            break;
 | 
						|
    }
 | 
						|
    if (jsonStub) {
 | 
						|
        return {
 | 
						|
            bss_start: jsonStub.bss_start,
 | 
						|
            data: jsonStub.data,
 | 
						|
            data_start: jsonStub.data_start,
 | 
						|
            entry: jsonStub.entry,
 | 
						|
            text: jsonStub.text,
 | 
						|
            text_start: jsonStub.text_start,
 | 
						|
            decodedData: decodeBase64Data(jsonStub.data),
 | 
						|
            decodedText: decodeBase64Data(jsonStub.text),
 | 
						|
        };
 | 
						|
    }
 | 
						|
    return;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Convert a base 64 string to Uint8Array.
 | 
						|
 * @param {string} dataStr Base64 String to decode
 | 
						|
 * @returns {Uint8Array} Decoded Uint8Array
 | 
						|
 */
 | 
						|
export function decodeBase64Data(dataStr) {
 | 
						|
    const decoded = atob(dataStr);
 | 
						|
    const chardata = decoded.split("").map(function (x) {
 | 
						|
        return x.charCodeAt(0);
 | 
						|
    });
 | 
						|
    return new Uint8Array(chardata);
 | 
						|
}
 |