diff --git a/src/main.c b/src/main.c index 691369cf..cb3232b4 100644 --- a/src/main.c +++ b/src/main.c @@ -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; diff --git a/src/stk500v2.c b/src/stk500v2.c index bb086c10..5455ef3d 100644 --- a/src/stk500v2.c +++ b/src/stk500v2.c @@ -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 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 {