Show correct signature bytes for unknown devices
This commit is contained in:
parent
cb3707d2c0
commit
c3f43e7fb3
29
ispprog.c
29
ispprog.c
@ -889,17 +889,18 @@ static void reset_statemachine(uint8_t event)
|
||||
|
||||
#if defined(DISP_WR)
|
||||
uint8_t *dst = disp_text;
|
||||
uint8_t *src = (uint8_t *)"unknown";
|
||||
uint8_t *src;
|
||||
|
||||
if (device.sig[0] != 0x00) {
|
||||
if (device.name[0] != '\0')
|
||||
{
|
||||
src = device.name;
|
||||
}
|
||||
|
||||
while (*src != '\0') {
|
||||
while (*src != '\0')
|
||||
{
|
||||
*dst++ = *src++;
|
||||
}
|
||||
|
||||
if (device.sig[0] == 0x00) {
|
||||
}
|
||||
else
|
||||
{
|
||||
*dst++ = ' ';
|
||||
*dst++ = '0';
|
||||
*dst++ = 'X';
|
||||
@ -927,7 +928,6 @@ static void reset_statemachine(uint8_t event)
|
||||
#endif /* defined(DISP_WR) */
|
||||
|
||||
} else if ((event == EV_BUTTON_PRESSED) || (event == EV_PROG_ENTER)) {
|
||||
memset(&device, 0x00, sizeof(struct _device));
|
||||
reset_retries = 5;
|
||||
reset_cause = event;
|
||||
|
||||
@ -958,21 +958,28 @@ static void reset_statemachine(uint8_t event)
|
||||
sync = spi_rxtx(0x00);
|
||||
spi_rxtx(0x00);
|
||||
|
||||
memset(&device, 0x00, sizeof(struct _device));
|
||||
|
||||
if (sync == CMD_PROG_ENABLE_2) {
|
||||
uint8_t i;
|
||||
uint8_t sig[3];
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
sig[i] = mem_read(CMD_READ_SIG_1, (CMD_READ_SIG_2 << 8) | i);
|
||||
device.sig[i] = mem_read(CMD_READ_SIG_1, (CMD_READ_SIG_2 << 8) | i);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(devices); i++) {
|
||||
if (memcmp_P(sig, devices[i].sig, sizeof(device.sig)) == 0) {
|
||||
if (memcmp_P(device.sig, devices[i].sig, sizeof(device.sig)) == 0) {
|
||||
memcpy_P(&device, &devices[i], sizeof(struct _device));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* unknown devices are untested */
|
||||
if (device.name[0] == '\0')
|
||||
{
|
||||
device.flags |= POLL_UNTESTED;
|
||||
}
|
||||
|
||||
state = (reset_cause == EV_PROG_ENTER) ? STATE_RESET_PROGMODE
|
||||
: STATE_IDLE;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user