ti_icdi_usb: Remove unnecessary casts and fix byte order bugs
Found by grepping for pointer casts. Some additional cast can be removed if hexify/unhexify arguments are changed to a more suitable type. Change-Id: I13796b056f00976979bf0e754de3aa7648f7f321 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1778 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
parent
e673304922
commit
484dbcc302
|
@ -121,12 +121,11 @@ static int remote_unescape_input(const char *buffer, int len, char *out_buf, int
|
|||
static int icdi_send_packet(void *handle, int len)
|
||||
{
|
||||
unsigned char cksum = 0;
|
||||
struct icdi_usb_handle_s *h;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
int result, retry = 0;
|
||||
int transferred = 0;
|
||||
|
||||
assert(handle != NULL);
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
|
||||
/* check we have a large enough buffer for checksum "#00" */
|
||||
if (len + 3 > h->max_packet) {
|
||||
|
@ -234,8 +233,7 @@ static int icdi_send_packet(void *handle, int len)
|
|||
|
||||
static int icdi_send_cmd(void *handle, const char *cmd)
|
||||
{
|
||||
struct icdi_usb_handle_s *h;
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
int cmd_len = snprintf(h->write_buffer, h->max_packet, PACKET_START "%s", cmd);
|
||||
return icdi_send_packet(handle, cmd_len);
|
||||
|
@ -243,8 +241,7 @@ static int icdi_send_cmd(void *handle, const char *cmd)
|
|||
|
||||
static int icdi_send_remote_cmd(void *handle, const char *data)
|
||||
{
|
||||
struct icdi_usb_handle_s *h;
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
size_t cmd_len = sprintf(h->write_buffer, PACKET_START "qRcmd,");
|
||||
cmd_len += hexify(h->write_buffer + cmd_len, data, 0, h->max_packet - cmd_len);
|
||||
|
@ -254,12 +251,11 @@ static int icdi_send_remote_cmd(void *handle, const char *data)
|
|||
|
||||
static int icdi_get_cmd_result(void *handle)
|
||||
{
|
||||
struct icdi_usb_handle_s *h;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
int offset = 0;
|
||||
char ch;
|
||||
|
||||
assert(handle != NULL);
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
|
||||
do {
|
||||
ch = h->read_buffer[offset++];
|
||||
|
@ -290,21 +286,27 @@ static int icdi_usb_idcode(void *handle, uint32_t *idcode)
|
|||
|
||||
static int icdi_usb_write_debug_reg(void *handle, uint32_t addr, uint32_t val)
|
||||
{
|
||||
return icdi_usb_write_mem(handle, addr, 4, 1, (uint8_t *)&val);
|
||||
uint8_t buf[4];
|
||||
/* REVISIT: There's no target pointer here so there's no way to use target_buffer_set_u32().
|
||||
* I guess all supported chips are little-endian anyway. */
|
||||
h_u32_to_le(buf, val);
|
||||
return icdi_usb_write_mem(handle, addr, 4, 1, buf);
|
||||
}
|
||||
|
||||
static enum target_state icdi_usb_state(void *handle)
|
||||
{
|
||||
int result;
|
||||
struct icdi_usb_handle_s *h;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
uint32_t dhcsr;
|
||||
uint8_t buf[4];
|
||||
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
|
||||
result = icdi_usb_read_mem(h, DCB_DHCSR, 4, 1, (uint8_t *)&dhcsr);
|
||||
result = icdi_usb_read_mem(h, DCB_DHCSR, 4, 1, buf);
|
||||
if (result != ERROR_OK)
|
||||
return TARGET_UNKNOWN;
|
||||
|
||||
/* REVISIT: There's no target pointer here so there's no way to use target_buffer_get_u32().
|
||||
* I guess all supported chips are little-endian anyway. */
|
||||
dhcsr = le_to_h_u32(buf);
|
||||
if (dhcsr & S_HALT)
|
||||
return TARGET_HALTED;
|
||||
|
||||
|
@ -313,8 +315,7 @@ static enum target_state icdi_usb_state(void *handle)
|
|||
|
||||
static int icdi_usb_version(void *handle)
|
||||
{
|
||||
struct icdi_usb_handle_s *h;
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
char version[20];
|
||||
|
||||
|
@ -346,8 +347,7 @@ static int icdi_usb_query(void *handle)
|
|||
{
|
||||
int result;
|
||||
|
||||
struct icdi_usb_handle_s *h;
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
result = icdi_send_cmd(handle, "qSupported");
|
||||
if (result != ERROR_OK)
|
||||
|
@ -480,11 +480,9 @@ static int icdi_usb_read_regs(void *handle)
|
|||
static int icdi_usb_read_reg(void *handle, int num, uint32_t *val)
|
||||
{
|
||||
int result;
|
||||
struct icdi_usb_handle_s *h;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
char cmd[10];
|
||||
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
|
||||
snprintf(cmd, sizeof(cmd), "p%x", num);
|
||||
result = icdi_send_cmd(handle, cmd);
|
||||
if (result != ERROR_OK)
|
||||
|
@ -498,10 +496,12 @@ static int icdi_usb_read_reg(void *handle, int num, uint32_t *val)
|
|||
}
|
||||
|
||||
/* convert result */
|
||||
if (unhexify((char *)val, h->read_buffer + 2, 4) != 4) {
|
||||
uint8_t buf[4];
|
||||
if (unhexify((char *)buf, h->read_buffer + 2, 4) != 4) {
|
||||
LOG_ERROR("failed to convert result");
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
*val = le_to_h_u32(buf);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -510,9 +510,11 @@ static int icdi_usb_write_reg(void *handle, int num, uint32_t val)
|
|||
{
|
||||
int result;
|
||||
char cmd[20];
|
||||
uint8_t buf[4];
|
||||
h_u32_to_le(buf, val);
|
||||
|
||||
int cmd_len = snprintf(cmd, sizeof(cmd), "P%x=", num);
|
||||
hexify(cmd + cmd_len, (char *)&val, 4, sizeof(cmd));
|
||||
hexify(cmd + cmd_len, (const char *)buf, 4, sizeof(cmd));
|
||||
|
||||
result = icdi_send_cmd(handle, cmd);
|
||||
if (result != ERROR_OK)
|
||||
|
@ -531,11 +533,9 @@ static int icdi_usb_write_reg(void *handle, int num, uint32_t val)
|
|||
static int icdi_usb_read_mem_int(void *handle, uint32_t addr, uint32_t len, uint8_t *buffer)
|
||||
{
|
||||
int result;
|
||||
struct icdi_usb_handle_s *h;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
char cmd[20];
|
||||
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
|
||||
snprintf(cmd, sizeof(cmd), "x%x,%x", addr, len);
|
||||
result = icdi_send_cmd(handle, cmd);
|
||||
if (result != ERROR_OK)
|
||||
|
@ -561,14 +561,12 @@ static int icdi_usb_read_mem_int(void *handle, uint32_t addr, uint32_t len, uint
|
|||
static int icdi_usb_write_mem_int(void *handle, uint32_t addr, uint32_t len, const uint8_t *buffer)
|
||||
{
|
||||
int result;
|
||||
struct icdi_usb_handle_s *h;
|
||||
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
size_t cmd_len = snprintf(h->write_buffer, h->max_packet, PACKET_START "X%x,%x:", addr, len);
|
||||
|
||||
int out_len;
|
||||
cmd_len += remote_escape_output((char *)buffer, len, h->write_buffer + cmd_len,
|
||||
cmd_len += remote_escape_output((const char *)buffer, len, h->write_buffer + cmd_len,
|
||||
&out_len, h->max_packet - cmd_len);
|
||||
|
||||
if (out_len < (int)len) {
|
||||
|
@ -595,7 +593,7 @@ static int icdi_usb_read_mem(void *handle, uint32_t addr, uint32_t size,
|
|||
uint32_t count, uint8_t *buffer)
|
||||
{
|
||||
int retval = ERROR_OK;
|
||||
struct icdi_usb_handle_s *h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
uint32_t bytes_remaining;
|
||||
|
||||
/* calculate byte count */
|
||||
|
@ -623,7 +621,7 @@ static int icdi_usb_write_mem(void *handle, uint32_t addr, uint32_t size,
|
|||
uint32_t count, const uint8_t *buffer)
|
||||
{
|
||||
int retval = ERROR_OK;
|
||||
struct icdi_usb_handle_s *h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
uint32_t bytes_remaining;
|
||||
|
||||
/* calculate byte count */
|
||||
|
@ -649,9 +647,7 @@ static int icdi_usb_write_mem(void *handle, uint32_t addr, uint32_t size,
|
|||
|
||||
static int icdi_usb_close(void *handle)
|
||||
{
|
||||
struct icdi_usb_handle_s *h;
|
||||
|
||||
h = (struct icdi_usb_handle_s *)handle;
|
||||
struct icdi_usb_handle_s *h = handle;
|
||||
|
||||
if (h->usb_dev)
|
||||
libusb_close(h->usb_dev);
|
||||
|
|
Loading…
Reference in New Issue