Print meaningful ISP clock error message

Currently, only some JTAG3 compatible programmers are able to detect that the connected target's main clock speed actually is too low for for the programmer.
In this case, these will return 0xCC.
This commit is contained in:
MCUdude 2022-11-27 22:52:45 +01:00
parent 6385fb09f7
commit 2d7ad8e373
2 changed files with 13 additions and 2 deletions

View File

@ -1242,8 +1242,11 @@ int main(int argc, char * argv [])
init_ok = (rc = pgm->initialize(pgm, p)) >= 0;
if (!init_ok) {
pmsg_error("initialization failed, rc=%d\n", rc);
imsg_error("- double check the connections and try again\n");
imsg_error("- use -B to set lower ISP clock frequency, e.g. -B 200kHz\n");
if(rc == -2)
imsg_error("The programmer ISP clock is too fast for the target\n");
else
imsg_error("- double check the connections and try again\n");
imsg_error("- use -B to set lower ISP clock frequency, e.g. -B 125kHz\n");
if (!ovsigck) {
imsg_error("- use -F to override this check\n\n");
exitrc = 1;

View File

@ -795,6 +795,11 @@ retry:
// attempt to read the status back
status = stk500v2_recv(pgm,buf,maxlen);
DEBUG("STK500V2: stk500v2_command() received content: [ ");
for (size_t i=0; i<len; i++)
DEBUG("0x%02x ",buf[i]);
DEBUG("], length %d\n", (int) len);
// if we got a successful readback, return
if (status > 0) {
DEBUG(" = %d\n",status);
@ -858,6 +863,9 @@ retry:
return status;
} else if (buf[1] == STATUS_CMD_FAILED) {
pmsg_error("command failed\n");
} else if (buf[1] == STATUS_CLOCK_ERROR) {
pmsg_error("target clock speed error\n");
return -2;
} else if (buf[1] == STATUS_CMD_UNKNOWN) {
pmsg_error("unknown command\n");
} else {