vak: (Default)
[personal profile] vak
Проблема отсутствия ROM для ESP32-C3 успешно решена. Обещаного файла от Espressif я не дождался, но смог считать содержимое ROM0 и ROM1 из самого чипа. Делается это на удивление просто: в состав официального Development Kit входит утилитка, умеющая вычитывать память в файл.
esptool.py dump_mem 0x40000000 262144 irom0.bin
esptool.py dump_mem 0x3ff00000 131072 drom1.bin
Засунул я эти бинарники в симулятор и запустил. Тут же среди первых команд обнаружились обращения к недокументированным регистрам процессора.



Обозначенные сиреневым регистры ucustom0 и ucustom1 на адресах 0x800-0x801 соответствуют диапазону Custom User CSRs:



Там дальше есть ещё обращения к ucustom2 на адресе 0x802. Судя по всему, это какой-то быстрый счётчик времени. Используется в ROM для ожидания в пределах десятков и сотен микросекунд. Оно бы и ладно, но наличие регистров, отсутствующих в документации, настораживает.

Date: 2021-06-30 23:40 (UTC)
From: [identity profile] johnconst.livejournal.com
https://github.com/xoreaxeaxeax/sandsifter
https://github.com/cattius/opcodetester

Breaking the x86 Instruction Set
https://www.youtube.com/watch?v=KrksBdWcZgQ