FreeCalypso > hg > freecalypso-sw
diff rvinterf/etm/etmbasic.c @ 183:85222710dc92
rvinterf/etm: implemented everything except the packet sending command
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 24 Nov 2013 08:03:27 +0000 |
parents | |
children | 4714fdfca39c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/etm/etmbasic.c Sun Nov 24 08:03:27 2013 +0000 @@ -0,0 +1,35 @@ +/* + * Basic ETM interaction + */ + +#include <sys/types.h> +#include <stdio.h> +#include <string.h> +#include <strings.h> +#include <stdlib.h> +#include "../limits.h" + +extern u_char rvi_msg[]; +extern int rvi_msg_len; + +void +etm_packet_rx() +{ + char buf[MAX_PKT_FROM_TARGET*3+80], *dp; + int i, c; + + if (rvi_msg_len < 4) { + async_msg_output("!!! Short ETM Rx packet !!!"); + return; + } + strcpy(buf, "Pkt from ETM:"); + dp = index(buf, '\0'); + c = 0; + for (i = 2; i < rvi_msg_len; i++) { + sprintf(dp, " %02X", rvi_msg[i]); + dp += 3; + c ^= rvi_msg[i]; + } + sprintf(dp, " chksum %s", c ? "BAD" : "OK"); + async_msg_output(buf); +}