OpenOCD
cmsis_dap_tcp.c File Reference
Include dependency graph for cmsis_dap_tcp.c:

Go to the source code of this file.

Data Structures

struct  cmsis_dap_backend_data
 

Macros

#define CMSIS_DAP_PACKET_SIZE   1024
 
#define CMSIS_DAP_TCP_PORT   4441
 
#define DAP_PKT_HDR_SIGNATURE   0x00504144
 
#define DAP_PKT_TYPE_REQUEST   0x01
 
#define DAP_PKT_TYPE_RESPONSE   0x02
 
#define DEFAULT_MIN_TIMEOUT_MS   150
 
#define HEADER_LENGTH_OFFSET   sizeof(uint32_t)
 
#define HEADER_PACKET_TYPE_OFFSET   (sizeof(uint32_t) + sizeof(uint16_t))
 
#define HEADER_RESERVED_OFFSET
 
#define HEADER_SIGNATURE_OFFSET   0
 
#define HEADER_SIZE
 
#define STRINGIFY(x)   #x
 

Functions

struct __attribute__ ((packed))
 
static int cmsis_dap_tcp_alloc (struct cmsis_dap *dap, unsigned int pkt_sz)
 
static void cmsis_dap_tcp_cancel_all (struct cmsis_dap *dap)
 
static void cmsis_dap_tcp_close (struct cmsis_dap *dap)
 
static void cmsis_dap_tcp_free (struct cmsis_dap *dap)
 
static int cmsis_dap_tcp_open (struct cmsis_dap *dap, uint16_t vids[] __attribute__((unused)), uint16_t pids[] __attribute__((unused)), const char *serial __attribute__((unused)))
 
static int cmsis_dap_tcp_read (struct cmsis_dap *dap, int transfer_timeout_ms, enum cmsis_dap_blocking blocking)
 
static int cmsis_dap_tcp_write (struct cmsis_dap *dap, int txlen, int timeout_ms __attribute__((unused)))
 
 COMMAND_HANDLER (cmsis_dap_handle_tcp_host)
 
 COMMAND_HANDLER (cmsis_dap_handle_tcp_min_timeout)
 
 COMMAND_HANDLER (cmsis_dap_handle_tcp_port)
 
static int peekall_socket (int handle, void *buffer, unsigned int count)
 
static int readall_socket (int handle, void *buffer, unsigned int count)
 

Variables

const struct cmsis_dap_backend cmsis_dap_tcp_backend
 
static char * cmsis_dap_tcp_host
 
static int cmsis_dap_tcp_min_timeout_ms = DEFAULT_MIN_TIMEOUT_MS
 
static char * cmsis_dap_tcp_port = cmsis_dap_tcp_port_default
 
static char *const cmsis_dap_tcp_port_default = STRINGIFY(CMSIS_DAP_TCP_PORT)
 
const struct command_registration cmsis_dap_tcp_subcommand_handlers []
 

Macro Definition Documentation

◆ CMSIS_DAP_PACKET_SIZE

#define CMSIS_DAP_PACKET_SIZE   1024

Definition at line 51 of file cmsis_dap_tcp.c.

◆ CMSIS_DAP_TCP_PORT

#define CMSIS_DAP_TCP_PORT   4441

Definition at line 50 of file cmsis_dap_tcp.c.

◆ DAP_PKT_HDR_SIGNATURE

#define DAP_PKT_HDR_SIGNATURE   0x00504144

Definition at line 46 of file cmsis_dap_tcp.c.

◆ DAP_PKT_TYPE_REQUEST

#define DAP_PKT_TYPE_REQUEST   0x01

Definition at line 47 of file cmsis_dap_tcp.c.

◆ DAP_PKT_TYPE_RESPONSE

#define DAP_PKT_TYPE_RESPONSE   0x02

Definition at line 48 of file cmsis_dap_tcp.c.

◆ DEFAULT_MIN_TIMEOUT_MS

#define DEFAULT_MIN_TIMEOUT_MS   150

Definition at line 63 of file cmsis_dap_tcp.c.

◆ HEADER_LENGTH_OFFSET

#define HEADER_LENGTH_OFFSET   sizeof(uint32_t)

Definition at line 81 of file cmsis_dap_tcp.c.

◆ HEADER_PACKET_TYPE_OFFSET

#define HEADER_PACKET_TYPE_OFFSET   (sizeof(uint32_t) + sizeof(uint16_t))

Definition at line 82 of file cmsis_dap_tcp.c.

◆ HEADER_RESERVED_OFFSET

#define HEADER_RESERVED_OFFSET
Value:
(sizeof(uint32_t) + sizeof(uint16_t) + \
sizeof(uint8_t))

Definition at line 83 of file cmsis_dap_tcp.c.

◆ HEADER_SIGNATURE_OFFSET

#define HEADER_SIGNATURE_OFFSET   0

Definition at line 80 of file cmsis_dap_tcp.c.

◆ HEADER_SIZE

#define HEADER_SIZE
Value:
(sizeof(uint32_t) + sizeof(uint16_t) + \
2 * sizeof(uint8_t))

Definition at line 85 of file cmsis_dap_tcp.c.

◆ STRINGIFY

#define STRINGIFY (   x)    #x

Definition at line 43 of file cmsis_dap_tcp.c.

Function Documentation

◆ __attribute__()

struct __attribute__ ( (packed)  )

Definition at line 1 of file cmsis_dap_tcp.c.

◆ cmsis_dap_tcp_alloc()

static int cmsis_dap_tcp_alloc ( struct cmsis_dap dap,
unsigned int  pkt_sz 
)
static

◆ cmsis_dap_tcp_cancel_all()

static void cmsis_dap_tcp_cancel_all ( struct cmsis_dap dap)
static

Definition at line 359 of file cmsis_dap_tcp.c.

◆ cmsis_dap_tcp_close()

static void cmsis_dap_tcp_close ( struct cmsis_dap dap)
static

◆ cmsis_dap_tcp_free()

static void cmsis_dap_tcp_free ( struct cmsis_dap dap)
static

Definition at line 353 of file cmsis_dap_tcp.c.

References NULL, and cmsis_dap::packet_buffer.

Referenced by cmsis_dap_tcp_close().

◆ cmsis_dap_tcp_open()

static int cmsis_dap_tcp_open ( struct cmsis_dap dap,
uint16_t vids[]  __attribute__(unused),
uint16_t pids[]  __attribute__(unused),
const char *serial   __attribute__(unused) 
)
static

◆ cmsis_dap_tcp_read()

◆ cmsis_dap_tcp_write()

◆ COMMAND_HANDLER() [1/3]

COMMAND_HANDLER ( cmsis_dap_handle_tcp_host  )

◆ COMMAND_HANDLER() [2/3]

COMMAND_HANDLER ( cmsis_dap_handle_tcp_min_timeout  )

Definition at line 393 of file cmsis_dap_tcp.c.

◆ COMMAND_HANDLER() [3/3]

COMMAND_HANDLER ( cmsis_dap_handle_tcp_port  )

◆ peekall_socket()

static int peekall_socket ( int  handle,
void *  buffer,
unsigned int  count 
)
inlinestatic

Definition at line 203 of file cmsis_dap_tcp.c.

References buffer, and count.

Referenced by cmsis_dap_tcp_read().

◆ readall_socket()

static int readall_socket ( int  handle,
void *  buffer,
unsigned int  count 
)
inlinestatic

Definition at line 197 of file cmsis_dap_tcp.c.

References buffer, and count.

Referenced by cmsis_dap_tcp_read().

Variable Documentation

◆ cmsis_dap_tcp_backend

const struct cmsis_dap_backend cmsis_dap_tcp_backend
Initial value:
= {
.name = "tcp",
.packet_buffer_alloc = cmsis_dap_tcp_alloc,
.packet_buffer_free = cmsis_dap_tcp_free,
.cancel_all = cmsis_dap_tcp_cancel_all,
}
static int cmsis_dap_tcp_write(struct cmsis_dap *dap, int txlen, int timeout_ms __attribute__((unused)))
static void cmsis_dap_tcp_free(struct cmsis_dap *dap)
static int cmsis_dap_tcp_open(struct cmsis_dap *dap, uint16_t vids[] __attribute__((unused)), uint16_t pids[] __attribute__((unused)), const char *serial __attribute__((unused)))
static int cmsis_dap_tcp_read(struct cmsis_dap *dap, int transfer_timeout_ms, enum cmsis_dap_blocking blocking)
static int cmsis_dap_tcp_alloc(struct cmsis_dap *dap, unsigned int pkt_sz)
static void cmsis_dap_tcp_close(struct cmsis_dap *dap)
static void cmsis_dap_tcp_cancel_all(struct cmsis_dap *dap)

Definition at line 393 of file cmsis_dap_tcp.c.

◆ cmsis_dap_tcp_host

char* cmsis_dap_tcp_host
static

Definition at line 92 of file cmsis_dap_tcp.c.

Referenced by cmsis_dap_tcp_open(), and COMMAND_HANDLER().

◆ cmsis_dap_tcp_min_timeout_ms

int cmsis_dap_tcp_min_timeout_ms = DEFAULT_MIN_TIMEOUT_MS
static

Definition at line 95 of file cmsis_dap_tcp.c.

Referenced by cmsis_dap_tcp_read().

◆ cmsis_dap_tcp_port

char* cmsis_dap_tcp_port = cmsis_dap_tcp_port_default
static

Definition at line 94 of file cmsis_dap_tcp.c.

Referenced by cmsis_dap_tcp_open(), and COMMAND_HANDLER().

◆ cmsis_dap_tcp_port_default

char* const cmsis_dap_tcp_port_default = STRINGIFY(CMSIS_DAP_TCP_PORT)
static

Definition at line 93 of file cmsis_dap_tcp.c.

Referenced by COMMAND_HANDLER().

◆ cmsis_dap_tcp_subcommand_handlers

const struct command_registration cmsis_dap_tcp_subcommand_handlers[]
Initial value:
= {
{
.name = "host",
.handler = &cmsis_dap_handle_tcp_host,
.mode = COMMAND_CONFIG,
.help = "set the host name to use (for TCP backend only)",
.usage = "<host_name>",
},
{
.name = "port",
.handler = &cmsis_dap_handle_tcp_port,
.mode = COMMAND_CONFIG,
.help = "set the port number to use for DAP (for TCP backend only)",
.usage = "<port_number>",
},
{
.name = "min_timeout",
.handler = &cmsis_dap_handle_tcp_min_timeout,
.mode = COMMAND_CONFIG,
.help = "set the minimum timeout in milliseconds to wait for response "
"packets (for TCP backend only)",
.usage = "<milliseconds>",
},
}
#define COMMAND_REGISTRATION_DONE
Use this as the last entry in an array of command_registration records.
Definition: command.h:251
@ COMMAND_CONFIG
Definition: command.h:41

Definition at line 393 of file cmsis_dap_tcp.c.