Translate numerical response codes to strings.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@650 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
parent
e3963eb464
commit
9a961e3054
|
@ -1,3 +1,7 @@
|
||||||
|
2006-09-07 Joerg Wunsch <j@uriah.heep.sax.de>
|
||||||
|
|
||||||
|
* jtagmkII.c: Translate numerical response codes to strings.
|
||||||
|
|
||||||
2006-09-07 Joerg Wunsch <j@uriah.heep.sax.de>
|
2006-09-07 Joerg Wunsch <j@uriah.heep.sax.de>
|
||||||
|
|
||||||
* avrdude.1: The avr109 programmer type no longer chokes on
|
* avrdude.1: The avr109 programmer type no longer chokes on
|
||||||
|
|
97
jtagmkII.c
97
jtagmkII.c
|
@ -82,6 +82,28 @@ static unsigned char serno[6]; /* JTAG ICE serial number. */
|
||||||
*/
|
*/
|
||||||
#define OCDEN (1 << 7)
|
#define OCDEN (1 << 7)
|
||||||
|
|
||||||
|
#define RC(x) { x, #x },
|
||||||
|
static struct {
|
||||||
|
unsigned int code;
|
||||||
|
const char *descr;
|
||||||
|
} jtagresults[] = {
|
||||||
|
RC(RSP_DEBUGWIRE_SYNC_FAILED)
|
||||||
|
RC(RSP_FAILED)
|
||||||
|
RC(RSP_ILLEGAL_BREAKPOINT)
|
||||||
|
RC(RSP_ILLEGAL_COMMAND)
|
||||||
|
RC(RSP_ILLEGAL_EMULATOR_MODE)
|
||||||
|
RC(RSP_ILLEGAL_JTAG_ID)
|
||||||
|
RC(RSP_ILLEGAL_MCU_STATE)
|
||||||
|
RC(RSP_ILLEGAL_MEMORY_TYPE)
|
||||||
|
RC(RSP_ILLEGAL_MEMORY_RANGE)
|
||||||
|
RC(RSP_ILLEGAL_PARAMETER)
|
||||||
|
RC(RSP_ILLEGAL_POWER_STATE)
|
||||||
|
RC(RSP_ILLEGAL_VALUE)
|
||||||
|
RC(RSP_NO_TARGET_POWER)
|
||||||
|
RC(RSP_SET_N_PARAMETERS)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* The length of the device descriptor is firmware-dependent. */
|
/* The length of the device descriptor is firmware-dependent. */
|
||||||
static size_t device_descriptor_length;
|
static size_t device_descriptor_length;
|
||||||
|
|
||||||
|
@ -133,6 +155,21 @@ u16_to_b2(unsigned char *b, unsigned short l)
|
||||||
b[1] = (l >> 8) & 0xff;
|
b[1] = (l >> 8) & 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
jtagmkII_get_rc(unsigned int rc)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
static char msg[50];
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof jtagresults / sizeof jtagresults[0]; i++)
|
||||||
|
if (jtagresults[i].code == rc)
|
||||||
|
return jtagresults[i].descr;
|
||||||
|
|
||||||
|
sprintf(msg, "Unknown JTAG ICE mkII result code 0x%02x", rc);
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void jtagmkII_print_memory(unsigned char *b, size_t s)
|
static void jtagmkII_print_memory(unsigned char *b, size_t s)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -604,8 +641,8 @@ int jtagmkII_getsync(PROGRAMMER * pgm, int mode) {
|
||||||
else
|
else
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_getsync(): "
|
"%s: jtagmkII_getsync(): "
|
||||||
"bad response to sign-on command: 0x%02x\n",
|
"bad response to sign-on command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -704,8 +741,8 @@ int jtagmkII_getsync(PROGRAMMER * pgm, int mode) {
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_getsync(): "
|
"%s: jtagmkII_getsync(): "
|
||||||
"bad response to set parameter command: 0x%02x\n",
|
"bad response to set parameter command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -756,8 +793,8 @@ static int jtagmkII_chip_erase(PROGRAMMER * pgm, AVRPART * p)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_chip_erase(): "
|
"%s: jtagmkII_chip_erase(): "
|
||||||
"bad response to chip erase command: 0x%02x\n",
|
"bad response to chip erase command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -826,8 +863,8 @@ static void jtagmkII_set_devdescr(PROGRAMMER * pgm, AVRPART * p)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_set_devdescr(): "
|
"%s: jtagmkII_set_devdescr(): "
|
||||||
"bad response to set device descriptor command: 0x%02x\n",
|
"bad response to set device descriptor command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -866,8 +903,8 @@ static int jtagmkII_reset(PROGRAMMER * pgm, unsigned char flags)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_reset(): "
|
"%s: jtagmkII_reset(): "
|
||||||
"bad response to reset command: 0x%02x\n",
|
"bad response to reset command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -915,8 +952,8 @@ static int jtagmkII_program_enable(PROGRAMMER * pgm)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_program_enable(): "
|
"%s: jtagmkII_program_enable(): "
|
||||||
"bad response to enter progmode command: 0x%02x\n",
|
"bad response to enter progmode command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
if (c == RSP_ILLEGAL_JTAG_ID)
|
if (c == RSP_ILLEGAL_JTAG_ID)
|
||||||
fprintf(stderr, "%s: JTAGEN fuse disabled?\n", progname);
|
fprintf(stderr, "%s: JTAGEN fuse disabled?\n", progname);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -961,8 +998,8 @@ static int jtagmkII_program_disable(PROGRAMMER * pgm)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_program_disable(): "
|
"%s: jtagmkII_program_disable(): "
|
||||||
"bad response to leave progmode command: 0x%02x\n",
|
"bad response to leave progmode command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1165,8 +1202,8 @@ void jtagmkII_close(PROGRAMMER * pgm)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_close(): "
|
"%s: jtagmkII_close(): "
|
||||||
"bad response to GO command: 0x%02x\n",
|
"bad response to GO command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1197,8 +1234,8 @@ void jtagmkII_close(PROGRAMMER * pgm)
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_close(): "
|
"%s: jtagmkII_close(): "
|
||||||
"bad response to sign-off command: 0x%02x\n",
|
"bad response to sign-off command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
serial_close(pgm->fd);
|
serial_close(pgm->fd);
|
||||||
|
@ -1305,8 +1342,8 @@ static int jtagmkII_paged_write(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
|
||||||
if (resp[0] != RSP_OK) {
|
if (resp[0] != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_paged_write(): "
|
"%s: jtagmkII_paged_write(): "
|
||||||
"bad response to write memory command: 0x%02x\n",
|
"bad response to write memory command: %s\n",
|
||||||
progname, resp[0]);
|
progname, jtagmkII_get_rc(resp[0]));
|
||||||
free(resp);
|
free(resp);
|
||||||
free(cmd);
|
free(cmd);
|
||||||
serial_recv_timeout = otimeout;
|
serial_recv_timeout = otimeout;
|
||||||
|
@ -1398,8 +1435,8 @@ static int jtagmkII_paged_load(PROGRAMMER * pgm, AVRPART * p, AVRMEM * m,
|
||||||
if (resp[0] != RSP_MEMORY) {
|
if (resp[0] != RSP_MEMORY) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_paged_load(): "
|
"%s: jtagmkII_paged_load(): "
|
||||||
"bad response to read memory command: 0x%02x\n",
|
"bad response to read memory command: %s\n",
|
||||||
progname, resp[0]);
|
progname, jtagmkII_get_rc(resp[0]));
|
||||||
free(resp);
|
free(resp);
|
||||||
serial_recv_timeout = otimeout;
|
serial_recv_timeout = otimeout;
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1513,8 +1550,8 @@ static int jtagmkII_read_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
|
||||||
if (resp[0] != RSP_MEMORY) {
|
if (resp[0] != RSP_MEMORY) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_read_byte(): "
|
"%s: jtagmkII_read_byte(): "
|
||||||
"bad response to read memory command: 0x%02x\n",
|
"bad response to read memory command: %s\n",
|
||||||
progname, resp[0]);
|
progname, jtagmkII_get_rc(resp[0]));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1621,8 +1658,8 @@ static int jtagmkII_write_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem,
|
||||||
if (resp[0] != RSP_OK) {
|
if (resp[0] != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_write_byte(): "
|
"%s: jtagmkII_write_byte(): "
|
||||||
"bad response to write memory command: 0x%02x\n",
|
"bad response to write memory command: %s\n",
|
||||||
progname, resp[0]);
|
progname, jtagmkII_get_rc(resp[0]));
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1708,8 +1745,8 @@ int jtagmkII_getparm(PROGRAMMER * pgm, unsigned char parm,
|
||||||
if (c != RSP_PARAMETER) {
|
if (c != RSP_PARAMETER) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_getparm(): "
|
"%s: jtagmkII_getparm(): "
|
||||||
"bad response to get parameter command: 0x%02x\n",
|
"bad response to get parameter command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
free(resp);
|
free(resp);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1779,8 +1816,8 @@ static int jtagmkII_setparm(PROGRAMMER * pgm, unsigned char parm,
|
||||||
if (c != RSP_OK) {
|
if (c != RSP_OK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: jtagmkII_setparm(): "
|
"%s: jtagmkII_setparm(): "
|
||||||
"bad response to set parameter command: 0x%02x\n",
|
"bad response to set parameter command: %s\n",
|
||||||
progname, c);
|
progname, jtagmkII_get_rc(c));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue