Autarch/web/static/js/lib/esptool-bundle.js

14 lines
175 KiB
JavaScript
Raw Permalink Normal View History

var EspTool=(()=>{var is=Object.create;var VA=Object.defineProperty;var ss=Object.getOwnPropertyDescriptor;var as=Object.getOwnPropertyNames;var ns=Object.getPrototypeOf,Es=Object.prototype.hasOwnProperty;var G=(t,e)=>()=>(t&&(e=t(t=0)),e);var m=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),K=(t,e)=>{for(var A in e)VA(t,A,{get:e[A],enumerable:!0})},Ae=(t,e,A,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of as(e))!Es.call(t,s)&&s!==A&&VA(t,s,{get:()=>e[s],enumerable:!(i=ss(e,s))||i.enumerable});return t};var L=(t,e,A)=>(A=t!=null?is(ns(t)):{},Ae(e||!t||!t.__esModule?VA(A,"default",{value:t,enumerable:!0}):A,t)),rs=t=>Ae(VA({},"__esModule",{value:!0}),t);var Mi=m((wE,Ri)=>{Ri.exports=function(e){return atob(e)}});var xi=m((_E,Jn)=>{Jn.exports={entry:1074521580,text:"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
`}async returnTrace(){try{await navigator.clipboard.writeText(this.traceLog),console.log("Text copied to clipboard!")}catch(e){console.error("Failed to copy text:",e)}}hexify(e){return Array.from(e).map(A=>A.toString(16).padStart(2,"0")).join("").padEnd(16," ")}hexConvert(e,A=!0){if(A&&e.length>16){let i="",s=e;for(;s.length>0;){let a=s.slice(0,16),n=String.fromCharCode(...a).split("").map(E=>E===" "||E>=" "&&E<="~"&&E!==" "?E:".").join("");s=s.slice(16),i+=`
${this.hexify(a.slice(0,8))} ${this.hexify(a.slice(8))} | ${n}`}return i}else return this.hexify(e)}slipWriter(e){let A=[];A.push(192);for(let i=0;i<e.length;i++)e[i]===219?A.push(219,221):e[i]===192?A.push(219,220):A.push(e[i]);return A.push(192),new Uint8Array(A)}async write(e){let A=this.slipWriter(e);if(this.device.writable){let i=this.device.writable.getWriter();this.tracing&&(console.log("Write bytes"),this.trace(`Write ${A.length} bytes: ${this.hexConvert(A)}`)),await i.write(A),i.releaseLock()}}appendArray(e,A){let i=new Uint8Array(e.length+A.length);return i.set(e),i.set(A,e.length),i}async*readLoop(e){if(this.reader)try{for(;;){let A=new Promise((n,E)=>setTimeout(()=>E(new Error("Read timeout exceeded")),e)),i=await Promise.race([this.reader.read(),A]);if(i===null)break;let{value:s,done:a}=i;if(a||!s)break;yield s}}catch(A){console.error("Error reading from serial port:",A)}finally{this.buffer=new Uint8Array(0)}}async newRead(e,A){if(this.buffer.length>=e){let s=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),s}for(;this.buffer.length<e;){let s=this.readLoop(A),{value:a,done:n}=await s.next();if(n||!a)break;this.buffer=this.appendArray(this.buffer,a)}let i=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),i}async flushInput(){var e;this.reader&&!await this.reader.closed&&(await this.reader.cancel(),this.reader.releaseLock(),this.reader=(e=this.device.readable)===null||e===void 0?void 0:e.getReader())}async flushOutput(){var e,A;this.buffer=new Uint8Array(0),await((e=this.device.writable)===null||e===void 0?void 0:e.getWriter().close()),(A=this.device.writable)===null||A===void 0||A.getWriter().releaseLock()}inWaiting(){return this.buffer.length}detectPanicHandler(e){let A=/G?uru Meditation Error: (?:Core \d panic'ed \(([a-zA-Z ]*)\))?/,i=/F?atal exception \(\d+\): (?:([a-zA-Z ]*)?.*epc)?/,s=new TextDecoder("utf-8").decode(e),a=s.match(A)||s.match(i);if(a){let n=a[1]||a[2],E=`Guru Meditation Error detected${n?` (${n})`:""}`;throw new Error(E)}}async*read(e){var A;this.reader||(this.reader=(A=this.device.readable)===null||A===void 0?void 0:A.getReader());let i=null,s=!1,a=!1;for(;;){let n=this.inWaiting(),E=await this.newRead(n>0?n:1,e);if(!E||E.length===0){let r=i===null?a?"Serial data stream stopped: Possible serial noise or corruption.":"No serial data received.":"Packet content transfer stopped";throw this.trace(r),new Error(r)}this.trace(`Read ${E.length} bytes: ${this.hexConvert(E)}`);let o=0;for(;o<E.length;){let r=E[o++];if(i===null)if(r===this.SLIP_END)i=new Uint8Array(0);else{this.trace(`Read invalid data: ${this.hexConvert(E)}`);let h=await this.newRead(this.inWaiting(),e);throw this.trace(`Remaining data in serial buffer: ${this.hexConvert(h)}`),this.detectPanicHandler(new Uint8Array([...E,...h||[]])),new Error(`Invalid head of packet (0x${r.toString(16)}): Possible serial noise or corruption.`)}else if(s)if(s=!1,r===this.SLIP_ESC_END)i=this.appendArray(i,new Uint8Array([this.SLIP_END]));else if(r===this.SLIP_ESC_ESC)i=this.appendArray(i,new Uint8Array([this.SLIP_ESC]));else{this.trace(`Read invalid data: ${this.hexConvert(E)}`);let h=await this.newRead(this.inWaiting(),e);throw this.trace(`Remaining data in serial buffer: ${this.hexConvert(h)}`),this.detectPanicHandler(new Uint8Array([...E,...h||[]])),new Error(`Invalid SLIP escape (0xdb, 0x${r.toString(16)})`)}else r===this.SLIP_ESC?s=!0:r===this.SLIP_END?(this.trace(`Received full packet: ${this.hexConvert(i)}`),this.buffer=this.appendArray(this.buffer,E.slice(o)),yield i,i=null,a=!0):i=this.appendArray(i,new Uint8Array([r]))}}}async*rawRead(){if(this.reader)try{for(;;){let{value:e,done:A}=await this.reader.read();if(A||!e)break;this.tracing&&(console.log("Raw Read bytes"),this.trace(`Read ${e.length} bytes: ${this.hexConvert(e)}`)),yield e}}catch(e){console.error("Error reading from serial port:",e)}finally{this.buffer=new Uint8Array(0)}}async setRTS(e){await this.device.setSignals({requestToSend:e}),await this.setDTR(this._DTR_state)}async setDTR(e){this._DTR_state=e,await this.device.setSignals({dataTerminalReady
This chip needs to be in download mode.`,h&&(w=`Download mode successfully detected, but getting no sync reply:
The serial TX path seems to be down.`)),w}constructResetSequence(e){if(e!=="no_reset"){if(e==="usb_reset"||this.transport.getPid()===this.USB_JTAG_SERIAL_PID){if(this.resetConstructors.usbJTAGSerialReset)return this.debug("using USB JTAG Serial Reset"),[this.resetConstructors.usbJTAGSerialReset(this.transport)]}else if(this.resetConstructors.classicReset)return this.debug("using Classic Serial Reset"),[this.resetConstructors.classicReset(this.transport,50),this.resetConstructors.classicReset(this.transport,550)]}return[]}async connect(e="default_reset",A=7,i=!0){let s;this.info("Connecting...",!1),await this.transport.connect(this.romBaudrate,this.serialOptions);let a=this.constructResetSequence(e);for(let n=0;n<A;n++){let E=a.length>0?a[n%a.length]:null;if(s=await this._connectAttempt(e,E),s==="success")break}if(s!=="success")throw new U("Failed to connect with the device");if(this.debug("Connect attempt successful."),this.info(`
\r`,!1),i){let n=await this.readReg(this.CHIP_DETECT_MAGIC_REG_ADDR)>>>0;this.debug("Chip Magic "+n.toString(16));let E=await tE(n);if(this.chip===null)throw new U(`Unexpected CHIP magic value ${n}. Failed to autodetect chip type.`);this.chip=E}}async detectChip(e="default_reset"){await this.connect(e),this.info("Detecting chip type... ",!1),this.chip!=null?this.info(this.chip.CHIP_NAME):this.info("unknown!")}async checkCommand(e="",A=null,i=new Uint8Array(0),s=0,a=this.DEFAULT_TIMEOUT){this.debug("check_command "+e);let n=await this.command(A,i,s,void 0,a);return n[1].length>4?n[1]:n[0]}async memBegin(e,A,i,s){if(this.IS_STUB){let n=s,E=s+e,o=await ot(this.chip.CHIP_NAME);if(o){let r=[[o.bss_start||o.data_start,o.data_start+o.decodedData.length],[o.text_start,o.text_start+o.decodedText.length]];for(let[h,w]of r)if(n<w&&E>h)throw new U(`Software loader is resident at 0x${h.toString(16).padStart(8,"0")}-0x${w.toString(16).padStart(8,"0")}.
Can't load binary at overlapping address range 0x${n.toString(16).padStart(8,"0")}-0x${E.toString(16).padStart(8,"0")}.
Either change binary loading address, or use the no-stub option to disable the software loader.`)}}this.debug("mem_begin "+e+" "+A+" "+i+" "+s.toString(16));let a=this._appendArray(this._intToByteArray(e),this._intToByteArray(A));a=this._appendArray(a,this._intToByteArray(i)),a=this._appendArray(a,this._intToByteArray(s)),await this.checkCommand("enter RAM download mode",this.ESP_MEM_BEGIN,a)}checksum(e,A=this.ESP_CHECKSUM_MAGIC){for(let i=0;i<e.length;i++)A^=e[i];return A}async memBlock(e,A){let i=this._appendArray(this._intToByteArray(e.length),this._intToByteArray(A));i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,this._intToByteArray(0)),i=this._appendArray(i,e);let s=this.checksum(e);await this.checkCommand("write to target RAM",this.ESP_MEM_DATA,i,s)}async memFinish(e){let A=e===0?1:0,i=this._appendArray(this._intToByteArray(A),this._intToByteArray(e));await this.checkCommand("leave RAM download mode",this.ESP_MEM_END,i,void 0,200)}async flashSpiAttach(e){let A=this._intToByteArray(e);await this.checkCommand("configure SPI flash pins",this.ESP_SPI_ATTACH,A)}timeoutPerMb(e,A){let i=e*(A/1e6);return i<3e3?3e3:i}async flashBegin(e,A){let i=Math.floor((e+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),s=this.chip.getEraseSize(A,e),a=new Date,n=a.getTime(),E=3e3;this.IS_STUB==!1&&(E=this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB,e)),this.debug("flash begin "+s+" "+i+" "+this.FLASH_WRITE_SIZE+" "+A+" "+e);let o=this._appendArray(this._intToByteArray(s),this._intToByteArray(i));o=this._appendArray(o,this._intToByteArray(this.FLASH_WRITE_SIZE)),o=this._appendArray(o,this._intToByteArray(A)),this.IS_STUB==!1&&(o=this._appendArray(o,this._intToByteArray(0))),await this.checkCommand("enter Flash download mode",this.ESP_FLASH_BEGIN,o,void 0,E);let r=a.getTime();return e!=0&&this.IS_STUB==!1&&this.info("Took "+(r-n)/1e3+"."+(r-n)%1e3+"s to erase flash block"),i}async flashDeflBegin(e,A,i){let s=Math.floor((A+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),a=Math.floor((e+this.FLASH_WRITE_SIZE-1)/this.FLASH_WRITE_SIZE),n=new Date,E=n.getTime(),o,r;this.IS_STUB?(o=e,r=this.DEFAULT_TIMEOUT):(o=a*this.FLASH_WRITE_SIZE,r=this.timeoutPerMb(this.ERASE_REGION_TIMEOUT_PER_MB,o)),this.info("Compressed "+e+" bytes to "+A+"...");let h=this._appendArray(this._intToByteArray(o),this._intToByteArray(s));h=this._appendArray(h,this._intToByteArray(this.FLASH_WRITE_SIZE)),h=this._appendArray(h,this._intToByteArray(i)),(this.chip.CHIP_NAME==="ESP32-S2"||this.chip.CHIP_NAME==="ESP32-S3"||this.chip.CHIP_NAME==="ESP32-C3"||this.chip.CHIP_NAME==="ESP32-C2")&&this.IS_STUB===!1&&(h=this._appendArray(h,this._intToByteArray(0))),await this.checkCommand("enter compressed flash mode",this.ESP_FLASH_DEFL_BEGIN,h,void 0,r);let w=n.getTime();return e!=0&&this.IS_STUB===!1&&this.info("Took "+(w-E)/1e3+"."+(w-E)%1e3+"s to erase flash block"),s}async flashBlock(e,A,i){let s=this._appendArray(this._intToByteArray(e.length),this._intToByteArray(A));s=this._appendArray(s,this._intToByteArray(0)),s=this._appendArray(s,this._intToByteArray(0)),s=this._appendArray(s,e);let a=this.checksum(e);await this.checkCommand("write to target Flash after seq "+A,this.ESP_FLASH_DATA,s,a,i)}async flashDeflBlock(e,A,i){let s=this._appendArray(this._intToByteArray(e.length),this._intToByteArray(A));s=this._appendArray(s,this._intToByteArray(0)),s=this._appendArray(s,this._intToByteArray(0)),s=this._appendArray(s,e);let a=this.checksum(e);this.debug("flash_defl_block "+e[0].toString(16)+" "+e[1].toString(16)),await this.checkCommand("write compressed data to flash after seq "+A,this.ESP_FLASH_DEFL_DATA,s,a,i)}async flashFinish(e=!1){let A=e?0:1,i=this._intToByteArray(A);await this.checkCommand("leave Flash mode",this.ESP_FLASH_END,i)}async flashDeflFinish(e=!1){let A=e?0:1,i=this._intToByteArray(A);await this.checkCommand("leave compressed flash mode",this.ESP_FLASH_DEFL_END,i)}async runSpiflashCommand(e,A,i){let E=this.chip.SPI_REG_BASE,o=E+0,r=E+this.chip.SPI_USR_OFFS,h=E+this.chip.SPI_USR1_OFFS,w=E+this.chip.SPI_USR2_OFFS,c=E+this.chip.SPI_W0
/*! Bundled license information:
pako/dist/pako.esm.mjs:
(*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
*/