On Fri, Jul 8, 2011 at 1:19 PM, Andreas Fritiofson
<[email protected]> wrote:
> I looked briefly at the memory read functions in mips32_dmaacc.c and
> mips32_pracc.c and it looks like the type usage is a bit confused. The
> difference between the *_read_mem{32,16,8} functions should only be what
> kind of access is made *on the target*.
How do we determine that ?
I thought that it is kept in the "size" parameter, and
mips32_pracc_read_mem is doing exactly this :
int mips32_pracc_read_mem(struct mips_ejtag *ejtag_info, uint32_t
addr, int size, int count, void *buf)
{
switch (size)
{
case 1:
return mips32_pracc_read_mem8(ejtag_info, addr, count,
(uint8_t*)buf);
case 2:
return mips32_pracc_read_mem16(ejtag_info, addr, count,
(uint16_t*)buf);
case 4:
if (count == 1)
return mips32_pracc_read_u32(ejtag_info, addr,
(uint32_t*)buf);
else
return mips32_pracc_read_mem32(ejtag_info,
addr, count, (uint32_t*)buf);
}
return ERROR_OK;
}
> Host data buffer type should be
> identical, preferrably void*, with no alignment requirement, and count
> should be in number of bytes.
Problem is not in the mips32_pracc.c, thought, but when you come back
to mips_m4k_read_memory(), in which buf is uint8_t*.
BR,
Drasko
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development