X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=ao-tools%2Flib%2Fao-selfload.c;h=41e45adc4f8f21009a5f1bed4264993955776fd5;hp=bf036f33daccd19c9c0de1afcd28b1c9549815c8;hb=e6c9ca218d944443c86555e513534d82713af936;hpb=d93a65a90f19e4816231e03b1f399af6e3742aee diff --git a/ao-tools/lib/ao-selfload.c b/ao-tools/lib/ao-selfload.c index bf036f33..41e45adc 100644 --- a/ao-tools/lib/ao-selfload.c +++ b/ao-tools/lib/ao-selfload.c @@ -122,3 +122,37 @@ ao_self_write(struct cc_usb *cc, struct ao_hex_image *image) cc_usb_printf(cc,"a\n"); return 1; } + +/* + * Read a 16-bit value from the USB target + */ + +uint16_t +ao_self_get_uint16(struct cc_usb *cc, uint32_t addr) +{ + struct ao_hex_image *hex = ao_self_read(cc, addr, 2); + uint16_t v; + uint8_t *data; + + if (!hex) + return 0; + data = hex->data + addr - hex->address; + v = data[0] | (data[1] << 8); + free(hex); + return v; +} + +uint32_t +ao_self_get_uint32(struct cc_usb *cc, uint32_t addr) +{ + struct ao_hex_image *hex = ao_self_read(cc, addr, 4); + uint32_t v; + uint8_t *data; + + if (!hex) + return 0; + data = hex->data + addr - hex->address; + v = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); + free(hex); + return v; +}