comparison target-utils/libload/cmd_memload.c @ 43:eee03b6ac615

loadagent: buglet in the ML command was breaking fc-xram; fixed
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Mon, 17 Jun 2013 07:28:51 +0000
parents 9b4c5ce3db8b
children
comparison
equal deleted inserted replaced
42:5da0cbee2b89 43:eee03b6ac615
13 void 13 void
14 cmd_memload(argbulk) 14 cmd_memload(argbulk)
15 char *argbulk; 15 char *argbulk;
16 { 16 {
17 char *argv[2], *s; 17 char *argv[2], *s;
18 u8 srecbin[256]; 18 u8 srecbin[256], cksum;
19 int len, i, c; 19 int len, i, c;
20 u32 addr; 20 u32 addr;
21 21
22 if (parse_args(argbulk, 1, 1, argv, 0) < 0) 22 if (parse_args(argbulk, 1, 1, argv, 0) < 0)
23 return; 23 return;
34 if (decode_hex_digits(s, 2, &c) < 0) 34 if (decode_hex_digits(s, 2, &c) < 0)
35 goto inv; 35 goto inv;
36 s += 2; 36 s += 2;
37 srecbin[i] = c; 37 srecbin[i] = c;
38 } 38 }
39 c = 0; 39 cksum = 0;
40 for (i = 0; i <= len; i++) 40 for (i = 0; i <= len; i++)
41 c += srecbin[i]; 41 cksum += srecbin[i];
42 if (c != 0xFF) { 42 if (cksum != 0xFF) {
43 printf("ERROR: bad ML S-record checksum\n"); 43 printf("ERROR: bad ML S-record checksum\n");
44 return; 44 return;
45 } 45 }
46 len -= 5; 46 len -= 5;
47 addr = ((u32)srecbin[1] << 24) | 47 addr = ((u32)srecbin[1] << 24) |