comparison doc/Compiling @ 864:4fa939eada22

documentation update: how to compile and flash experimental gsm-fw for gtamodem
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sun, 10 May 2015 19:35:29 +0000
parents aad742029813
children 2d986b8c0e4e
comparison
equal deleted inserted replaced
863:78c894c7c471 864:4fa939eada22
63 install these target binaries in /usr/local/share/freecalypso, which is where 63 install these target binaries in /usr/local/share/freecalypso, which is where
64 loadtools will look for them. 64 loadtools will look for them.
65 65
66 Run 'make all' in target-utils to build some other components that aren't 66 Run 'make all' in target-utils to build some other components that aren't
67 really needed. 67 really needed.
68
69 Compiling FreeCalypso GSM firmware
70 ==================================
71
72 The firmware in our gsm-fw tree can be built in many different configurations,
73 hence there is no singular build for it. The configuration choices consist of:
74
75 * Which target device the firmware should be built for: the target device
76 selection is made at compile time; do not attempt to take a firmware image
77 built for one target device and flash or fc-xram it into another!
78
79 * What functionality is to be included. As the FreeCalypso firmware subproject
80 moves forward, we gradually add chunks of functionality, slowly approaching
81 what each target device is ultimately capable of. However, each time we add
82 a new piece of functionality, the ability to build a firmware image that works
83 like before, without the newly added functionality, still remains. Each
84 feature to be included needs to be explicitly selected.
85
86 * Miscellaneous configuration: which Calypso UART should be used for what,
87 should the firmware use a real FFS (flash file system) in flash or a fake one
88 in RAM, etc.
89
90 The GSM firmware build configuration is set by way of an editable text file
91 named build.conf; the configuration and build procedure is as follows:
92
93 1. Look at the available repertoire of standard configurations under
94 gsm-fw/configs and choose which one you would like to use, either as-is or
95 as a basis for your own;
96
97 2. Copy the configuration you selected to build.conf in the gsm-fw directory;
98
99 3. Optionally edit it to taste - the configuration language is Bourne shell;
100
101 4. Run 'make' in the gsm-fw directory.
102
103 Depending on the configuration, either a flashable or a RAM-loadable image will
104 be built by default. A flashable image will appear in finlink/flashImage.bin;
105 these images are meant to be programmed with fc-loadtool's flash program-bin
106 command; the starting flash address at which the image needs to be programmed
107 depends on the target device - see target-specific notes. A RAM-loadable image
108 will appear in finlink/ramImage.srec; these images are meant to be loaded and
109 run with the fc-xram utility.
110
111 It is possible to build either a flashable or a RAM-loadable image, or both,
112 without changing build.conf: run 'make flashImage' or 'make ramImage' as
113 desired. (The compilation of each module from source into a .o and all
114 intermediate linking steps are agnostic to whether a flashImage or a ramImage
115 is being built, only the very final link step differs.) Any otherwise working
116 configuration can be built into a flashImage, even if it makes no logical sense
117 to do so, but the ability to build a ramImage for a given configuration depends
118 on the code image size (which in turn depends on the selected feature set) and
119 the amount of RAM available on the target in question: most Calypso GSM devices
120 have small RAM, enough to satisfy a GSM firmware's data space requirements, but
121 not enough to hold the entire firmware code in RAM as well. Please see target-
122 specific notes for more details.