FreeCalypso > hg > fc-magnetite
annotate doc/Freerunner-Howto @ 516:1ed9de6c90bd
src/g23m-gsm/sms/sms_for.c: bogus malloc removed
The new error handling code that was not present in TCS211 blob version
contains a malloc call that is bogus for 3 reasons:
1) The memory allocation in question is not needed in the first place;
2) libc malloc is used instead of one of the firmware's proper ways;
3) The memory allocation is made inside a function and then never freed,
i.e., a memory leak.
This bug was caught in gcc-built FreeCalypso fw projects (Citrine
and Selenite) because our gcc environment does not allow any use of
libc malloc (any reference to malloc produces a link failure),
but this code from TCS3.2 is wrong even for Magnetite: if this code
path is executed repeatedly over a long time, the many small allocations
made by this malloc call without a subsequent free will eventually
exhaust the malloc heap provided by the TMS470 environment, malloc will
start returning NULL, and the bogus code will treat it as an error.
Because the memory allocation in question is not needed at all,
the fix entails simply removing it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Jul 2018 06:04:49 +0000 |
parents | c9a65db8be4a |
children |
rev | line source |
---|---|
373
9399a83cb394
first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents:
222
diff
changeset
|
1 The latest official firmware for Openmoko Neo1973 and Neo FreeRunner Calypso |
485
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
2 modems is moko13 as of this writing; moko13 is FreeCalypso Magnetite Hg |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
3 changeset 286:840113655bbf built for the gtamodem target in the l1reconst |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
4 configuration. There have been many changes in FC Magnetite since then, but |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
5 few of them affect the l1reconst config on the gtamodem target in any |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
6 noticeable way. The few noticeable post-moko13 changes which we do have in our |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
7 current l1reconst code are not deemed important enough to justify making |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
8 another formal release for a no-longer-made hardware platform that no longer |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
9 has any real user community either. |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
373
9399a83cb394
first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents:
222
diff
changeset
|
11 However, we also have the new TCS2/TCS3 hybrid config in which the old version |
9399a83cb394
first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents:
222
diff
changeset
|
12 of the G23M protocol stack from Openmoko (binary libs only, no source) has been |
9399a83cb394
first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents:
222
diff
changeset
|
13 replaced with a newer version from TI's TCS3/LoCosto program, and this new |
485
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
14 version is full source. This hybrid firmware has now reached the state where |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
15 it is ready to be exercised by adventurous beta users in real-life usage. |
222
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
16 |
373
9399a83cb394
first round of documentation updates for 2018
Mychaela Falconia <falcon@freecalypso.org>
parents:
222
diff
changeset
|
17 The new hybrid fw for the gtamodem target can be built as follows: |
222
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
18 |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
19 ./configure.sh gtamodem hybrid |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
20 cd build-gtamodem-hybrid; make |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
21 |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
22 Then after enduring the very slow build, you can flash it with fc-loadtool: |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
23 |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
24 loadtool> flash erase 0 0x250000 |
94
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 loadtool> flash program-bin 0 fwimage.bin |
596d86109e44
initial round of documentation
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
222
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
27 If you are brave enough to do the above, please let us know how this new modem |
79cb194284ca
doc/Freerunner-Howto: update for the TCS2/TCS3 hybrid development
Mychaela Falconia <falcon@freecalypso.org>
parents:
94
diff
changeset
|
28 firmware fares when driven by QtMoko or SHR on the AP - it would definitely be |
485
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
29 an adventure! We would be most interested in working with developers or |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
30 maintainers of specific AP software components that are directly responsible |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
31 for talking AT commands to the modem, if there are any such developers or |
c9a65db8be4a
doc/Freerunner-Howto: update for the current situation
Mychaela Falconia <falcon@freecalypso.org>
parents:
373
diff
changeset
|
32 maintainers still around. |