OSDN Git Service

[BUILD] Zap compiler warinigs.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 8 Nov 2013 04:00:50 +0000 (13:00 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 8 Nov 2013 04:00:50 +0000 (13:00 +0900)
menu_userband.c
shell_strutl.c
shell_strutl.h
term_shell.c

index d6a99d9..06f7dc4 100644 (file)
@@ -191,7 +191,7 @@ _l0:
 void input_userband(void)
 {
     unsigned char c;
-    char d;
+    int d;
         c = printhelp_2lines("User Band", "   #");
         if((c > charcode_a) && (c <= charcode_f)){
             goto _l0;
index a559348..296820f 100644 (file)
@@ -126,31 +126,32 @@ char str_shexheader(unsigned char *s, unsigned char *file)
 
 /*
  * 'S1' record to hex
- * Accept only S1 and S9.
+ * Accept only S2 and S8.
  */
-char str_shex2bin(unsigned char *s, unsigned char *p, unsigned int *addr, unsigned char *len)
+char str_shex2bin(unsigned char *s, unsigned char *p, unsigned long *addr, unsigned char *len)
 {
     unsigned char sum = 0;
     unsigned char pp;
     unsigned int i;
     unsigned char bytes;
-    unsigned char h, l;
+    unsigned char h, l, l2;
     unsigned char c;
     // Get Header
     if(s[0] != 'S')  return TERM_NONSREC;
-    if(s[1] == '1') { //  Data coire
+    if(s[1] == '2') { //  Data coire
         for(i = 2; i < 8; i += 2) if(migrate_hex(&s[i]) == 0) return TERM_SRECERR;
         bytes = hex2byte(&s[2]);
-        if(bytes <= 3) return TERM_SRECERR;
+        if(bytes <= 4) return TERM_SRECERR;
         sum = bytes;
         h = hex2byte(&s[4]);
         l  = hex2byte(&s[6]);
-        *addr = (h << 8) | l;
-        sum = sum + h + l;
-        bytes -= 2;
+        l2  = hex2byte(&s[8]);
+        *addr = (h * 65536) | (l << 8) | l2;
+        sum = sum + h + l + l2;
+        bytes -= 3;
         *len = bytes - 1;
         pp = 0;
-        i = 8;
+        i = 10;
         while(bytes > 1) {
             if(migrate_hex(&s[i]) == 0) return TERM_SRECERR;
             c = hex2byte(&s[i]);
@@ -167,16 +168,17 @@ char str_shex2bin(unsigned char *s, unsigned char *p, unsigned int *addr, unsign
         /*
          * OK!
          */
-    } else if(s[1] == '9') {
+    } else if(s[1] == '8') {
         if((s[2] != '0') || (s[3] != '3')) return TERM_SRECERR;
         for(i = 4; i < 10; i += 2)  if(migrate_hex(&s[i]) == 0) return TERM_SRECERR;
         sum = 3;
         h = hex2byte(&s[4]);
         l = hex2byte(&s[6]);
-        c = hex2byte(&s[8]);
-        *addr = (h << 8) | l;
+        l2 = hex2byte(&s[8]);
+        c = hex2byte(&s[10]);
+        *addr = (h * 65536) | (l << 8) | l2;
         *len = 0;
-        sum = ~(sum + h + l);
+        sum = ~(sum + h + l + l2);
         if(c != sum) return TERM_SUMERR;
         return TERM_SRECEND;
     } else {
@@ -196,7 +198,7 @@ void bin2hex(char *s, unsigned char v)
 /*
  * Set "S1" Record
  */
-unsigned char str_bin2hex(unsigned char *s, unsigned char *p, unsigned int addr, unsigned char len)
+unsigned char str_bin2hex(unsigned char *s, unsigned char *p, unsigned long addr, unsigned char len)
 {
     unsigned int pp;
     unsigned char pv;
@@ -204,21 +206,25 @@ unsigned char str_bin2hex(unsigned char *s, unsigned char *p, unsigned int addr,
     unsigned char i;
     unsigned char c;
     s[0] = 'S';
-    s[1] = '1';
+    s[1] = '2';
     if(len > 254) len = 254;
     i = len + 1;
     sum = i;
     bin2hex(&s[2], i);
 
-    c = addr >> 8;
+    c = (addr >> 16) & 255;
     sum += c;
     bin2hex(&s[4], c);
 
-    c = addr & 255;
+    c = (addr >> 8) & 255;
     sum += c;
     bin2hex(&s[6], c);
 
-    pp = 8;
+    c = addr  & 255;
+    sum += c;
+    bin2hex(&s[8], c);
+
+    pp = 10;
     for(pv = 0; pv < len ; pv++){
         c = p[pv];
         sum += c;
index 1232728..b9fb162 100644 (file)
@@ -48,10 +48,10 @@ extern unsigned char c2h(unsigned char c);
 extern unsigned char migrate_hex(unsigned char *p);
 
 extern char str_shexheader(unsigned char *s, unsigned char *file);
-extern char str_shex2bin(unsigned char *s, unsigned char *p, unsigned int *addr, unsigned char *len);
+extern char str_shex2bin(unsigned char *s, unsigned char *p, unsigned long *addr, unsigned char *len);
 
 extern unsigned char str_put_shexheader(unsigned char *s, char *filename);
-extern unsigned char str_bin2hex(unsigned char *s, unsigned char *p, unsigned int addr, unsigned char len);
+extern unsigned char str_bin2hex(unsigned char *s, unsigned char *p, unsigned long addr, unsigned char len);
 extern unsigned char str_put_shexfooter(unsigned char *s);
 
 extern unsigned char shell_strlen(char *s);
index 6d1d48f..93511f4 100644 (file)
@@ -192,7 +192,7 @@ static void save_to_term(unsigned char *p)
     if(shell_strcmp(xarg1, "INT") == 0) { // Internal EEPROM
         put_hexheader("INT_EEPROM");
         len = sizeof(__radioset_t);
-        p = &setup;
+        pv = &setup;
         for(pp = 0; pp < sizeof(__radioset_t); pp += 16){
             if(len > 16) {
                 put_hexline(&pv[pp], pp, 16);