annotate ffstools/caltools/fc-rftab2c.c @ 1011:6d9b10633f10 default tip

etmsync Pirelli IMEI retrieval: fix poor use of printf() Bug reported by Vadim Yanitskiy <fixeria@osmocom.org>: the construct where a static-allocated string was passed to printf() without any format arguments causes newer compilers to report a security problem. Given that formatted output is not needed here, just fixed string output, change printf() to fputs(), and direct the error message to stderr while at it.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 23 May 2024 17:29:57 +0000
parents a684dd7799f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
439
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This utility reads an RF parameter table of one of the supported types
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * in FreeCalypso ASCII format (it has to be one of the tables that go
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * into the T_RF_BAND structure) and converts it into a C code snippet
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * suitable for insertion into the firmware source in the L1 RF "customization"
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * code where compiled-in default RF parameter tables are defined.
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 *
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 * This tool is primarily intended for use with tx-ramps tables and maybe
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 * tx-levels, but it also supports tx-calchan, tx-caltemp, rx-agc-params,
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 * rx-calchan and rx-caltemp tables.
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 *
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * This program is based on the calextract tool from 2014 (freecalypso-reveng
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 * repository) and the generated C code snippets feature the same style,
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 * indentation and comments.
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 */
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 #include <sys/types.h>
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 #include <stdio.h>
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 #include <stdint.h>
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 #include <endian.h>
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 #include <stdlib.h>
858
a684dd7799f8 fc-rftab2c.c: missing includes for string functions
Mychaela Falconia <falcon@freecalypso.org>
parents: 466
diff changeset
22 #include <string.h>
a684dd7799f8 fc-rftab2c.c: missing includes for string functions
Mychaela Falconia <falcon@freecalypso.org>
parents: 466
diff changeset
23 #include <strings.h>
439
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 u_char binbuf[512];
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 static unsigned
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 get_u16(bin)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 u_char *bin;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 return le16toh(*(uint16_t *)bin);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 static int
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 get_s16(bin)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 u_char *bin;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 int i;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 i = le16toh(*(uint16_t *)bin);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 if (i >= 32768)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 i -= 65536;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 return(i);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 do_rx_cal_params()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 int i;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 puts(" { /* T_RX_CAL_PARAMS */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 for (i = 0; i < 4; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 printf("%10u,\n", get_u16(bp));
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 do_rx_agc_bands()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 int i, s;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 unsigned u;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 puts(" { /* T_RF_AGC_BANDs */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 for (i = 0; i < 10; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 u = get_u16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 s = get_s16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 printf(" {%5u,%6d},\n", u, s);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 do_rx_temp_comp()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 int i, s1, s2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 puts(" { /* Rx temperature compensation */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 for (i = 0; i < 11; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 s1 = get_s16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 s2 = get_s16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 printf(" {%6d,%6d},\n", s1, s2);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 do_tx_levels()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 unsigned i, u, b1, b2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 puts(" { /* levels */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 for (i = 0; i < 32; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 u = get_u16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 b1 = *bp++;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 b2 = *bp++;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 printf(" {%5u,%3u,%3u}, /* %u */\n", u, b1, b2, i);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 do_tx_calchan()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 int i, j, s;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 unsigned u;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 puts(" { /* channel calibration tables */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 for (i = 0; i < 4; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 printf(" { /* calibration table %d */\n", i);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122 for (j = 0; j < 8; j++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 u = get_u16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 s = get_s16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 printf("\t{%5u,%6d},\n", u, s);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 static void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 do_ramp_16bytes(bin)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 u_char *bin;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 u_char *bp = bin;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 int i, b;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 putchar('\t');
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 putchar('{');
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 for (i = 0; i < 16; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 b = *bp++;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 printf("%3d%c", b, i == 15 ? '}' : ',');
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 putchar(',');
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 putchar('\n');
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 do_tx_ramps()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 int i;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 puts(" { /* ramps */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 for (i = 0; i < 16; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 printf(" { /* profile %d */\n", i);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 puts("\t/* ramp-up */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 do_ramp_16bytes(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162 bp += 16;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 puts("\t/* ramp-down */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 do_ramp_16bytes(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 bp += 16;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 void
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 do_tx_temp_comp()
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 u_char *bp = binbuf;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 int i, j, s[4];
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177 puts(" { /* Tx temperature compensation */");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 for (i = 0; i < 5; i++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 for (j = 0; j < 4; j++) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180 s[j] = get_s16(bp);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 bp += 2;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 printf(" {%6d,%6d,%6d,%6d},\n", s[0], s[1], s[2], s[3]);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 puts(" },");
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 static struct map {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 char *format;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 void (*func)();
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 } map_table[] = {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 {"tx-ramps", do_tx_ramps},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 {"tx-levels", do_tx_levels},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 {"tx-calchan", do_tx_calchan},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 {"tx-caltemp", do_tx_temp_comp},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 {"rx-calchan", do_rx_agc_bands},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 {"rx-caltemp", do_rx_temp_comp},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 {"rx-agc-params", do_rx_cal_params},
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 {0, 0}
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 };
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 main(argc, argv)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 char **argv;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 char *format;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 struct map *map;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 if (argc < 2 || argc > 3) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 fprintf(stderr, "usage: %s ascii-rftab-file [C-output-file]\n",
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 argv[0]);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 exit(1);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 }
466
5bcf12be0834 ffstools/caltools: null pointer passing fixes
Mychaela Falconia <falcon@freecalypso.org>
parents: 439
diff changeset
213 if (read_rf_table_ext(argv[1], binbuf, 1, &format, (unsigned *) 0))
439
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 exit(1);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 for (map = map_table; map->format; map++)
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 if (!strcmp(map->format, format))
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 break;
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 if (!map->func) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 printf("error: %s tables are not supported\n", format);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 exit(1);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 if (argc >= 3 && !freopen(argv[2], "w", stdout)) {
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 perror(argv[2]);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 exit(1);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 }
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 map->func();
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 exit(0);
f4a32c1025a2 fc-rftab2c program written, compiles
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 }