FreeCalypso > hg > fc-selenite
annotate doc/Compiling @ 112:fdecfb3bd860
.../drv_app/r2d/r2d_*.c: LCD include case fixes from Magnetite
R2D is not used in Selenite, but we strive to keep the two source trees
in sync as much as possible to reduce the diffs.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 13 Oct 2018 16:56:22 +0000 |
parents | a68c6c7942d7 |
children | 4238e3220682 |
rev | line source |
---|---|
109
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 Selecting and preparing the compiler environment |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 ================================================ |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 FreeCalypso Selenite firmware can be built with two different compiler |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 toolchains: either with TI's original TMS470 compiler or with gcc. Transition |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 to compiling with gcc is a very bold move with very heavy fallout, and many |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 parts of the fw are still broken or destabilized when built with gcc instead of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 the original compiler they were developed with, thus for the foreseeable future, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 anyone who aspires to be a FreeCalypso developer will need to compile our fw in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 both ways, compare the behaviour of the two versions, and work toward making |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 the gcc-built version perform as well as the TMS470-built one. Thus you need |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 to have both compiler toolchains installed and working - see the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 Toolchain-setup-470 and Toolchain-setup-gcc articles for the instructions. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 Compiling the local helper utilities |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 ==================================== |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 (cd helpers; make) |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 Do the above. Most of the build helper scripts used in the FC Selenite build |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 system are written in Bourne shell, but a few were easier to implement in C. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 You need to compile these C helper utilities before you can run an actual FC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 Selenite firmware build, but these utilities are totally ad hoc and specific |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 to the needs of our fw build system, hence they are not meant to be installed |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 globally on your system - instead they stay within the fc-selenite tree. You |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 just need to run make in the helpers directory once before any actual firmware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 builds. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 Actually building the firmware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 ============================== |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 To build our FC Selenite firmware for your hw target of interest in the default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 configuration, run a command like this from the top level of the fc-selenite |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 tree: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ./configure-gcc.sh fcdev3b |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 or |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 ./configure-tms470.sh fcdev3b |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 As of this writing, the following hardware targets are supported: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 c11x Motorola C11x/12x |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 c139 Motorola C139/140 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 fcdev3b FreeCalypso FCDEV3B |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 gtamodem The Calypso GSM/GPRS modem in Openmoko GTA01/02 smartphones |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 pirelli Pirelli DP-L10 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 Notice the difference from FC Magnetite: there is no "configuration name" |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 argument after the target name. Because FC Selenite does not include any UI |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 code (modem functionality only) and does not offer different versions of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 various fw components the way Magnetite does, it does not have named |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 configurations in the same sense as Magnetite. Instead any configuration |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 tweaks are done via var=value optional arguments on the configure command line |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 after the required target name argument; the following variables are currently |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 available for tweaking: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 ALLOW_CSIM_GSM |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 Per TI's original design, the AT+CSIM command does not allow GSM APDUs |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 of class 0xA0. Openmoko found some need for them, and they patched |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 their modem fw to allow these APDUs with AT+CSIM. With our new hybrid |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 modem fw this policy setting is configurable at build time; the default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 is ALLOW_CSIM_GSM=1 (GSM APDUs allowed). |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 DISABLE_SLEEP |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 The general default is DISABLE_SLEEP=0, and the firmware automatically |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 enables all of the chipset's available sleep modes on boot. Setting |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 DISABLE_SLEEP=1 causes all sleep modes to be disabled by default on |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 boot (they can still be enabled with the AT%SLEEP command); this |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 setting is needed for FCDEV3B V1 boards that have a hardware bug that |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 causes breakage when sleep modes are enabled. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 FCHG_STATE |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 This setting enables or disables the FCHG battery charging driver. By |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 default it is enabled on targets that have battery charging hardware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 (c11x, c139, pirelli) and disabled on those that don't have such hw |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 (fcdev3b, gtamodem). |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 GPRS |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 Self-explanatory: enables or disables GPRS. By default GPRS is enabled |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 on proper modem hw targets (fcdev3b and gtamodem) and disabled on c11x, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 c139 and pirelli. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 L1_DYN_DSP_DWNLD |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 This setting enables TI's dynamic DSP patch download mechanism. When |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 the firmware is built for a Calypso target with DSP ROM version 36 in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 the silicon (all FreeCalypso-made hw and most of the supported legacy |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 targets), L1_DYN_DSP_DWNLD is enabled by default and needs to be kept |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 enabled for correct operation: the patch code we got from TI for this |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 ROM is the dynamic download version, and the ARM-side L1 code expects |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 all of these patches to be present, both the static part and the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 dynamic parts. However, one can build our fw with L1_DYN_DSP_DWNLD=0 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 for experimental testing, to see what breaks when the dynamic patches |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 are omitted. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 L1_VOICE_MEMO_AMR |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 Service for AMR voice memo recording and playback. This code has not |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 been properly studied yet and no test AT commands are provided for it, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 but it is enabled by default like in TI's original TCS211 fw. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 MELODY_E2 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 Service for playing E2-format melodies. The default is MELODY_E2=1 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 like in TI's original TCS211 fw. Note that Melody E1 support is always |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 enabled; setting MELODY_E2=0 disables only Melody E2, but not E1. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 MEMSUPER |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 This setting enables the memory supervision feature in TI's GPF and in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 the G23M protocol stack built on top of it. This code has not been |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 properly studied yet; play with it at your own risk. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 SERIAL_DYNAMIC_SWITCH |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 TI's TCS211 fw includes a provision (only for Bluetooth-enabled fw in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 TI's original) to switch one UART between the AT command interface and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 RVTMUX while the other UART is fixed for Bluetooth. In FreeCalypso we |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 have changed this code to work without Bluetooth, for the purpose of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 switching the user-facing MODEM UART between AT commands and RVTMUX, |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 but the mechanism does not work properly yet and is disabled by default. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 Enable it with SERIAL_DYNAMIC_SWITCH=1 if you would like to play with |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 it. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 SPEECH_RECO |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 This setting enables or disables support in L1 and in the RiViera Audio |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 Service for TI's speech recognition mechanism. This code and the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 underlying DSP facility itself have not been properly studied yet and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 no test AT commands are provided for it, but it is enabled by default |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 like in TI's original TCS211 fw. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 SRVC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 TI's original config variable, selects the presence or absence of data |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 services other than GPRS as follows: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 SRVC=0: voice and SMS only |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 SRVC=1: CSD and fax enabled |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 SRVC=2: CSD enabled, but not fax |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 The default is SRVC=1 (fax and data enabled) for proper modem hw targets |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 (fcdev3b and gtamodem) and SRVC=0 (voice and SMS only) on c11x, c139 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 and pirelli. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 SUFFIX |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 This setting is solely for configuration management. If you make a |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 build with any of the settings described in this document changed from |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 the default, you should also pass a SUFFIX=-xxx argument so your special |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 build will be appropriately identified in the build directory name and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 in the firmware version ID string compiled into the image. The naming |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 of suffixes is up to you, but here are some examples: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 L1_DYN_DSP_DWNLD=0 SUFFIX=-nodyn |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 MELODY_E2=0 SUFFIX=-noe2 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 MEMSUPER=2 SUFFIX=-ps |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 SERIAL_DYNAMIC_SWITCH=1 SUFFIX=-sds |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 SPEECH_RECO=0 SUFFIX=-nosr |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 TR_BAUD_CONFIG=TR_BAUD_812500 SUFFIX=-812500 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 TR_BAUD_CONFIG |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 The value of this symbol is an alphanumeric keyword of the form |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 TR_BAUD_xxxxxx; the default is TR_BAUD_115200. See |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 src/cs/drivers/drv_core/uart/traceswitch.h for the available baud rate |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 choices; the most practical use is setting TR_BAUD_CONFIG=TR_BAUD_812500 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 when you need to run the RVTMUX serial channel at the maximum possible |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 baud rate. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 Each configuration is built in its own directory; the name of this build |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 directory always begins with build- and is constructed to reflect the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 configuration. The auto-generated build directory name includes the name of |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 the target, the selection of services to be included based on the GPRS, SRVC |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 and FCHG_STATE variables, and a -470 or -gcc suffix indicating the compiler |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 toolchain, but if you manually override any of the other config variables |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 described above, you should also include a SUFFIX=-xxx argument giving an |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 identifying suffix for your own configuration changes. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 To actually compile the firmware, cd into the created build directory and run |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 make there. With gcc the build proceeds very fast because the compiler runs |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 natively, but building with the original TMS470 compiler requires going through |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 Wine, which is much slower. There is, however, a trick to speed up these |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 TMS470 builds: if you run some other Wine program that stays open and does not |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 exit on its own (e.g., wine cmd) in another window and leave it open while you |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 run your Selenite TMS470 build, the build will proceed much faster - the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 presence of another Wine process using the wineserver environment will keep |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 Wine from shutting this environment down and restarting it for every individual |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 cl470 run, i.e., for each individual C source file. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 When the build is done, the flashable firmware image will be in fwimage.bin. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 This image is to be flashed with fc-loadtool at address 0x10000 on Mot C11x and |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 C139 targets, and at address 0 on the more sensible targets that have the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 Calypso boot ROM enabled. The build system also produces a short text file |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 named flash-script which is a flashing command script for fc-loadtool that |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 erases the correct range of flash sectors and then programs fwimage.bin at the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 right address. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 When building firmware for the FCDEV3B or for the Pirelli, one can build either |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 a flashable image or a RAM-loadable one - or both. Because this part of the |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 build system is common with other targets for which only flash images can be |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 produced, the Makefile always builds the flashable image by default - |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 fwimage.bin is always meant for flash and never for RAM. To build a RAM- |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 loadable image when the target allows it, run 'make ram' - the image will be in |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 ramimage.srec, which you can then load and run on the target with FreeCalypso |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 host tool fc-xram. |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 Running on the hardware |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 ======================= |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 In order to run the firmware you have built on your FCDEV3B or other Calypso |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 device (flash or run in RAM as appropriate), you will need to use FreeCalypso |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 host tools. As of this writing, the latest packaged release is this one: |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 |
a68c6c7942d7
doc: basic build documentation written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 ftp://ftp.freecalypso.org/pub/GSM/FreeCalypso/fc-host-tools-r8.tar.bz2 |