FreeCalypso > hg > vband-misc
annotate utils/gen-hex-lines.c @ 51:914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 12 Aug 2024 03:06:17 +0000 |
parents | utils/gen-hex-c.c@871e83f0cb76 |
children |
rev | line source |
---|---|
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
2 * This program reads an arbitrary binary file and converts it into ASCII hex |
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
3 * output with a specified number of bytes per line. The intended purpose |
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
4 * is to convert gsmx files (FR or EFR) into hex files with one frame per line. |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdio.h> |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <stdlib.h> |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 main(argc, argv) |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 char **argv; |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 { |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 FILE *inf, *outf; |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
14 int c, lcnt, bpl; |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
16 if (argc != 4) { |
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
17 fprintf(stderr, |
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
18 "usage: %s input.bin output.hex bytes-per-line\n", |
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
19 argv[0]); |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 exit(1); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 } |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 inf = fopen(argv[1], "r"); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 if (!inf) { |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 perror(argv[1]); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 exit(1); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 } |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 outf = fopen(argv[2], "w"); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 if (!outf) { |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 perror(argv[2]); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 exit(1); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 } |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
32 bpl = atoi(argv[3]); |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 lcnt = 0; |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 for (;;) { |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 c = getc(inf); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 if (c < 0) |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 break; |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
38 fprintf(outf, "%02X", c); |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 lcnt++; |
51
914eeb3ab866
efr-sid OS#6538: generate test frames in hex form
Mychaela Falconia <falcon@freecalypso.org>
parents:
13
diff
changeset
|
40 if (lcnt >= bpl) { |
13
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 putc('\n', outf); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 lcnt = 0; |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 } |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 } |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 if (lcnt) |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 putc('\n', outf); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 exit(0); |
871e83f0cb76
utils: gen-hex-c utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 } |