FreeCalypso > hg > freecalypso-sw
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. |