Add and use MCU model database
This commit is contained in:
parent
8c960d9d5e
commit
903f6ca451
@ -19,14 +19,19 @@ for i in range(MCU_TABLE_SIZE):
|
||||
inp.seek(mcu_record_offset)
|
||||
mcu_record = inp.read(MCU_RECORD_SIZE)
|
||||
flags, name_ptr, mcu_id, code_size, ee_size, _, total_size, _ = struct.unpack("<8I", mcu_record)
|
||||
mcu_id &= 0xffff
|
||||
|
||||
mcu_name_offset = MCU_NAMES_OFFSET + (name_ptr - MCU_NAMES_PTR_OFFSET)
|
||||
inp.seek(mcu_name_offset)
|
||||
name_str = inp.read(16).split(b'\00')[0].decode("ascii")
|
||||
|
||||
# 1 KB are reserved for some reason. in some cases even more. very odd.
|
||||
if ee_size > 0 and not name_str.startswith("IAP"):
|
||||
ee_size -= 1024
|
||||
# XXX: 1 KB are reserved one *some* MCUs for some reason
|
||||
#if ee_size > 0 and not name_str.startswith("IAP"):
|
||||
# ee_size -= 1024
|
||||
|
||||
# STC12C54xx always have 12 KB eeprom
|
||||
if name_str.startswith("STC12C54"):
|
||||
ee_size = 12 * 1024
|
||||
|
||||
print("MCUModel(name='%s', magic=0x%02x%02x, total=%d, code=%d, eeprom=%d)," %
|
||||
(name_str, mcu_id >> 8, mcu_id & 0xff, total_size, code_size, ee_size))
|
||||
|
1296
doc/dump-mcu.txt
1296
doc/dump-mcu.txt
File diff suppressed because it is too large
Load Diff
@ -16,6 +16,9 @@ D364 (STC11F08XE)
|
||||
^ pointer to name string
|
||||
^ feature flags?
|
||||
|
||||
NOTE: the upper word of the mcu id actually contains something else for STC12C54xx
|
||||
series, and the eeprom size is broken.
|
||||
|
||||
000509a0 00 d8 00 00 00 00 00 00 00 00 01 00 00 00 00 00 |................|
|
||||
^ total flash size (incl. reserved space)
|
||||
(32 bit le)
|
||||
|
721
stcgal.py
721
stcgal.py
@ -28,13 +28,13 @@ TODO:
|
||||
- some more documentation / comments
|
||||
- private member naming, other style issues
|
||||
|
||||
- MCU database
|
||||
- Prepare for STC89/STC15 protocols
|
||||
"""
|
||||
|
||||
import serial
|
||||
import sys, os, time, struct
|
||||
import argparse
|
||||
import collections
|
||||
|
||||
DEBUG = False
|
||||
|
||||
@ -55,7 +55,6 @@ class Utils:
|
||||
try: return int(val, 0)
|
||||
except: raise ValueError("invalid integer")
|
||||
|
||||
|
||||
class BaudType:
|
||||
"""Check baud rate for validity"""
|
||||
|
||||
@ -67,6 +66,674 @@ class BaudType:
|
||||
|
||||
def __repr__(self): return "baudrate"
|
||||
|
||||
class MCUModelDatabase:
|
||||
MCUModel = collections.namedtuple("MCUModel", ["name", "magic", "total", "code", "eeprom"])
|
||||
|
||||
models = (
|
||||
MCUModel(name='STC15F2K08S2', magic=0xf401, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC15F2K16S2', magic=0xf402, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC15F2K24S2', magic=0xf403, total=65536, code=24576, eeprom=37888),
|
||||
MCUModel(name='STC15F2K32S2', magic=0xf404, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC15F2K40S2', magic=0xf405, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC15F2K48S2', magic=0xf406, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC15F2K56S2', magic=0xf407, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC15F2K60S2', magic=0xf408, total=65536, code=61440, eeprom=1024),
|
||||
MCUModel(name='IAP15F2K61S2', magic=0xf449, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC15L2K08S2', magic=0xf481, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC15L2K16S2', magic=0xf482, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC15L2K24S2', magic=0xf483, total=65536, code=24576, eeprom=37888),
|
||||
MCUModel(name='STC15L2K32S2', magic=0xf484, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC15L2K40S2', magic=0xf485, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC15L2K48S2', magic=0xf486, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC15L2K56S2', magic=0xf487, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC15L2K60S2', magic=0xf488, total=65536, code=61440, eeprom=1024),
|
||||
MCUModel(name='IAP15L2K61S2', magic=0xf4c9, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC15F404AD', magic=0xf40a, total=65536, code=4096, eeprom=9216),
|
||||
MCUModel(name='STC15F408AD', magic=0xf40b, total=65536, code=8192, eeprom=5120),
|
||||
MCUModel(name='STC15F412AD', magic=0xf40c, total=65536, code=12288, eeprom=1024),
|
||||
MCUModel(name='IAP15F413AD', magic=0xf44d, total=65536, code=13312, eeprom=0),
|
||||
MCUModel(name='STC15L404AD', magic=0xf48a, total=65536, code=4096, eeprom=9216),
|
||||
MCUModel(name='STC15L408AD', magic=0xf48b, total=65536, code=8192, eeprom=5120),
|
||||
MCUModel(name='STC15L412AD', magic=0xf48c, total=65536, code=12288, eeprom=1024),
|
||||
MCUModel(name='IAP15L413AD', magic=0xf4cd, total=65536, code=13312, eeprom=0),
|
||||
MCUModel(name='STC15W101SW', magic=0xf501, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15W102SW', magic=0xf502, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15W103SW', magic=0xf503, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15W104SW', magic=0xf504, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15W105SW', magic=0xf545, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15W101S', magic=0xf508, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15W102S', magic=0xf50a, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15W103S', magic=0xf50b, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15W104S', magic=0xf50c, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15W105S', magic=0xf54d, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15W201S', magic=0xf511, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15W202S', magic=0xf512, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15W203S', magic=0xf513, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15W204S', magic=0xf514, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15W205S', magic=0xf555, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15F100W', magic=0xf290, total=8192, code=512, eeprom=0),
|
||||
MCUModel(name='STC15F101W', magic=0xf291, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15F102W', magic=0xf292, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15F103W', magic=0xf293, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15F104W', magic=0xf294, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15F105W', magic=0xf2b5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15F100', magic=0xf298, total=8192, code=512, eeprom=0),
|
||||
MCUModel(name='STC15F101', magic=0xf299, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15F102', magic=0xf29a, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15F103', magic=0xf29b, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15F104', magic=0xf29c, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15F105', magic=0xf2bd, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15L100W', magic=0xf2d0, total=8192, code=512, eeprom=0),
|
||||
MCUModel(name='STC15L101W', magic=0xf2d1, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15L102W', magic=0xf2d2, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15L103W', magic=0xf2d3, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15L104W', magic=0xf2d4, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15L105W', magic=0xf2f5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15L100', magic=0xf2d8, total=8192, code=512, eeprom=0),
|
||||
MCUModel(name='STC15L101', magic=0xf2d9, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC15L102', magic=0xf2da, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC15L103', magic=0xf2db, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC15L104', magic=0xf2dc, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15L105', magic=0xf2fd, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15F104E', magic=0xf294, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC15L104E', magic=0xf2d4, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC15F204EA', magic=0xf394, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15F205EA', magic=0xf3b5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC15L204EA', magic=0xf3d4, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='IAP15L205EA', magic=0xf3f5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC12C5A08S2', magic=0xd164, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12C5A16S2', magic=0xd168, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12C5A32S2', magic=0xd170, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12C5A40S2', magic=0xd174, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12C5A48S2', magic=0xd178, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12C5A52S2', magic=0xd17a, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12C5A56S2', magic=0xd17c, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12C5A60S2', magic=0xd17e, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12C5A08AD', magic=0xd144, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12C5A16AD', magic=0xd148, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12C5A32AD', magic=0xd150, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12C5A40AD', magic=0xd154, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12C5A48AD', magic=0xd158, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12C5A52AD', magic=0xd15a, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12C5A56AD', magic=0xd15c, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12C5A60AD', magic=0xd15e, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12C5A08CCP', magic=0xd124, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12C5A16CCP', magic=0xd128, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12C5A32CCP', magic=0xd130, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12C5A40CCP', magic=0xd134, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12C5A48CCP', magic=0xd138, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12C5A52CCP', magic=0xd13a, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12C5A56CCP', magic=0xd13c, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12C5A60CCP', magic=0xd13e, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12C5A08X', magic=0xd104, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC12C5A16X', magic=0xd108, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC12C5A32X', magic=0xd110, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC12C5A40X', magic=0xd114, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC12C5A48X', magic=0xd118, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC12C5A52X', magic=0xd11a, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC12C5A56X', magic=0xd11c, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC12C5A60X', magic=0xd11e, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12C5A08S2', magic=0xd163, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12C5A16S2', magic=0xd167, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12C5A32S2', magic=0xd16f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12C5A40S2', magic=0xd173, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12C5A48S2', magic=0xd177, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12C5A52S2', magic=0xd179, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12C5A56S2', magic=0xd17b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12C5A60S2', magic=0xd17d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12C5A62S2', magic=0xd17f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12C5A08AD', magic=0xd143, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12C5A16AD', magic=0xd147, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12C5A32AD', magic=0xd14f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12C5A40AD', magic=0xd153, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12C5A48AD', magic=0xd157, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12C5A52AD', magic=0xd159, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12C5A56AD', magic=0xd15b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12C5A60AD', magic=0xd15d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12C5A62AD', magic=0xd15f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12C5A08CCP', magic=0xd123, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12C5A16CCP', magic=0xd127, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12C5A32CCP', magic=0xd12f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12C5A40CCP', magic=0xd133, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12C5A48CCP', magic=0xd137, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12C5A52CCP', magic=0xd139, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12C5A56CCP', magic=0xd13b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12C5A60CCP', magic=0xd13d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12C5A62CCP', magic=0xd13f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12C5A08', magic=0xd103, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12C5A16', magic=0xd107, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12C5A32', magic=0xd10f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12C5A40', magic=0xd113, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12C5A48', magic=0xd117, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12C5A52', magic=0xd119, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12C5A56', magic=0xd11b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12C5A60', magic=0xd11d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12C5A62', magic=0xd11f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='STC12LE5A08S2', magic=0xd1e4, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12LE5A16S2', magic=0xd1e8, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12LE5A32S2', magic=0xd1f0, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12LE5A40S2', magic=0xd1f4, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12LE5A48S2', magic=0xd1f8, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12LE5A52S2', magic=0xd1fa, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12LE5A56S2', magic=0xd1fc, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12LE5A60S2', magic=0xd1fe, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12LE5A08AD', magic=0xd1c4, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12LE5A16AD', magic=0xd1c8, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12LE5A32AD', magic=0xd1d0, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12LE5A40AD', magic=0xd1d4, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12LE5A48AD', magic=0xd1d8, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12LE5A52AD', magic=0xd1da, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12LE5A56AD', magic=0xd1dc, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12LE5A60AD', magic=0xd1de, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12LE5A08CCP', magic=0xd1a4, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC12LE5A16CCP', magic=0xd1a8, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC12LE5A32CCP', magic=0xd1b0, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC12LE5A40CCP', magic=0xd1b4, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC12LE5A48CCP', magic=0xd1b8, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC12LE5A52CCP', magic=0xd1ba, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC12LE5A56CCP', magic=0xd1bc, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC12LE5A60CCP', magic=0xd1be, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC12LE5A08X', magic=0xd184, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC12LE5A16X', magic=0xd188, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC12LE5A32X', magic=0xd190, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC12LE5A40X', magic=0xd194, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC12LE5A48X', magic=0xd198, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC12LE5A52X', magic=0xd19a, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC12LE5A56X', magic=0xd19c, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC12LE5A60X', magic=0xd19e, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A08S2', magic=0xd1e3, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A16S2', magic=0xd1e7, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A32S2', magic=0xd1ef, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A40S2', magic=0xd1f3, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A48S2', magic=0xd1f7, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A52S2', magic=0xd1f9, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A56S2', magic=0xd1fb, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A60S2', magic=0xd1fd, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A62S2', magic=0xd1ff, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A08AD', magic=0xd1c3, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A16AD', magic=0xd1c7, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A32AD', magic=0xd1cf, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A40AD', magic=0xd1d3, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A48AD', magic=0xd1d7, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A52AD', magic=0xd1d9, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A56AD', magic=0xd1db, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A60AD', magic=0xd1dd, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A62AD', magic=0xd1df, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A08CCP', magic=0xd1a3, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A16CCP', magic=0xd1a7, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A32CCP', magic=0xd1af, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A40CCP', magic=0xd1b3, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A48CCP', magic=0xd1b7, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A52CCP', magic=0xd1b9, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A56CCP', magic=0xd1bb, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A60CCP', magic=0xd1bd, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A62CCP', magic=0xd1bf, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A08', magic=0xd183, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A16', magic=0xd187, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A32', magic=0xd18f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A40', magic=0xd193, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A48', magic=0xd197, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A52', magic=0xd199, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A56', magic=0xd19b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A60', magic=0xd19d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP12LE5A62', magic=0xd19f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='STC10F02XE', magic=0xd262, total=16384, code=2048, eeprom=12288),
|
||||
MCUModel(name='STC10F04XE', magic=0xd264, total=16384, code=4096, eeprom=10240),
|
||||
MCUModel(name='STC10F06XE', magic=0xd266, total=16384, code=6144, eeprom=8192),
|
||||
MCUModel(name='STC10F08XE', magic=0xd268, total=16384, code=8192, eeprom=6144),
|
||||
MCUModel(name='STC10F10XE', magic=0xd26a, total=16384, code=10240, eeprom=4096),
|
||||
MCUModel(name='STC10F12XE', magic=0xd26c, total=16384, code=12288, eeprom=2048),
|
||||
MCUModel(name='STC10F02X', magic=0xd242, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='STC10F04X', magic=0xd244, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='STC10F06X', magic=0xd246, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='STC10F08X', magic=0xd248, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='STC10F10X', magic=0xd24a, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='STC10F12X', magic=0xd24c, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='STC10F02', magic=0xd202, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='STC10F04', magic=0xd204, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='STC10F06', magic=0xd206, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='STC10F08', magic=0xd208, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='STC10F10', magic=0xd20a, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='STC10F12', magic=0xd20c, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10F02XE', magic=0xd272, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP10F04XE', magic=0xd274, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP10F06XE', magic=0xd276, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='IAP10F08XE', magic=0xd278, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP10F10XE', magic=0xd27a, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='IAP10F12XE', magic=0xd27c, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10F14X', magic=0xd27e, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='IAP10F02', magic=0xd232, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP10F04', magic=0xd234, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP10F06', magic=0xd236, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='IAP10F08', magic=0xd238, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP10F10', magic=0xd23a, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='IAP10F12', magic=0xd23c, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10F14', magic=0xd23e, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='STC10L02XE', magic=0xd2e2, total=16384, code=2048, eeprom=12288),
|
||||
MCUModel(name='STC10L04XE', magic=0xd2e4, total=16384, code=4096, eeprom=10240),
|
||||
MCUModel(name='STC10L06XE', magic=0xd2e6, total=16384, code=6144, eeprom=8192),
|
||||
MCUModel(name='STC10L08XE', magic=0xd2e8, total=16384, code=8192, eeprom=6144),
|
||||
MCUModel(name='STC10L10XE', magic=0xd2ea, total=16384, code=10240, eeprom=4096),
|
||||
MCUModel(name='STC10L12XE', magic=0xd2ec, total=16384, code=12288, eeprom=2048),
|
||||
MCUModel(name='STC10L02X', magic=0xd2c2, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='STC10L04X', magic=0xd2c4, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='STC10L06X', magic=0xd2c6, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='STC10L08X', magic=0xd2c8, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='STC10L10X', magic=0xd2ca, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='STC10L12X', magic=0xd2cc, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='STC10L02', magic=0xd282, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='STC10L04', magic=0xd284, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='STC10L06', magic=0xd286, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='STC10L08', magic=0xd288, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='STC10L10', magic=0xd28a, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='STC10L12', magic=0xd28c, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10L02XE', magic=0xd2f2, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP10L04XE', magic=0xd2f4, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP10L06XE', magic=0xd2f6, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='IAP10L08XE', magic=0xd2f8, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP10L10XE', magic=0xd2fa, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='IAP10L12XE', magic=0xd2fc, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10L14X', magic=0xd2fe, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='IAP10L02', magic=0xd2b2, total=16384, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP10L04', magic=0xd2b4, total=16384, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP10L06', magic=0xd2b6, total=16384, code=6144, eeprom=0),
|
||||
MCUModel(name='IAP10L08', magic=0xd2b8, total=16384, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP10L10', magic=0xd2ba, total=16384, code=10240, eeprom=0),
|
||||
MCUModel(name='IAP10L12', magic=0xd2bc, total=16384, code=12288, eeprom=0),
|
||||
MCUModel(name='IAP10L14', magic=0xd2be, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='STC11F01E', magic=0xe221, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC11F02E', magic=0xe222, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC11F03E', magic=0xe223, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC11F04E', magic=0xe224, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC11F05E', magic=0xe265, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC11F01', magic=0xe201, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='STC11F02', magic=0xe202, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='STC11F03', magic=0xe203, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='STC11F04', magic=0xe204, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='STC11F05', magic=0xe245, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11F01E', magic=0xe231, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='IAP11F02E', magic=0xe232, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP11F03E', magic=0xe233, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='IAP11F04E', magic=0xe234, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP11F05E', magic=0xe275, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11F01', magic=0xe211, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='IAP11F02', magic=0xe212, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP11F03', magic=0xe213, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='IAP11F04', magic=0xe214, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP11F05', magic=0xe255, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11F06', magic=0xe276, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC11L01E', magic=0xe2a1, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC11L02E', magic=0xe2a2, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC11L03E', magic=0xe2a3, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC11L04E', magic=0xe2a4, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC11L05E', magic=0xe2e5, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC11L01', magic=0xe281, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='STC11L02', magic=0xe282, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='STC11L03', magic=0xe283, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='STC11L04', magic=0xe284, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='STC11L05', magic=0xe2c5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11L01E', magic=0xe2b1, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='IAP11L02E', magic=0xe2b2, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP11L03E', magic=0xe2b3, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='IAP11L04E', magic=0xe2b4, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP11L05E', magic=0xe2f5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11L01', magic=0xe291, total=8192, code=1024, eeprom=0),
|
||||
MCUModel(name='IAP11L02', magic=0xe292, total=8192, code=2048, eeprom=0),
|
||||
MCUModel(name='IAP11L03', magic=0xe293, total=8192, code=3072, eeprom=0),
|
||||
MCUModel(name='IAP11L04', magic=0xe294, total=8192, code=4096, eeprom=0),
|
||||
MCUModel(name='IAP11L05', magic=0xe2d5, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='IAP11L06', magic=0xe2f6, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC11F08XE', magic=0xd364, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC11F16XE', magic=0xd368, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC11F20XE', magic=0xd36a, total=65536, code=20480, eeprom=30720),
|
||||
MCUModel(name='STC11F32XE', magic=0xd370, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC11F40XE', magic=0xd374, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC11F48XE', magic=0xd378, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC11F52XE', magic=0xd37a, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC11F56XE', magic=0xd37c, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC11F60XE', magic=0xd37e, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC11F08X', magic=0xd344, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC11F16X', magic=0xd348, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC11F20X', magic=0xd34a, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='STC11F32X', magic=0xd350, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC11F40X', magic=0xd354, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC11F48X', magic=0xd358, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC11F52X', magic=0xd35a, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC11F56X', magic=0xd35c, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC11F60X', magic=0xd35e, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='STC11F08', magic=0xd304, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC11F16', magic=0xd308, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC11F20', magic=0xd30a, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='STC11F32', magic=0xd310, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC11F40', magic=0xd314, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC11F48', magic=0xd318, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC11F52', magic=0xd31a, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC11F56', magic=0xd31c, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC11F60', magic=0xd31e, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11F08XE', magic=0xd363, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11F16XE', magic=0xd367, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11F20XE', magic=0xd369, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11F32XE', magic=0xd36f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11F40XE', magic=0xd373, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11F48XE', magic=0xd377, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11F52XE', magic=0xd379, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11F56XE', magic=0xd37b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11F60XE', magic=0xd37d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11F08X', magic=0xd343, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11F16X', magic=0xd347, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11F20X', magic=0xd349, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11F32X', magic=0xd34f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11F40X', magic=0xd353, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11F48X', magic=0xd357, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11F52X', magic=0xd359, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11F56X', magic=0xd35b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11F60X', magic=0xd35d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11F62X', magic=0xd35f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP11F08', magic=0xd303, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11F16', magic=0xd307, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11F20', magic=0xd309, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11F32', magic=0xd30f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11F40', magic=0xd313, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11F48', magic=0xd317, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11F52', magic=0xd319, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11F56', magic=0xd31b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11F60', magic=0xd31d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11F62', magic=0xd31f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='STC11L08XE', magic=0xd3e4, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC11L16XE', magic=0xd3e8, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC11L20XE', magic=0xd3ea, total=65536, code=20480, eeprom=30720),
|
||||
MCUModel(name='STC11L32XE', magic=0xd3f0, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC11L40XE', magic=0xd3f4, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC11L48XE', magic=0xd3f8, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC11L52XE', magic=0xd3fa, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC11L56XE', magic=0xd3fc, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC11L60XE', magic=0xd3fe, total=65536, code=61440, eeprom=2048),
|
||||
MCUModel(name='STC11L08X', magic=0xd3c4, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC11L16X', magic=0xd3c8, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC11L20X', magic=0xd3ca, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='STC11L32X', magic=0xd3d0, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC11L40X', magic=0xd3d4, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC11L48X', magic=0xd3d8, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC11L52X', magic=0xd3da, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC11L56X', magic=0xd3dc, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC11L60X', magic=0xd3de, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='STC11L08', magic=0xd384, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='STC11L16', magic=0xd388, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='STC11L20', magic=0xd38a, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='STC11L32', magic=0xd390, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='STC11L40', magic=0xd394, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='STC11L48', magic=0xd398, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='STC11L52', magic=0xd39a, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='STC11L56', magic=0xd39c, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='STC11L60', magic=0xd39e, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11L08XE', magic=0xd3e3, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11L16XE', magic=0xd3e7, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11L20XE', magic=0xd3e9, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11L32XE', magic=0xd3ef, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11L40XE', magic=0xd3f3, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11L48XE', magic=0xd3f7, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11L52XE', magic=0xd3f9, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11L56XE', magic=0xd3fb, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11L60XE', magic=0xd3fd, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11L08X', magic=0xd3c3, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11L16X', magic=0xd3c7, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11L20X', magic=0xd3c9, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11L32X', magic=0xd3cf, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11L40X', magic=0xd3d3, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11L48X', magic=0xd3d7, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11L52X', magic=0xd3d9, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11L56X', magic=0xd3db, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11L60X', magic=0xd3dd, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11L62X', magic=0xd3df, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='IAP11L08', magic=0xd383, total=65536, code=8192, eeprom=0),
|
||||
MCUModel(name='IAP11L16', magic=0xd387, total=65536, code=16384, eeprom=0),
|
||||
MCUModel(name='IAP11L20', magic=0xd389, total=65536, code=20480, eeprom=0),
|
||||
MCUModel(name='IAP11L32', magic=0xd38f, total=65536, code=32768, eeprom=0),
|
||||
MCUModel(name='IAP11L40', magic=0xd393, total=65536, code=40960, eeprom=0),
|
||||
MCUModel(name='IAP11L48', magic=0xd397, total=65536, code=49152, eeprom=0),
|
||||
MCUModel(name='IAP11L52', magic=0xd399, total=65536, code=53248, eeprom=0),
|
||||
MCUModel(name='IAP11L56', magic=0xd39b, total=65536, code=57344, eeprom=0),
|
||||
MCUModel(name='IAP11L60', magic=0xd39d, total=65536, code=61440, eeprom=0),
|
||||
MCUModel(name='IAP11L62', magic=0xd39f, total=65536, code=63488, eeprom=0),
|
||||
MCUModel(name='STC12C5201AD', magic=0xe161, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12C5202AD', magic=0xe162, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12C5203AD', magic=0xe163, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12C5204AD', magic=0xe164, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12C5205AD', magic=0xe165, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12C5206AD', magic=0xe166, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12C5201PWM', magic=0xe121, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12C5202PWM', magic=0xe122, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12C5203PWM', magic=0xe123, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12C5204PWM', magic=0xe124, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12C5205PWM', magic=0xe125, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12C5206PWM', magic=0xe126, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12C5201', magic=0xe101, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12C5202', magic=0xe102, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12C5203', magic=0xe103, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12C5204', magic=0xe104, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12C5205', magic=0xe105, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12C5206', magic=0xe106, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12LE5201AD', magic=0xe1e1, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12LE5202AD', magic=0xe1e2, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12LE5203AD', magic=0xe1e3, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12LE5204AD', magic=0xe1e4, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12LE5205AD', magic=0xe1e5, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12LE5206AD', magic=0xe1e6, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12LE5201PWM', magic=0xe1a1, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12LE5202PWM', magic=0xe1a2, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12LE5203PWM', magic=0xe1a3, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12LE5204PWM', magic=0xe1a4, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12LE5205PWM', magic=0xe1a5, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12LE5206PWM', magic=0xe1a6, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12LE5201', magic=0xe181, total=8192, code=1024, eeprom=5120),
|
||||
MCUModel(name='STC12LE5202', magic=0xe182, total=8192, code=2048, eeprom=4096),
|
||||
MCUModel(name='STC12LE5203', magic=0xe183, total=8192, code=3072, eeprom=3072),
|
||||
MCUModel(name='STC12LE5204', magic=0xe184, total=8192, code=4096, eeprom=2048),
|
||||
MCUModel(name='STC12LE5205', magic=0xe185, total=8192, code=5120, eeprom=1024),
|
||||
MCUModel(name='STC12LE5206', magic=0xe186, total=8192, code=6144, eeprom=0),
|
||||
MCUModel(name='STC12C5601AD', magic=0xe661, total=32768, code=1024, eeprom=29696),
|
||||
MCUModel(name='STC12C5602AD', magic=0xe662, total=32768, code=2048, eeprom=28672),
|
||||
MCUModel(name='STC12C5603AD', magic=0xe663, total=32768, code=3072, eeprom=27648),
|
||||
MCUModel(name='STC12C5604AD', magic=0xe664, total=32768, code=4096, eeprom=26624),
|
||||
MCUModel(name='STC12C5605AD', magic=0xe665, total=32768, code=5120, eeprom=25600),
|
||||
MCUModel(name='STC12C5606AD', magic=0xe666, total=32768, code=6144, eeprom=24576),
|
||||
MCUModel(name='STC12C5608AD', magic=0xe668, total=32768, code=8192, eeprom=22528),
|
||||
MCUModel(name='STC12C5612AD', magic=0xe66c, total=32768, code=12288, eeprom=18432),
|
||||
MCUModel(name='STC12C5616AD', magic=0xe670, total=32768, code=16384, eeprom=14336),
|
||||
MCUModel(name='STC12C5620AD', magic=0xe674, total=32768, code=20480, eeprom=10240),
|
||||
MCUModel(name='STC12C5624AD', magic=0xe678, total=32768, code=24576, eeprom=6144),
|
||||
MCUModel(name='STC12C5628AD', magic=0xe67c, total=32768, code=28672, eeprom=2048),
|
||||
MCUModel(name='STC12C5630AD', magic=0xe67e, total=32768, code=30720, eeprom=0),
|
||||
MCUModel(name='STC12C5601', magic=0xe601, total=32768, code=1024, eeprom=29696),
|
||||
MCUModel(name='STC12C5602', magic=0xe602, total=32768, code=2048, eeprom=28672),
|
||||
MCUModel(name='STC12C5603', magic=0xe603, total=32768, code=3072, eeprom=27648),
|
||||
MCUModel(name='STC12C5604', magic=0xe604, total=32768, code=4096, eeprom=26624),
|
||||
MCUModel(name='STC12C5605', magic=0xe605, total=32768, code=5120, eeprom=25600),
|
||||
MCUModel(name='STC12C5606', magic=0xe606, total=32768, code=6144, eeprom=24576),
|
||||
MCUModel(name='STC12C5608', magic=0xe608, total=32768, code=8192, eeprom=22528),
|
||||
MCUModel(name='STC12C5612', magic=0xe60c, total=32768, code=12288, eeprom=18432),
|
||||
MCUModel(name='STC12C5616', magic=0xe610, total=32768, code=16384, eeprom=14336),
|
||||
MCUModel(name='STC12C5620', magic=0xe614, total=32768, code=20480, eeprom=10240),
|
||||
MCUModel(name='STC12C5624', magic=0xe618, total=32768, code=24576, eeprom=6144),
|
||||
MCUModel(name='STC12C5628', magic=0xe61c, total=32768, code=28672, eeprom=2048),
|
||||
MCUModel(name='STC12C5630', magic=0xe61e, total=32768, code=30720, eeprom=0),
|
||||
MCUModel(name='STC12LE5601AD', magic=0xe6e1, total=32768, code=1024, eeprom=29696),
|
||||
MCUModel(name='STC12LE5602AD', magic=0xe6e2, total=32768, code=2048, eeprom=28672),
|
||||
MCUModel(name='STC12LE5603AD', magic=0xe6e3, total=32768, code=3072, eeprom=27648),
|
||||
MCUModel(name='STC12LE5604AD', magic=0xe6e4, total=32768, code=4096, eeprom=26624),
|
||||
MCUModel(name='STC12LE5605AD', magic=0xe6e5, total=32768, code=5120, eeprom=25600),
|
||||
MCUModel(name='STC12LE5606AD', magic=0xe6e6, total=32768, code=6144, eeprom=24576),
|
||||
MCUModel(name='STC12LE5608AD', magic=0xe6e8, total=32768, code=8192, eeprom=22528),
|
||||
MCUModel(name='STC12LE5612AD', magic=0xe6ec, total=32768, code=12288, eeprom=18432),
|
||||
MCUModel(name='STC12LE5616AD', magic=0xe6f0, total=32768, code=16384, eeprom=14336),
|
||||
MCUModel(name='STC12LE5620AD', magic=0xe6f4, total=32768, code=20480, eeprom=10240),
|
||||
MCUModel(name='STC12LE5624AD', magic=0xe6f8, total=32768, code=24576, eeprom=6144),
|
||||
MCUModel(name='STC12LE5628AD', magic=0xe6fc, total=32768, code=28672, eeprom=2048),
|
||||
MCUModel(name='STC12LE5630AD', magic=0xe6fe, total=32768, code=30720, eeprom=0),
|
||||
MCUModel(name='STC12LE5601', magic=0xe681, total=32768, code=1024, eeprom=29696),
|
||||
MCUModel(name='STC12LE5602', magic=0xe682, total=32768, code=2048, eeprom=28672),
|
||||
MCUModel(name='STC12LE5603', magic=0xe683, total=32768, code=3072, eeprom=27648),
|
||||
MCUModel(name='STC12LE5604', magic=0xe684, total=32768, code=4096, eeprom=26624),
|
||||
MCUModel(name='STC12LE5605', magic=0xe685, total=32768, code=5120, eeprom=25600),
|
||||
MCUModel(name='STC12LE5606', magic=0xe686, total=32768, code=6144, eeprom=24576),
|
||||
MCUModel(name='STC12LE5608', magic=0xe688, total=32768, code=8192, eeprom=22528),
|
||||
MCUModel(name='STC12LE5612', magic=0xe68c, total=32768, code=12288, eeprom=18432),
|
||||
MCUModel(name='STC12LE5616', magic=0xe690, total=32768, code=16384, eeprom=14336),
|
||||
MCUModel(name='STC12LE5620', magic=0xe694, total=32768, code=20480, eeprom=10240),
|
||||
MCUModel(name='STC12LE5624', magic=0xe698, total=32768, code=24576, eeprom=6144),
|
||||
MCUModel(name='STC12LE5628', magic=0xe69c, total=32768, code=28672, eeprom=2048),
|
||||
MCUModel(name='STC12LE5630', magic=0xe69e, total=32768, code=30720, eeprom=0),
|
||||
MCUModel(name='STC12C5401AD', magic=0xe061, total=32768, code=1024, eeprom=12288),
|
||||
MCUModel(name='STC12C5402AD', magic=0xe062, total=32768, code=2048, eeprom=12288),
|
||||
MCUModel(name='STC12C5404AD', magic=0xe064, total=32768, code=4096, eeprom=12288),
|
||||
MCUModel(name='STC12C5406AD', magic=0xe066, total=32768, code=6144, eeprom=12288),
|
||||
MCUModel(name='STC12C5408AD', magic=0xe068, total=32768, code=8192, eeprom=12288),
|
||||
MCUModel(name='STC12C5410AD', magic=0xe06a, total=32768, code=10240, eeprom=12288),
|
||||
MCUModel(name='STC12C5412AD', magic=0xe06c, total=32768, code=12288, eeprom=12288),
|
||||
MCUModel(name='STC12C5416AD', magic=0xe070, total=32768, code=16384, eeprom=12288),
|
||||
MCUModel(name='STC12C5420AD', magic=0xe074, total=32768, code=20480, eeprom=12288),
|
||||
MCUModel(name='STC12C5424AD', magic=0xe078, total=32768, code=24576, eeprom=12288),
|
||||
MCUModel(name='STC12C5428AD', magic=0xe07c, total=32768, code=28672, eeprom=12288),
|
||||
MCUModel(name='STC12C5401', magic=0xe001, total=32768, code=1024, eeprom=12288),
|
||||
MCUModel(name='STC12C5402', magic=0xe002, total=32768, code=2048, eeprom=12288),
|
||||
MCUModel(name='STC12C5404', magic=0xe004, total=32768, code=4096, eeprom=12288),
|
||||
MCUModel(name='STC12C5406', magic=0xe006, total=32768, code=6144, eeprom=12288),
|
||||
MCUModel(name='STC12C5408', magic=0xe008, total=32768, code=8192, eeprom=12288),
|
||||
MCUModel(name='STC12C5410', magic=0xe00a, total=32768, code=10240, eeprom=12288),
|
||||
MCUModel(name='STC12C5412', magic=0xe00c, total=32768, code=12288, eeprom=12288),
|
||||
MCUModel(name='STC12C5416', magic=0xe010, total=32768, code=16384, eeprom=12288),
|
||||
MCUModel(name='STC12C5420', magic=0xe014, total=32768, code=20480, eeprom=12288),
|
||||
MCUModel(name='STC12C5424', magic=0xe018, total=32768, code=24576, eeprom=12288),
|
||||
MCUModel(name='STC12C5428', magic=0xe01c, total=32768, code=28672, eeprom=12288),
|
||||
MCUModel(name='STC12LE5401AD', magic=0xe0e1, total=32768, code=1024, eeprom=22016),
|
||||
MCUModel(name='STC12LE5402AD', magic=0xe0e2, total=32768, code=2048, eeprom=20992),
|
||||
MCUModel(name='STC12LE5404AD', magic=0xe0e4, total=32768, code=4096, eeprom=18944),
|
||||
MCUModel(name='STC12LE5406AD', magic=0xe0e6, total=32768, code=6144, eeprom=16896),
|
||||
MCUModel(name='STC12LE5408AD', magic=0xe0e8, total=32768, code=8192, eeprom=10752),
|
||||
MCUModel(name='STC12LE5410AD', magic=0xe0ea, total=32768, code=10240, eeprom=4608),
|
||||
MCUModel(name='STC12LE5412AD', magic=0xe0ec, total=32768, code=12288, eeprom=11776),
|
||||
MCUModel(name='STC12LE5416AD', magic=0xe0f0, total=32768, code=16384, eeprom=12288),
|
||||
MCUModel(name='STC12LE5420AD', magic=0xe0f4, total=32768, code=20480, eeprom=8192),
|
||||
MCUModel(name='STC12LE5424AD', magic=0xe0f8, total=32768, code=24576, eeprom=4096),
|
||||
MCUModel(name='STC12LE5428AD', magic=0xe0fc, total=32768, code=28672, eeprom=0),
|
||||
MCUModel(name='STC12LE5401', magic=0xe081, total=32768, code=1024, eeprom=22016),
|
||||
MCUModel(name='STC12LE5402', magic=0xe082, total=32768, code=2048, eeprom=20992),
|
||||
MCUModel(name='STC12LE5404', magic=0xe084, total=32768, code=4096, eeprom=18944),
|
||||
MCUModel(name='STC12LE5406', magic=0xe086, total=32768, code=6144, eeprom=16896),
|
||||
MCUModel(name='STC12LE5408', magic=0xe088, total=32768, code=8192, eeprom=10752),
|
||||
MCUModel(name='STC12LE5410', magic=0xe08a, total=32768, code=10240, eeprom=4608),
|
||||
MCUModel(name='STC12LE5412', magic=0xe08c, total=32768, code=12288, eeprom=11776),
|
||||
MCUModel(name='STC12LE5416', magic=0xe090, total=32768, code=16384, eeprom=12288),
|
||||
MCUModel(name='STC12LE5420', magic=0xe094, total=32768, code=20480, eeprom=8192),
|
||||
MCUModel(name='STC12LE5424', magic=0xe098, total=32768, code=24576, eeprom=4096),
|
||||
MCUModel(name='STC12LE5428', magic=0xe09c, total=32768, code=28672, eeprom=0),
|
||||
MCUModel(name='STC12C1052AD', magic=0xf211, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC12C2052AD', magic=0xf212, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC12C3052AD', magic=0xf213, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC12C4052AD', magic=0xf214, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC12C5052AD', magic=0xf215, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC12C1052', magic=0xf201, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC12C2052', magic=0xf202, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC12C3052', magic=0xf203, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC12C4052', magic=0xf204, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC12C5052', magic=0xf205, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC12LE1052AD', magic=0xf231, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC12LE2052AD', magic=0xf232, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC12LE3052AD', magic=0xf233, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC12LE4052AD', magic=0xf234, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC12LE5052AD', magic=0xf235, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC12LE1052', magic=0xf221, total=8192, code=1024, eeprom=4096),
|
||||
MCUModel(name='STC12LE2052', magic=0xf222, total=8192, code=2048, eeprom=3072),
|
||||
MCUModel(name='STC12LE3052', magic=0xf223, total=8192, code=3072, eeprom=2048),
|
||||
MCUModel(name='STC12LE4052', magic=0xf224, total=8192, code=4096, eeprom=1024),
|
||||
MCUModel(name='STC12LE5052', magic=0xf225, total=8192, code=5120, eeprom=0),
|
||||
MCUModel(name='STC90C51RC', magic=0xf021, total=16384, code=4096, eeprom=9216),
|
||||
MCUModel(name='STC90C52RC', magic=0xf022, total=16384, code=8192, eeprom=5120),
|
||||
MCUModel(name='STC90C53RC', magic=0xf024, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='STC90C06RC', magic=0xf026, total=16384, code=6144, eeprom=7168),
|
||||
MCUModel(name='STC90C07RC', magic=0xf027, total=16384, code=7168, eeprom=6144),
|
||||
MCUModel(name='STC90C10RC', magic=0xf02a, total=16384, code=10240, eeprom=3072),
|
||||
MCUModel(name='STC90C12RC', magic=0xf02c, total=16384, code=12288, eeprom=1024),
|
||||
MCUModel(name='STC90LE51RC', magic=0xf041, total=16384, code=4096, eeprom=9216),
|
||||
MCUModel(name='STC90LE52RC', magic=0xf042, total=16384, code=8192, eeprom=5120),
|
||||
MCUModel(name='STC90LE53RC', magic=0xf044, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='STC90LE06RC', magic=0xf046, total=16384, code=6144, eeprom=7168),
|
||||
MCUModel(name='STC90LE07RC', magic=0xf047, total=16384, code=7168, eeprom=6144),
|
||||
MCUModel(name='STC90LE10RC', magic=0xf04a, total=16384, code=10240, eeprom=3072),
|
||||
MCUModel(name='STC90LE12RC', magic=0xf04c, total=16384, code=12288, eeprom=1024),
|
||||
MCUModel(name='STC90C51RD+', magic=0xf121, total=65536, code=4096, eeprom=58368),
|
||||
MCUModel(name='STC90C52RD+', magic=0xf122, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC90C54RD+', magic=0xf124, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC90C55RD+', magic=0xf125, total=65536, code=20480, eeprom=41984),
|
||||
MCUModel(name='STC90C58RD+', magic=0xf128, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC90C510RD+', magic=0xf12a, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC90C512RD+', magic=0xf12c, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC90C513RD+', magic=0xf12d, total=65536, code=53248, eeprom=9216),
|
||||
MCUModel(name='STC90C514RD+', magic=0xf12e, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC90C516RD+', magic=0xf130, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC90LE51RD+', magic=0xf141, total=65536, code=4096, eeprom=58368),
|
||||
MCUModel(name='STC90LE52RD+', magic=0xf142, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC90LE54RD+', magic=0xf144, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC90LE55RD+', magic=0xf145, total=65536, code=20480, eeprom=41984),
|
||||
MCUModel(name='STC90LE58RD+', magic=0xf148, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC90LE510RD+', magic=0xf14a, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC90LE512RD+', magic=0xf14c, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC90LE513RD+', magic=0xf14d, total=65536, code=53248, eeprom=9216),
|
||||
MCUModel(name='STC90LE514RD+', magic=0xf14e, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC90LE516RD+', magic=0xf150, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC90C51AD', magic=0xf161, total=65536, code=4096, eeprom=58368),
|
||||
MCUModel(name='STC90C52AD', magic=0xf162, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC90C54AD', magic=0xf164, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC90C55AD', magic=0xf165, total=65536, code=20480, eeprom=41984),
|
||||
MCUModel(name='STC90C58AD', magic=0xf168, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC90C510AD', magic=0xf16a, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC90C512AD', magic=0xf16c, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC90C513AD', magic=0xf16d, total=65536, code=53248, eeprom=9216),
|
||||
MCUModel(name='STC90C514AD', magic=0xf16e, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC90C516AD', magic=0xf170, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC90LE51AD', magic=0xf181, total=65536, code=4096, eeprom=58368),
|
||||
MCUModel(name='STC90LE52AD', magic=0xf182, total=65536, code=8192, eeprom=54272),
|
||||
MCUModel(name='STC90LE54AD', magic=0xf184, total=65536, code=16384, eeprom=46080),
|
||||
MCUModel(name='STC90LE55AD', magic=0xf185, total=65536, code=20480, eeprom=41984),
|
||||
MCUModel(name='STC90LE58AD', magic=0xf188, total=65536, code=32768, eeprom=29696),
|
||||
MCUModel(name='STC90LE510AD', magic=0xf18a, total=65536, code=40960, eeprom=21504),
|
||||
MCUModel(name='STC90LE512AD', magic=0xf18c, total=65536, code=49152, eeprom=13312),
|
||||
MCUModel(name='STC90LE513AD', magic=0xf18d, total=65536, code=53248, eeprom=9216),
|
||||
MCUModel(name='STC90LE514AD', magic=0xf18e, total=65536, code=57344, eeprom=5120),
|
||||
MCUModel(name='STC90LE516AD', magic=0xf190, total=65536, code=62464, eeprom=0),
|
||||
MCUModel(name='STC89C/LE51RC', magic=0xf001, total=16384, code=4096, eeprom=10240),
|
||||
MCUModel(name='STC89C/LE52RC', magic=0xf002, total=16384, code=8192, eeprom=6144),
|
||||
MCUModel(name='STC89C/LE53RC', magic=0xf004, total=16384, code=14336, eeprom=0),
|
||||
MCUModel(name='STC89C/LE06RC', magic=0xf006, total=16384, code=6144, eeprom=8192),
|
||||
MCUModel(name='STC89C/LE07RC', magic=0xf007, total=16384, code=7168, eeprom=7168),
|
||||
MCUModel(name='STC89C/LE10RC', magic=0xf00a, total=16384, code=10240, eeprom=4096),
|
||||
MCUModel(name='STC89C/LE12RC', magic=0xf00c, total=16384, code=12288, eeprom=2048),
|
||||
MCUModel(name='STC89C/LE51RD+', magic=0xf101, total=65536, code=4096, eeprom=59392),
|
||||
MCUModel(name='STC89C/LE52RD+', magic=0xf102, total=65536, code=8192, eeprom=55296),
|
||||
MCUModel(name='STC89C/LE54RD+', magic=0xf104, total=65536, code=16384, eeprom=47104),
|
||||
MCUModel(name='STC89C/LE55RD+', magic=0xf105, total=65536, code=20480, eeprom=43008),
|
||||
MCUModel(name='STC89C/LE58RD+', magic=0xf108, total=65536, code=32768, eeprom=30720),
|
||||
MCUModel(name='STC89C/LE510RD+', magic=0xf10a, total=65536, code=40960, eeprom=22528),
|
||||
MCUModel(name='STC89C/LE512RD+', magic=0xf10c, total=65536, code=49152, eeprom=14336),
|
||||
MCUModel(name='STC89C/LE513RD+', magic=0xf10d, total=65536, code=53248, eeprom=10240),
|
||||
MCUModel(name='STC89C/LE514RD+', magic=0xf10e, total=65536, code=57344, eeprom=6144),
|
||||
MCUModel(name='STC89C/LE516RD+', magic=0xf110, total=65536, code=63488, eeprom=0),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def find_model(self, magic):
|
||||
for model in self.models:
|
||||
if model.magic == magic: return model
|
||||
raise NameError
|
||||
|
||||
@classmethod
|
||||
def print_model_info(self, model):
|
||||
print("Target model:")
|
||||
print(" Name: %s" % model.name)
|
||||
print(" Magic: %02X%02X" % (model.magic >> 8, model.magic & 0xff))
|
||||
print(" Code flash: %.1f KB" % (model.code / 1024.0))
|
||||
print(" EEPROM flash: %.1f KB" % (model.eeprom / 1024.0))
|
||||
|
||||
|
||||
class Stc12Option:
|
||||
"""Manipulate STC10/11/12 series option bytes"""
|
||||
@ -242,6 +909,7 @@ class Stc12Protocol:
|
||||
self.mcu_clock_hz = 0.0
|
||||
self.mcu_bsl_version = ""
|
||||
self.options = None
|
||||
self.model = None
|
||||
|
||||
def dump_packet(self, data, receive=True):
|
||||
if DEBUG:
|
||||
@ -371,7 +1039,7 @@ class Stc12Protocol:
|
||||
def print_mcu_info(self):
|
||||
"""Print MCU status information"""
|
||||
|
||||
print("Target magic: %s" % hex(self.mcu_magic))
|
||||
MCUModelDatabase.print_model_info(self.model)
|
||||
print("Target frequency: %.3f MHz" % (self.mcu_clock_hz / 1E6))
|
||||
print("Target bootloader version: %s" % self.mcu_bsl_version)
|
||||
|
||||
@ -399,7 +1067,19 @@ class Stc12Protocol:
|
||||
if status_packet[0] != 0x50:
|
||||
raise RuntimeError("wrong magic in status packet")
|
||||
self.decode_status_packet(status_packet)
|
||||
|
||||
# get model info
|
||||
try:
|
||||
self.model = MCUModelDatabase.find_model(self.mcu_magic)
|
||||
except NameError:
|
||||
msg = ("WARNING: Unknown model %02X%02X!" %
|
||||
(self.mcu_magic >> 8, self.mcu_magic & 0xff))
|
||||
print(msg, file=sys.stderr)
|
||||
self.model = MCUModelDatabase.MCUModel(name="UNKNOWN",
|
||||
magic=self.mcu_magic, total=63488, code=63488, eeprom=0)
|
||||
self.print_mcu_info()
|
||||
|
||||
# create option state
|
||||
self.options = Stc12Option(status_packet[23:27])
|
||||
self.options.print()
|
||||
|
||||
@ -514,7 +1194,7 @@ class Stc12Protocol:
|
||||
if response[0] != 0x50:
|
||||
raise RuntimeError("wrong magic in option packet")
|
||||
|
||||
print("Target UID: %02x%02x%02x%02x%02x%02x%02x" %
|
||||
print("Target UID: %02X%02X%02X%02X%02X%02X%02X" %
|
||||
(response[18], response[19], response[20], response[21],
|
||||
response[22], response[23], response[24]))
|
||||
|
||||
@ -554,14 +1234,38 @@ class StcGal:
|
||||
print("Serial communication error: %s" % e, file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if opts.binary:
|
||||
if opts.code_binary:
|
||||
try:
|
||||
bindata = opts.binary.read()
|
||||
code_size = self.protocol.model.code
|
||||
ee_size = self.protocol.model.eeprom
|
||||
|
||||
bindata = opts.code_binary.read()
|
||||
|
||||
# warn if it overflows
|
||||
if len(bindata) > (code_size + ee_size):
|
||||
print("WARNING: code_binary truncated!", file=sys.stderr)
|
||||
bindata = bindata[0:code_size + ee_size]
|
||||
elif len(bindata) > code_size:
|
||||
print("WARNING: code_binary overflows into eeprom segment!", file=sys.stderr)
|
||||
|
||||
# add eeprom data if supplied
|
||||
if opts.eeprom_binary:
|
||||
eedata = opts.eeprom_binary.read()
|
||||
if len(eedata) > ee_size:
|
||||
print("WARNING: eeprom_binary truncated!", file=sys.stderr)
|
||||
eedata = eedata[0:ee_size]
|
||||
if len(bindata) < code_size:
|
||||
bindata += bytes(code_size - len(bindata))
|
||||
bindata += eedata
|
||||
|
||||
# pad to 256 byte boundary
|
||||
if len(bindata) % 256:
|
||||
bindata += bytes(256 - len(bindata) % 256)
|
||||
|
||||
if opts.option: self.emit_options(opts.option)
|
||||
|
||||
self.protocol.handshake()
|
||||
self.protocol.erase_flash(len(bindata), 0xf0 * 256)
|
||||
self.protocol.erase_flash(len(bindata), code_size)
|
||||
self.protocol.program_flash(0, bindata)
|
||||
self.protocol.program_options()
|
||||
self.protocol.disconnect()
|
||||
@ -586,7 +1290,8 @@ class StcGal:
|
||||
if __name__ == "__main__":
|
||||
# check arguments
|
||||
parser = argparse.ArgumentParser(description="STC10/11/12 series MCU ISP flash tool")
|
||||
parser.add_argument("binary", help="binary file to flash", type=argparse.FileType("rb"), nargs='?')
|
||||
parser.add_argument("code_binary", help="code segment binary file to flash", type=argparse.FileType("rb"), nargs='?')
|
||||
parser.add_argument("eeprom_binary", help="eeprom segment binary file to flash", type=argparse.FileType("rb"), nargs='?')
|
||||
parser.add_argument("-p", "--port", help="serial port device", default="/dev/ttyUSB0")
|
||||
parser.add_argument("-b", "--baud", help="transfer baud rate (default: 19200)", type=BaudType(), default=19200)
|
||||
parser.add_argument("-l", "--handshake", help="handshake baud rate (default: 2400)", type=BaudType(), default=2400)
|
||||
|
Loading…
Reference in New Issue
Block a user