drivers/cmsis-dap: Correct the DAP protocol parameter parsing error
Fixes: 01030fb893
(drivers/cmsis-dap: tidy up buffer access)
Change-Id: Id192d3930a89980d641058b6444d12caec19ce6f
Signed-off-by: Hongbin Ji <longma@orbbec.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6954
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: jihongbin <jhb_ee@163.com>
This commit is contained in:
parent
12d1ad0c75
commit
66335683fe
|
@ -1405,18 +1405,18 @@ static void debug_parse_cmsis_buf(const uint8_t *cmd, int cmdlen)
|
||||||
for (int i = 0; i < cmdlen; ++i)
|
for (int i = 0; i < cmdlen; ++i)
|
||||||
printf(" %02x", cmd[i]);
|
printf(" %02x", cmd[i]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
switch (cmd[1]) {
|
switch (cmd[0]) {
|
||||||
case CMD_DAP_JTAG_SEQ: {
|
case CMD_DAP_JTAG_SEQ: {
|
||||||
printf("cmsis-dap jtag sequence command %02x (n=%d)\n", cmd[1], cmd[2]);
|
printf("cmsis-dap jtag sequence command %02x (n=%d)\n", cmd[0], cmd[1]);
|
||||||
/*
|
/*
|
||||||
* #2 = number of sequences
|
* #1 = number of sequences
|
||||||
* #3 = sequence info 1
|
* #2 = sequence info 1
|
||||||
* #4...4+n_bytes-1 = sequence 1
|
* #3...4+n_bytes-1 = sequence 1
|
||||||
* #4+n_bytes = sequence info 2
|
* #4+n_bytes = sequence info 2
|
||||||
* #5+n_bytes = sequence 2 (single bit)
|
* #5+n_bytes = sequence 2 (single bit)
|
||||||
*/
|
*/
|
||||||
int pos = 3;
|
int pos = 2;
|
||||||
for (int seq = 0; seq < cmd[2]; ++seq) {
|
for (int seq = 0; seq < cmd[1]; ++seq) {
|
||||||
uint8_t info = cmd[pos++];
|
uint8_t info = cmd[pos++];
|
||||||
int len = info & DAP_JTAG_SEQ_TCK;
|
int len = info & DAP_JTAG_SEQ_TCK;
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
|
|
Loading…
Reference in New Issue