diff --git a/src/term.c b/src/term.c index f222fb46..28aa6253 100644 --- a/src/term.c +++ b/src/term.c @@ -733,18 +733,26 @@ static int cmd_help(PROGRAMMER * pgm, struct avrpart * p, static int cmd_spi(PROGRAMMER * pgm, struct avrpart * p, int argc, char * argv[]) { - pgm->setpin(pgm, PIN_AVR_RESET, 1); - spi_mode = 1; - return 0; + if (pgm->setpin != NULL) { + pgm->setpin(pgm, PIN_AVR_RESET, 1); + spi_mode = 1; + return 0; + } + avrdude_message(MSG_INFO, "`spi' command unavailable for this programmer type\n"); + return -1; } static int cmd_pgm(PROGRAMMER * pgm, struct avrpart * p, int argc, char * argv[]) { - pgm->setpin(pgm, PIN_AVR_RESET, 0); - spi_mode = 0; - pgm->initialize(pgm, p); - return 0; + if (pgm->setpin != NULL) { + pgm->setpin(pgm, PIN_AVR_RESET, 0); + spi_mode = 0; + pgm->initialize(pgm, p); + return 0; + } + avrdude_message(MSG_INFO, "`pgm' command unavailable for this programmer type\n"); + return -1; } static int cmd_verbose(PROGRAMMER * pgm, struct avrpart * p,