OpenOCD
|
OpenULINK command (OpenULINK command queue element). More...
Data Fields | |
struct jtag_command * | cmd_origin |
Pointer to corresponding OpenOCD command for post-processing. More... | |
bool | free_payload_in_start |
Indicates if ulink_clear_queue() should free payload_in_start More... | |
uint8_t | id |
ULINK command ID. More... | |
bool | needs_postprocessing |
Indicates if this command needs post-processing. More... | |
struct ulink_cmd * | next |
Pointer to next command (linked list) More... | |
uint8_t * | payload_in |
Pointer where IN payload shall be stored. More... | |
uint8_t | payload_in_size |
IN direction payload size for this command. More... | |
uint8_t * | payload_in_start |
Pointer to first element of IN payload array. More... | |
uint8_t * | payload_out |
OUT direction payload data. More... | |
uint8_t | payload_out_size |
OUT direction payload size for this command. More... | |
OpenULINK command (OpenULINK command queue element).
For the OUT direction payload, things are quite easy: Payload is stored in a rather small array (up to 63 bytes), the payload is always allocated by the function generating the command and freed by ulink_clear_queue().
For the IN direction payload, things get a little bit more complicated: The maximum IN payload size for a single command is 64 bytes. Assume that a single OpenOCD command needs to scan 256 bytes. This results in the generation of four OpenULINK commands. The function generating these commands shall allocate an uint8_t[256] array. Each command's payload_in pointer shall point to the corresponding offset where IN data shall be placed, while payload_in_start shall point to the first element of the 256 byte array.
The last command sets needs_postprocessing to true.
struct jtag_command* ulink_cmd::cmd_origin |
Pointer to corresponding OpenOCD command for post-processing.
Definition at line 128 of file ulink.c.
Referenced by ulink_post_process_queue(), and ulink_post_process_scan().
bool ulink_cmd::free_payload_in_start |
Indicates if ulink_clear_queue() should free payload_in_start
Definition at line 125 of file ulink.c.
Referenced by ulink_allocate_payload(), and ulink_clear_queue().
uint8_t ulink_cmd::id |
ULINK command ID.
Definition at line 112 of file ulink.c.
Referenced by ulink_execute_queued_commands(), and ulink_print_command().
bool ulink_cmd::needs_postprocessing |
Indicates if this command needs post-processing.
Definition at line 122 of file ulink.c.
Referenced by ulink_post_process_queue().
struct ulink_cmd* ulink_cmd::next |
Pointer to next command (linked list)
Definition at line 130 of file ulink.c.
Referenced by ulink_clear_queue(), ulink_execute_queued_commands(), ulink_get_queue_size(), ulink_post_process_queue(), and ulink_print_queue().
uint8_t* ulink_cmd::payload_in |
Pointer where IN payload shall be stored.
Definition at line 118 of file ulink.c.
Referenced by ulink_allocate_payload(), ulink_clear_queue(), ulink_execute_queued_commands(), and ulink_init().
uint8_t ulink_cmd::payload_in_size |
IN direction payload size for this command.
Definition at line 119 of file ulink.c.
Referenced by ulink_allocate_payload(), ulink_append_queue(), ulink_execute_queued_commands(), ulink_get_queue_size(), and ulink_print_command().
uint8_t* ulink_cmd::payload_in_start |
Pointer to first element of IN payload array.
Definition at line 117 of file ulink.c.
Referenced by ulink_allocate_payload(), ulink_clear_queue(), and ulink_post_process_scan().
uint8_t* ulink_cmd::payload_out |
OUT direction payload data.
Definition at line 114 of file ulink.c.
Referenced by ulink_allocate_payload(), ulink_clear_queue(), ulink_execute_queued_commands(), and ulink_print_command().
uint8_t ulink_cmd::payload_out_size |
OUT direction payload size for this command.
Definition at line 115 of file ulink.c.
Referenced by ulink_allocate_payload(), ulink_append_queue(), ulink_execute_queued_commands(), ulink_get_queue_size(), and ulink_print_command().