Browse Source

target: add helper functions to get/set u16 or u32 array from/to buffer

tags/v0.6.0-rc1
Stefan Mahr 12 years ago
committed by Øyvind Harboe
parent
commit
28f088dc66
2 changed files with 37 additions and 0 deletions
  1. +32
    -0
      src/target/target.c
  2. +5
    -0
      src/target/target.h

+ 32
- 0
src/target/target.c View File

@@ -348,6 +348,38 @@ static void target_buffer_set_u8(struct target *target, uint8_t *buffer, uint8_t
*buffer = value;
}

/* write a uint32_t array to a buffer in target memory endianness */
void target_buffer_get_u32_array(struct target *target, const uint8_t *buffer, uint32_t count, uint32_t *dstbuf)
{
uint32_t i;
for(i = 0; i < count; i ++)
dstbuf[i] = target_buffer_get_u32(target,&buffer[i*4]);
}

/* write a uint16_t array to a buffer in target memory endianness */
void target_buffer_get_u16_array(struct target *target, const uint8_t *buffer, uint32_t count, uint16_t *dstbuf)
{
uint32_t i;
for(i = 0; i < count; i ++)
dstbuf[i] = target_buffer_get_u16(target,&buffer[i*2]);
}

/* write a uint32_t array to a buffer in target memory endianness */
void target_buffer_set_u32_array(struct target *target, uint8_t *buffer, uint32_t count, uint32_t *srcbuf)
{
uint32_t i;
for(i = 0; i < count; i ++)
target_buffer_set_u32(target,&buffer[i*4],srcbuf[i]);
}

/* write a uint16_t array to a buffer in target memory endianness */
void target_buffer_set_u16_array(struct target *target, uint8_t *buffer, uint32_t count, uint16_t *srcbuf)
{
uint32_t i;
for(i = 0; i < count; i ++)
target_buffer_set_u16(target,&buffer[i*2],srcbuf[i]);
}

/* return a pointer to a configured target; id is name or number */
struct target *get_target(const char *id)
{


+ 5
- 0
src/target/target.h View File

@@ -524,6 +524,11 @@ void target_buffer_set_u32(struct target *target, uint8_t *buffer, uint32_t valu
void target_buffer_set_u24(struct target *target, uint8_t *buffer, uint32_t value);
void target_buffer_set_u16(struct target *target, uint8_t *buffer, uint16_t value);

void target_buffer_get_u32_array(struct target *target, const uint8_t *buffer, uint32_t count, uint32_t *dstbuf);
void target_buffer_get_u16_array(struct target *target, const uint8_t *buffer, uint32_t count, uint16_t *dstbuf);
void target_buffer_set_u32_array(struct target *target, uint8_t *buffer, uint32_t count, uint32_t *srcbuf);
void target_buffer_set_u16_array(struct target *target, uint8_t *buffer, uint32_t count, uint16_t *srcbuf);

int target_read_u32(struct target *target, uint32_t address, uint32_t *value);
int target_read_u16(struct target *target, uint32_t address, uint16_t *value);
int target_read_u8(struct target *target, uint32_t address, uint8_t *value);


Loading…
Cancel
Save