Skip to content

Commit 0976880

Browse files
committed
feat: add stc8a/8f support
1 parent 6dab467 commit 0976880

File tree

3 files changed

+77
-69
lines changed

3 files changed

+77
-69
lines changed

main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ int main(int argc, char *const argv[])
131131

132132
if ((ret = termios_setup(MINBAUD, 8, 1, 'E')))
133133
{
134-
printf("** Failed to communicate chip with baudrate %d\n", MINBAUD);
134+
printf("\e[31mfailed to communicate chip with baudrate %d\e[0m\n", MINBAUD);
135135
exit(1);
136136
}
137137

138138
printf("Waiting for MCU, please cycle power: ");
139139
if ((ret = chip_detect(recv)))
140140
{
141-
printf("** Failed to detect chip\n");
141+
printf("\e[31mfailed to detect chip\e[0m\n");
142142
exit(1);
143143
}
144144
else

stc8db.c

Lines changed: 73 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ static const stc_protocol_t protocols[] = {
2525
{0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03},
2626
{0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
2727
},
28+
{
29+
"STC8A/8F",
30+
PROTOCOL_STC8AF,
31+
{0x01, 0xFF, 0x40, 0xFF, 0xFF, 0x00, 0x00, 0x81, 0x01},
32+
{0x05, 0x00, 0x00, 0x5A, 0xA5, 0x05},
33+
{0x03, 0x00, 0x00, 0x5A, 0xA5, 0x03},
34+
{0x22, 0xFF, 0xFF, 0x5A, 0xA5, 0x02, 'T'}
35+
},
2836
};
2937

3038
static const stc_model_t models[] = {
@@ -990,71 +998,71 @@ static const stc_model_t models[] = {
990998
{"STC15H4K48S4" , 0xF606, PROTOCOL_UNSUPP, 65536, 49152, 16384},
991999
{"STC15H4K56S4" , 0xF607, PROTOCOL_UNSUPP, 65536, 57344, 8192},
9921000
{"STC15H4K64S4" , 0xF608, PROTOCOL_UNSUPP, 65536, 65024, 512},
993-
{"STC8F8K08S4A12" , 0xF611, PROTOCOL_UNSUPP, 65536, 8192, 57344},
994-
{"STC8F8K16S4A12" , 0xF612, PROTOCOL_UNSUPP, 65536, 16384, 49152},
995-
{"STC8F8K24S4A12" , 0xF613, PROTOCOL_UNSUPP, 65536, 24576, 40960},
996-
{"STC8F8K32S4A12" , 0xF614, PROTOCOL_UNSUPP, 65536, 32768, 32768},
997-
{"STC8F8K40S4A12" , 0xF615, PROTOCOL_UNSUPP, 65536, 40960, 24576},
998-
{"STC8F8K48S4A12" , 0xF616, PROTOCOL_UNSUPP, 65536, 49152, 16384},
999-
{"STC8F8K56S4A12" , 0xF617, PROTOCOL_UNSUPP, 65536, 57344, 8192},
1000-
{"STC8F8K64S4A12" , 0xF618, PROTOCOL_UNSUPP, 65536, 65024, 512},
1001-
{"STC8F8K60S4A12" , 0xF619, PROTOCOL_UNSUPP, 65536, 61440, 4096},
1002-
{"STC8A8K08S4A12" , 0xF621, PROTOCOL_UNSUPP, 65536, 8192, 57344},
1003-
{"STC8A8K16S4A12" , 0xF622, PROTOCOL_UNSUPP, 65536, 16384, 49152},
1004-
{"STC8A8K24S4A12" , 0xF623, PROTOCOL_UNSUPP, 65536, 24576, 40960},
1005-
{"STC8A8K32S4A12" , 0xF624, PROTOCOL_UNSUPP, 65536, 32768, 32768},
1006-
{"STC8A8K40S4A12" , 0xF625, PROTOCOL_UNSUPP, 65536, 40960, 24576},
1007-
{"STC8A8K48S4A12" , 0xF626, PROTOCOL_UNSUPP, 65536, 49152, 16384},
1008-
{"STC8A8K56S4A12" , 0xF627, PROTOCOL_UNSUPP, 65536, 57344, 8192},
1009-
{"STC8A8K64S4A12" , 0xF628, PROTOCOL_UNSUPP, 65536, 65024, 512},
1010-
{"STC8A8K60S4A12" , 0xF629, PROTOCOL_UNSUPP, 65536, 61440, 4096},
1011-
{"STC8F2K08S4" , 0xF631, PROTOCOL_UNSUPP, 65536, 8192, 57344},
1012-
{"STC8F2K16S4" , 0xF632, PROTOCOL_UNSUPP, 65536, 16384, 49152},
1013-
{"STC8F2K24S4" , 0xF633, PROTOCOL_UNSUPP, 65536, 24576, 40960},
1014-
{"STC8F2K32S4" , 0xF634, PROTOCOL_UNSUPP, 65536, 32768, 32768},
1015-
{"STC8F2K40S4" , 0xF635, PROTOCOL_UNSUPP, 65536, 40960, 24576},
1016-
{"STC8F2K48S4" , 0xF636, PROTOCOL_UNSUPP, 65536, 49152, 16384},
1017-
{"STC8F2K56S4" , 0xF637, PROTOCOL_UNSUPP, 65536, 57344, 8192},
1018-
{"STC8F2K64S4" , 0xF638, PROTOCOL_UNSUPP, 65536, 65024, 512},
1019-
{"STC8F2K60S4" , 0xF639, PROTOCOL_UNSUPP, 65536, 61440, 4096},
1020-
{"STC8F2K08S2" , 0xF641, PROTOCOL_UNSUPP, 65536, 8192, 57344},
1021-
{"STC8F2K16S2" , 0xF642, PROTOCOL_UNSUPP, 65536, 16384, 49152},
1022-
{"STC8F2K24S2" , 0xF643, PROTOCOL_UNSUPP, 65536, 24576, 40960},
1023-
{"STC8F2K32S2" , 0xF644, PROTOCOL_UNSUPP, 65536, 32768, 32768},
1024-
{"STC8F2K40S2" , 0xF645, PROTOCOL_UNSUPP, 65536, 40960, 24576},
1025-
{"STC8F2K48S2" , 0xF646, PROTOCOL_UNSUPP, 65536, 49152, 16384},
1026-
{"STC8F2K56S2" , 0xF647, PROTOCOL_UNSUPP, 65536, 57344, 8192},
1027-
{"STC8F2K64S2" , 0xF648, PROTOCOL_UNSUPP, 65536, 65024, 512},
1028-
{"STC8F2K60S2" , 0xF649, PROTOCOL_UNSUPP, 65536, 61440, 4096},
1029-
{"STC8A4K08S2A12" , 0xF651, PROTOCOL_UNSUPP, 65536, 8192, 57344},
1030-
{"STC8A4K16S2A12" , 0xF652, PROTOCOL_UNSUPP, 65536, 16384, 49152},
1031-
{"STC8A4K24S2A12" , 0xF653, PROTOCOL_UNSUPP, 65536, 24576, 40960},
1032-
{"STC8A4K32S2A12" , 0xF654, PROTOCOL_UNSUPP, 65536, 32768, 32768},
1033-
{"STC8A4K40S2A12" , 0xF655, PROTOCOL_UNSUPP, 65536, 40960, 24576},
1034-
{"STC8A4K48S2A12" , 0xF656, PROTOCOL_UNSUPP, 65536, 49152, 16384},
1035-
{"STC8A4K56S2A12" , 0xF657, PROTOCOL_UNSUPP, 65536, 57344, 8192},
1036-
{"STC8A4K64S2A12" , 0xF658, PROTOCOL_UNSUPP, 65536, 65024, 512},
1037-
{"STC8A4K60S2A12" , 0xF659, PROTOCOL_UNSUPP, 65536, 61440, 4096},
1038-
{"STC8F1K02S2" , 0xF661, PROTOCOL_UNSUPP, 20480, 2048, 10240},
1039-
{"STC8F1K04S2" , 0xF662, PROTOCOL_UNSUPP, 20480, 4096, 8192},
1040-
{"STC8F1K06S2" , 0xF663, PROTOCOL_UNSUPP, 20480, 6144, 6144},
1041-
{"STC8F1K08S2" , 0xF664, PROTOCOL_UNSUPP, 20480, 8192, 4096},
1042-
{"STC8F1K10S2" , 0xF665, PROTOCOL_UNSUPP, 20480, 10240, 2048},
1043-
{"STC8F1K12S2" , 0xF666, PROTOCOL_UNSUPP, 20480, 12288, 0},
1044-
{"STC8F1K17S2" , 0xF667, PROTOCOL_UNSUPP, 20480, 17408, 0},
1045-
{"STC8F1K02" , 0xF671, PROTOCOL_UNSUPP, 20480, 2048, 10240},
1046-
{"STC8F1K04" , 0xF672, PROTOCOL_UNSUPP, 20480, 4096, 8192},
1047-
{"STC8F1K06" , 0xF673, PROTOCOL_UNSUPP, 20480, 6144, 6144},
1048-
{"STC8F1K08" , 0xF674, PROTOCOL_UNSUPP, 20480, 8192, 4096},
1049-
{"STC8F1K10" , 0xF675, PROTOCOL_UNSUPP, 20480, 10240, 2048},
1050-
{"STC8F1K12" , 0xF676, PROTOCOL_UNSUPP, 20480, 12288, 0},
1051-
{"STC8F1K17" , 0xF677, PROTOCOL_UNSUPP, 20480, 17408, 0},
1052-
{"STC8C1K02" , 0xF701, PROTOCOL_UNSUPP, 20480, 2048, 10240},
1053-
{"STC8C1K04" , 0xF702, PROTOCOL_UNSUPP, 20480, 4096, 8192},
1054-
{"STC8C1K06" , 0xF703, PROTOCOL_UNSUPP, 20480, 6144, 6144},
1055-
{"STC8C1K08" , 0xF704, PROTOCOL_UNSUPP, 20480, 8192, 4096},
1056-
{"STC8C1K10" , 0xF705, PROTOCOL_UNSUPP, 20480, 10240, 2048},
1057-
{"STC8C1K12" , 0xF706, PROTOCOL_UNSUPP, 20480, 12288, 0},
1001+
{"STC8F8K08S4A12" , 0xF611, PROTOCOL_STC8AF, 65536, 8192, 57344},
1002+
{"STC8F8K16S4A12" , 0xF612, PROTOCOL_STC8AF, 65536, 16384, 49152},
1003+
{"STC8F8K24S4A12" , 0xF613, PROTOCOL_STC8AF, 65536, 24576, 40960},
1004+
{"STC8F8K32S4A12" , 0xF614, PROTOCOL_STC8AF, 65536, 32768, 32768},
1005+
{"STC8F8K40S4A12" , 0xF615, PROTOCOL_STC8AF, 65536, 40960, 24576},
1006+
{"STC8F8K48S4A12" , 0xF616, PROTOCOL_STC8AF, 65536, 49152, 16384},
1007+
{"STC8F8K56S4A12" , 0xF617, PROTOCOL_STC8AF, 65536, 57344, 8192},
1008+
{"STC8F8K64S4A12" , 0xF618, PROTOCOL_STC8AF, 65536, 65024, 512},
1009+
{"STC8F8K60S4A12" , 0xF619, PROTOCOL_STC8AF, 65536, 61440, 4096},
1010+
{"STC8A8K08S4A12" , 0xF621, PROTOCOL_STC8AF, 65536, 8192, 57344},
1011+
{"STC8A8K16S4A12" , 0xF622, PROTOCOL_STC8AF, 65536, 16384, 49152},
1012+
{"STC8A8K24S4A12" , 0xF623, PROTOCOL_STC8AF, 65536, 24576, 40960},
1013+
{"STC8A8K32S4A12" , 0xF624, PROTOCOL_STC8AF, 65536, 32768, 32768},
1014+
{"STC8A8K40S4A12" , 0xF625, PROTOCOL_STC8AF, 65536, 40960, 24576},
1015+
{"STC8A8K48S4A12" , 0xF626, PROTOCOL_STC8AF, 65536, 49152, 16384},
1016+
{"STC8A8K56S4A12" , 0xF627, PROTOCOL_STC8AF, 65536, 57344, 8192},
1017+
{"STC8A8K64S4A12" , 0xF628, PROTOCOL_STC8AF, 65536, 65024, 512},
1018+
{"STC8A8K60S4A12" , 0xF629, PROTOCOL_STC8AF, 65536, 61440, 4096},
1019+
{"STC8F2K08S4" , 0xF631, PROTOCOL_STC8AF, 65536, 8192, 57344},
1020+
{"STC8F2K16S4" , 0xF632, PROTOCOL_STC8AF, 65536, 16384, 49152},
1021+
{"STC8F2K24S4" , 0xF633, PROTOCOL_STC8AF, 65536, 24576, 40960},
1022+
{"STC8F2K32S4" , 0xF634, PROTOCOL_STC8AF, 65536, 32768, 32768},
1023+
{"STC8F2K40S4" , 0xF635, PROTOCOL_STC8AF, 65536, 40960, 24576},
1024+
{"STC8F2K48S4" , 0xF636, PROTOCOL_STC8AF, 65536, 49152, 16384},
1025+
{"STC8F2K56S4" , 0xF637, PROTOCOL_STC8AF, 65536, 57344, 8192},
1026+
{"STC8F2K64S4" , 0xF638, PROTOCOL_STC8AF, 65536, 65024, 512},
1027+
{"STC8F2K60S4" , 0xF639, PROTOCOL_STC8AF, 65536, 61440, 4096},
1028+
{"STC8F2K08S2" , 0xF641, PROTOCOL_STC8AF, 65536, 8192, 57344},
1029+
{"STC8F2K16S2" , 0xF642, PROTOCOL_STC8AF, 65536, 16384, 49152},
1030+
{"STC8F2K24S2" , 0xF643, PROTOCOL_STC8AF, 65536, 24576, 40960},
1031+
{"STC8F2K32S2" , 0xF644, PROTOCOL_STC8AF, 65536, 32768, 32768},
1032+
{"STC8F2K40S2" , 0xF645, PROTOCOL_STC8AF, 65536, 40960, 24576},
1033+
{"STC8F2K48S2" , 0xF646, PROTOCOL_STC8AF, 65536, 49152, 16384},
1034+
{"STC8F2K56S2" , 0xF647, PROTOCOL_STC8AF, 65536, 57344, 8192},
1035+
{"STC8F2K64S2" , 0xF648, PROTOCOL_STC8AF, 65536, 65024, 512},
1036+
{"STC8F2K60S2" , 0xF649, PROTOCOL_STC8AF, 65536, 61440, 4096},
1037+
{"STC8A4K08S2A12" , 0xF651, PROTOCOL_STC8AF, 65536, 8192, 57344},
1038+
{"STC8A4K16S2A12" , 0xF652, PROTOCOL_STC8AF, 65536, 16384, 49152},
1039+
{"STC8A4K24S2A12" , 0xF653, PROTOCOL_STC8AF, 65536, 24576, 40960},
1040+
{"STC8A4K32S2A12" , 0xF654, PROTOCOL_STC8AF, 65536, 32768, 32768},
1041+
{"STC8A4K40S2A12" , 0xF655, PROTOCOL_STC8AF, 65536, 40960, 24576},
1042+
{"STC8A4K48S2A12" , 0xF656, PROTOCOL_STC8AF, 65536, 49152, 16384},
1043+
{"STC8A4K56S2A12" , 0xF657, PROTOCOL_STC8AF, 65536, 57344, 8192},
1044+
{"STC8A4K64S2A12" , 0xF658, PROTOCOL_STC8AF, 65536, 65024, 512},
1045+
{"STC8A4K60S2A12" , 0xF659, PROTOCOL_STC8AF, 65536, 61440, 4096},
1046+
{"STC8F1K02S2" , 0xF661, PROTOCOL_STC8AF, 20480, 2048, 10240},
1047+
{"STC8F1K04S2" , 0xF662, PROTOCOL_STC8AF, 20480, 4096, 8192},
1048+
{"STC8F1K06S2" , 0xF663, PROTOCOL_STC8AF, 20480, 6144, 6144},
1049+
{"STC8F1K08S2" , 0xF664, PROTOCOL_STC8AF, 20480, 8192, 4096},
1050+
{"STC8F1K10S2" , 0xF665, PROTOCOL_STC8AF, 20480, 10240, 2048},
1051+
{"STC8F1K12S2" , 0xF666, PROTOCOL_STC8AF, 20480, 12288, 0},
1052+
{"STC8F1K17S2" , 0xF667, PROTOCOL_STC8AF, 20480, 17408, 0},
1053+
{"STC8F1K02" , 0xF671, PROTOCOL_STC8AF, 20480, 2048, 10240},
1054+
{"STC8F1K04" , 0xF672, PROTOCOL_STC8AF, 20480, 4096, 8192},
1055+
{"STC8F1K06" , 0xF673, PROTOCOL_STC8AF, 20480, 6144, 6144},
1056+
{"STC8F1K08" , 0xF674, PROTOCOL_STC8AF, 20480, 8192, 4096},
1057+
{"STC8F1K10" , 0xF675, PROTOCOL_STC8AF, 20480, 10240, 2048},
1058+
{"STC8F1K12" , 0xF676, PROTOCOL_STC8AF, 20480, 12288, 0},
1059+
{"STC8F1K17" , 0xF677, PROTOCOL_STC8AF, 20480, 17408, 0},
1060+
{"STC8C1K02" , 0xF701, PROTOCOL_STC8AF, 20480, 2048, 10240},
1061+
{"STC8C1K04" , 0xF702, PROTOCOL_STC8AF, 20480, 4096, 8192},
1062+
{"STC8C1K06" , 0xF703, PROTOCOL_STC8AF, 20480, 6144, 6144},
1063+
{"STC8C1K08" , 0xF704, PROTOCOL_STC8AF, 20480, 8192, 4096},
1064+
{"STC8C1K10" , 0xF705, PROTOCOL_STC8AF, 20480, 10240, 2048},
1065+
{"STC8C1K12" , 0xF706, PROTOCOL_STC8AF, 20480, 12288, 0},
10581066
{"GX8S003" , 0xF714, PROTOCOL_UNSUPP, 20480, 8192, 4096},
10591067
{"GX8S012" , 0xF716, PROTOCOL_UNSUPP, 20480, 12288, 0},
10601068
{"STC8H1K16" , 0xF721, PROTOCOL_STC8GH, 36864, 16384, 12288},

stc8prog.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,11 @@ int chip_detect(uint8_t *recv)
183183
}
184184
else
185185
{
186-
printf("entry_detect read unmatched\n");
186+
printf("entry_detect read unmatched ");
187187
return -1;
188188
}
189189
}
190-
printf("timeout\n");
190+
printf("timeout ");
191191
return -1;
192192
}
193193

0 commit comments

Comments
 (0)