Download tools/dbg4.mjs from HelloSun/esp32emu: direct link, hf CLI and curl.
- Browser
- Download file 1.04 kB
-
https://huggingface.co/spaces/HelloSun/esp32emu/resolve/main/tools/dbg4.mjs
- Command line
-
hf download hf://spaces/HelloSun/esp32emu/tools/dbg4.mjs
-
curl -L -o dbg4.mjs https://huggingface.co/spaces/HelloSun/esp32emu/resolve/main/tools/dbg4.mjs
1.04 kB
| import fs from 'fs'; | |
| import { ESP32 } from '../web/js/soc.js'; | |
| const romDir = new URL('../web/rom/', import.meta.url).pathname; | |
| const soc = new ESP32({}); | |
| soc.loadRoms(fs.readFileSync(romDir + 'esp32-v3-rom.bin'), fs.readFileSync(romDir + 'esp32-v3-rom-app.bin')); | |
| soc.setFlash(fs.readFileSync(process.argv[2])); | |
| soc.enablePsram(false); | |
| soc.onUart = (n, b) => process.stdout.write(String.fromCharCode(b)); | |
| soc.reset('power'); | |
| const fc = soc.flashChip; const ot = fc.transaction.bind(fc); | |
| let cnt = 0; | |
| fc.transaction = (cmd, addr, tx, rx) => { if (cnt++ < 60 && cmd != 0x05) console.log('FLASH cmd', cmd.toString(16), 'addr', addr.toString(16), 'tx', tx && tx.length, 'rx', rx); return ot(cmd, addr, tx, rx); }; | |
| const ow = soc.dportWrite.bind(soc); | |
| soc.dportWrite = (c, a, s, v) => { if (a >= 0x3ff10000 && a < 0x3ff13000) if (v !== 0 && v !== 0x100) console.log('MMU', (a>>>0).toString(16), v); return ow(c, a, s, v); }; | |
| soc.requestReset = (k) => { console.log('RESET', k); process.exit(0); }; | |
| for (let k = 0; k < 4000; k++) soc.run(100000); | |