view README @ 107:b882091ebb68

gprscomp.c: DMEM_PARTITION_1_SIZE bumped from 1600 to 1700 for gcc These large DMEM partitions are used for T_CCD_Globs structure allocations by the GRLC and GRR entities, and this structure contains a jmp_buf for setjmp/longjmp. Our gcc/newlib version of jmp_buf is bigger than TI's TMS470, and the whole structure is now 1636 bytes instead of 1584.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 23 Jul 2018 19:45:50 +0000
parents 5280c5f4c5cd
children af6b7fcf7823
line wrap: on
line source

FreeCalypso Selenite is an experimental side branch off the mainline FC
Magnetite firmware.  The principal changes from Magnetite are:

* Only modem functionality is supported.  FC Magnetite includes TI's C-Sample
  and D-Sample demo/prototype UI code and work in progress toward our own
  FreeCalypso Libre Dumbphone; this code is not included and this functionality
  is explicitly unsupported in Selenite.

* Only the hybrid modem configuration is supported, using the new G23M PS and
  ACI code from TCS3.2/LoCosto, not any of the legacy configurations that used
  the blob-laden version from TCS211-20070608.

* The old version of Nucleus used in TI's TCS211 program (binary sans source)
  has been replaced with FreeNucleus by XVilka.  OSL (GPF to Nucleus glue layer)
  is the source-reconstructed version.

* The tree layout and the build system are structured in a such way that it is
  possible to build either with TI's original TMS470 compiler or with gcc.

The purpose of this Selenite fw experiment is to see what will happen if we
take our full-featured hybrid modem fw as featured in Magnetite and compile it
with gcc instead of TI's original TMS470 compiler, which also implies swapping
in the new version of Nucleus and an entirely different implementation of all
assembly components and linker script magic.  The current status is as follows:

* When built with the original TMS470 compiler, the present Selenite fw appears
  to perform no worse than Magnetite hybrid.

* The gcc-built version with GPRS enabled is broken - crashes on boot.  The bug
  has not been tracked down yet.

* With GPRS disabled (GPRS=0 on the ./configure-gcc.sh line), Selenite gcc
  boots without crashing and appears to work: I was able to connect to a GSM
  network and make both voice and CSD calls.  However, this gcc-built fw is not
  as stable as Magnetite hybrid: I saw some occasional glitches which I did not
  investigate further.

Compared to FC Citrine, the gcc-built version of FC Selenite with GPRS disabled
offers the following:

* CSD support;

* Audio services: playing beeps and melodies through the DSP;

* Newer code: FC Selenite branched off Magnetite in 2018-07,
  whereas FC Citrine has been unmaintained since 2016-10.

At the present time the Mother has no plans to do any further work on this
experimental gcc-built fw, unless someone comes forth with a strong commercial
interest backed by substantial funding.