FreeCalypso > hg > freecalypso-sw
comparison 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 |
comparison
equal
deleted
inserted
replaced
182:13a0348ffce4 | 183:85222710dc92 |
---|---|
1 /* | |
2 * Basic ETM interaction | |
3 */ | |
4 | |
5 #include <sys/types.h> | |
6 #include <stdio.h> | |
7 #include <string.h> | |
8 #include <strings.h> | |
9 #include <stdlib.h> | |
10 #include "../limits.h" | |
11 | |
12 extern u_char rvi_msg[]; | |
13 extern int rvi_msg_len; | |
14 | |
15 void | |
16 etm_packet_rx() | |
17 { | |
18 char buf[MAX_PKT_FROM_TARGET*3+80], *dp; | |
19 int i, c; | |
20 | |
21 if (rvi_msg_len < 4) { | |
22 async_msg_output("!!! Short ETM Rx packet !!!"); | |
23 return; | |
24 } | |
25 strcpy(buf, "Pkt from ETM:"); | |
26 dp = index(buf, '\0'); | |
27 c = 0; | |
28 for (i = 2; i < rvi_msg_len; i++) { | |
29 sprintf(dp, " %02X", rvi_msg[i]); | |
30 dp += 3; | |
31 c ^= rvi_msg[i]; | |
32 } | |
33 sprintf(dp, " chksum %s", c ? "BAD" : "OK"); | |
34 async_msg_output(buf); | |
35 } |