X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Ftarget%2Fdsp563xx_once.c;h=267f475e51f586f3ee8708cc91ba77ed38dfe585;hb=89fa8ce2d8c58707f3dfda397138f8ee336e1a47;hp=d19323ee7371bdb5ef7f137c538e9c1026a55b5a;hpb=fe0894015fd3d25593ce3a7211b1540ebfbab1f3;p=openocd.git diff --git a/src/target/dsp563xx_once.c b/src/target/dsp563xx_once.c index d19323ee73..267f475e51 100644 --- a/src/target/dsp563xx_once.c +++ b/src/target/dsp563xx_once.c @@ -29,6 +29,9 @@ #include "dsp563xx.h" #include "dsp563xx_once.h" +#define JTAG_STATUS_STATIC_MASK 0x03 +#define JTAG_STATUS_STATIC_VALUE 0x01 + #define JTAG_STATUS_NORMAL 0x01 #define JTAG_STATUS_STOPWAIT 0x05 #define JTAG_STATUS_BUSY 0x09 @@ -100,19 +103,16 @@ int dsp563xx_once_target_status(struct jtag_tap *tap) uint8_t jtag_status; if ((err = dsp563xx_jtag_sendinstr(tap, &jtag_status, JTAG_INSTR_ENABLE_ONCE)) != ERROR_OK) - return err; + return TARGET_UNKNOWN; if ((err = jtag_execute_queue()) != ERROR_OK) - return err; + return TARGET_UNKNOWN; - if ((jtag_status & 1) != 1) - { + /* verify correct static status pattern */ + if ( (jtag_status & JTAG_STATUS_STATIC_MASK) != JTAG_STATUS_STATIC_VALUE ) return TARGET_UNKNOWN; - } if (jtag_status != JTAG_STATUS_DEBUG) - { return TARGET_RUNNING; - } return TARGET_HALTED; } @@ -188,7 +188,7 @@ int dsp563xx_once_request_debug(struct jtag_tap *tap, int reset_state) int dsp563xx_once_read_register(struct jtag_tap *tap, int flush, struct once_reg *regs, int len) { int i; - int err; + int err = ERROR_OK; for (i = 0; i < len; i++) {