Прошло некоторое время, с тех пор как были последние подвижки над этой проблемой, но сейчас уже начинает что-то вырисоввываться.
Я оказался полным идиотом и несколько дней потратил на брутфорс поиск нестандартного полинома дл CRC-16 и как-то недоглядел, что это чексуммой оказалась простая сумма байт в посылке в порядке BIG ENDIAN. ну а после задача развалилась и стала тривиальной, протокол оказался прост как три копейки одной монетой. отдельное время потребовалось на написание пары дешевых, но очень сердитых парсеров на луа, которые мне живехонько сварганили базу данных по контроллерам STC, их меджикам, а после дополнили это инфой из CDB файла от Keil’а Сейчас это тупо табличка луашная, которую просто обновлять вмерживая в нее инфу. Не шибко чистое решение для бд, но пока сойдет. А уж будет тормозить — переедем на sqlite.
Ладно, мой ‘proof-of-concept’ код, который пока только и умеет, что запрашивать инфо пакет и декодировать его, и то не полностью, в действии можно увидеть ниже:
[necromant@lamia stcdude]$ ./stcdude -d ./mcudb/stc12x.lua -p /dev/ttyUSB1 -i STC ISP Tool. (c) Necromant 2012 Using mcudb file: ./mcudb/stc12x.lua Loading mcudb ./init.lua Done with result 0 Loading mcudb ./mcudb/stc12x.lua Done with result 0 Using /dev/ttyUSB1 @ 19200 fd is 3 Waiting for an infopacket from MCU... --- 8< --- Part name: STC12C5A32S2 Magic bytes: D170 IRAM size: 256 (0x100) bytes XRAM size: 1024 (0x400) bytes IROM size: 32768 (0x8000) bytes Tested ops: FixMe: implement reading of tested ops Description: 8051-based microcontroller with 1T(1-clock) High-Speed Core, Dual DPTR, 36-44 I/O Lines, 2 Timers/Counters, 2 PCA Timers, Alternative build-in oscillator, Independent Baud Rate Generator, Programmable Clock-Out, 32K bytes flash ROM, 1280 bytes data RAM, On-chip EEPROM, 2 UARTs, WDT, ISP/IAP, A/D, CCP/PWMm --- 8< ---
Все остальное - в этапе напилинга, копания показали, что существует по меньшей мере 3 вариации ISP протокола, так что мы далеки от полной поддержки всего, что только есть. Но их добавить будет уже просто. Желающие отведать чудной препреальфы могут сходить взять копию с моего шитхаба.