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 |