FreeCalypso > hg > fc-magnetite
view 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 |
line wrap: on
line source
The latest official firmware for Openmoko Neo1973 and Neo FreeRunner Calypso modems is moko13 as of this writing; moko13 is FreeCalypso Magnetite Hg changeset 286:840113655bbf built for the gtamodem target in the l1reconst configuration. There have been many changes in FC Magnetite since then, but few of them affect the l1reconst config on the gtamodem target in any noticeable way. The few noticeable post-moko13 changes which we do have in our current l1reconst code are not deemed important enough to justify making another formal release for a no-longer-made hardware platform that no longer has any real user community either. However, we also have the new TCS2/TCS3 hybrid config in which the old version of the G23M protocol stack from Openmoko (binary libs only, no source) has been replaced with a newer version from TI's TCS3/LoCosto program, and this new version is full source. This hybrid firmware has now reached the state where it is ready to be exercised by adventurous beta users in real-life usage. The new hybrid fw for the gtamodem target can be built as follows: ./configure.sh gtamodem hybrid cd build-gtamodem-hybrid; make Then after enduring the very slow build, you can flash it with fc-loadtool: loadtool> flash erase 0 0x250000 loadtool> flash program-bin 0 fwimage.bin If you are brave enough to do the above, please let us know how this new modem firmware fares when driven by QtMoko or SHR on the AP - it would definitely be an adventure! We would be most interested in working with developers or maintainers of specific AP software components that are directly responsible for talking AT commands to the modem, if there are any such developers or maintainers still around.