mirror of
				https://github.com/alexandrebobkov/ESP-Nodes.git
				synced 2025-10-31 03:39:51 +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);
 | |
| }
 |