CMSIS-DAP: DAP_QueueCommands

| CMSIS-DAP Version 1.1.0 Interface Firmware for CoreSight Debug Access Port

- Main Page
- Usage and Description
- Reference

All Functions Groups Pages
DAP_QueueCommands
Atomic Commands

Queue multiple DAP commands provided in a multiple packets. More...

Queue multiple DAP commands provided in a multiple packets.

Queues multiple DAP commands provided in multiple packets. Queuing starts with the first packet that includes DAP_QueueCommands command and continues with all subsequent packets that also include this command. Queued commands execute when a packet without DAP_QueueCommands command is received. Packet size and count limitation for requests and responses needs to respected.

The command is similar to DAP_ExecuteCommands on a packet level but queues multiple packets before processing them.

DAP_QueueCommands Request:

BYTE | BYTE | |
> 0x7E | NumCmd | Command Requests | First queued packet
******|********|+++++++++++++++++++|
.
.
.
BYTE | BYTE | |
> 0x7E | NumCmd | Command Requests | Last queued packet
******|********|+++++++++++++++++++|

- > Command Request (any command except DAP_QueueCommands)
  Queued commands are executed before this command
- NumCmd: Number of commands to queue (single packet)
- Commands Requests: Concatenated command requests (single packet)

DAP_QueueCommands Response:

BYTE | BYTE | |
< 0x7F | NumCmd | Command Responses |
******|********|+++++++++++++++++++|
.
.
.
BYTE | BYTE | |
< 0x7F | NumCmd | Command Responses |
******|********|+++++++++++++++++++|

- < Command Response (first non DAP_QueueCommands command)
- NumCmd: Number of commands executed (single packet)
- Commands Responses: Concatenated command responses (single packet)

Example:

Queue DAP_SWJ_Pins and DAP_Delay in first packet.
Queue DAP_SWJ_Pins in second packet.
Queue DAP_Delay in third packet.
Send DAP_SWJ_Pins in fourth packet which executes queued commands and command in the last packet.

Request:

BYTE | BYTE | BYTE | BYTE | BYTE | WORD | BYTE | SHORT |
> 0x7E | 0x02 | 0x10 | Pin Output | Pin Select | Pin Wait | 0x09 | Delay |
******|******|******|************|************|**********|******|*******|
Queue|NumCmd| DAP_SWJ_Pins | DAP_Delay |
BYTE | BYTE | BYTE | BYTE | BYTE | WORD |
> 0x7E | 0x01 | 0x10 | Pin Output | Pin Select | Pin Wait |
******|******|******|************|************|**********|
Queue|NumCmd| DAP_SWJ_Pins |
BYTE | BYTE | BYTE | SHORT |
> 0x7E | 0x01 | 0x09 | Delay |
******|******|******|*******|
Queue|NumCmd| DAP_Delay |
BYTE | BYTE | BYTE | WORD |
> 0x10 | Pin Output | Pin Select | Pin Wait |
******|************|************|**********|
DAP_SWJ_Pins |

Response:

BYTE | BYTE | BYTE | BYTE | BYTE | BYTE |
< 0x7F | 0x02 | 0x10 | Pin Input | 0x09 | Status |
******|******|******|***********|******|********|
|NumCmd| DAP_SWJ_Pins | DAP_Delay |
BYTE | BYTE | BYTE | BYTE |
< 0x7F | 0x01 | 0x10 | Pin Input |
******|******|******|***********|
|NumCmd| DAP_SWJ_Pins |
BYTE | BYTE | BYTE | BYTE |
< 0x7F | 0x01 | 0x09 | Status |
******|******|******|********|
|NumCmd| DAP_Delay |
BYTE | BYTE |
< 0x10 | Pin Input |
******|***********|
DAP_SWJ_Pins |