Changeset 22012


Ignore:
Timestamp:
2010-07-01T12:40:22+02:00 (8 years ago)
Author:
markus
Message:

preset stable and try* flags for TRX2 headers

  • changed addpattern.c to preset the stable and try flags used in TRXv2 images

to dupe CFE and pretend a stable image.

  • changed trx.c to calculate TRXv2 CRC with stable and try flags set to 0xFF

like CFE does on startup

  • fixed compile warnings in trx.c by explicit casting
Location:
trunk/tools/firmware-utils/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/firmware-utils/src/addpattern.c

    r20433 r22012  
    206206                        case '5': 
    207207                                /* V5 is appended to trxV2 image */ 
    208                                 hdr->stable[0] = hdr->stable[1] = 0xFF; 
    209                                 hdr->try1[0]   = hdr->try1[1]   = 0xFF; 
     208                                hdr->stable[0] = 0x73; // force image to be stable 
     209                                hdr->stable[1] = 0x00; 
     210                                hdr->try1[0]   = 0x74; // force try1 to be set 
     211                                hdr->try1[1]   = 0x00; 
    210212                                hdr->try2[0]   = hdr->try2[1]   = 0xFF; 
    211213                                hdr->try3[0]   = hdr->try3[1]   = 0xFF; 
  • trunk/tools/firmware-utils/src/trx.c

    r21986 r22012  
    103103        struct trx_header *p; 
    104104        char trx_version = 1; 
     105        unsigned char binheader[32]; 
    105106 
    106107        fprintf(stderr, "mjn3's trx replacement - v0.81.1\n"); 
     
    214215                                } 
    215216                                if (n < cur_len) { 
    216                                         fprintf(stderr, "WARNING: current length exceeds -b %d offset\n",n); 
     217                                        fprintf(stderr, "WARNING: current length exceeds -b %d offset\n",(int) n); 
    217218                                } else { 
    218219                                        memset(buf + cur_len, 0, n - cur_len); 
     
    229230                                if (n2 < 0) { 
    230231                                        if (-n2 > cur_len) { 
    231                                                 fprintf(stderr, "WARNING: current length smaller then -x %d offset\n",n2); 
     232                                                fprintf(stderr, "WARNING: current length smaller then -x %d offset\n",(int) n2); 
    232233                                                cur_len = 0; 
    233234                                        } else 
     
    258259        } 
    259260 
     261        /* for TRXv2 set bin-header Flags to 0xFF for CRC calculation like CFE does */  
     262        if (trx_version == 2) { 
     263                if(cur_len - p->offsets[3] < sizeof(binheader)) { 
     264                        fprintf(stderr, "TRXv2 binheader too small!\n"); 
     265                        return EXIT_FAILURE; 
     266                } 
     267                memcpy(binheader, buf + p->offsets[3], sizeof(binheader)); /* save header */ 
     268                memset(buf + p->offsets[3] + 22, 0xFF, 8); /* set stable and try1-3 to 0xFF */ 
     269        } 
     270 
    260271        p->crc32 = crc32buf((char *) &p->flag_version, 
    261272                                                cur_len - offsetof(struct trx_header, flag_version)); 
     
    263274 
    264275        p->len = STORE32_LE(cur_len); 
     276 
     277        /* restore TRXv2 bin-header */ 
     278        if (trx_version == 2) { 
     279                memcpy(buf + p->offsets[3], binheader, sizeof(binheader)); 
     280        } 
    265281 
    266282        if (!fwrite(buf, cur_len, 1, out) || fflush(out)) { 
Note: See TracChangeset for help on using the changeset viewer.