Hello FC community,

Over the course of this last week I made a little detour from my
original plans and created a firmware experiment in the form of a side
branch off our FC Magnetite mainline.  This experimental fw is called
FC Selenite and can be found here:

https://bitbucket.org/falconian/fc-selenite

This experimental Selenite fw is based on our recently-declared-stable
Magnetite hybrid code base, but unlike Magnetite it can be built
either with the original TMS470 compiler or with gcc.  FC Selenite
also uses the newer full-source version of Nucleus from XVilka (with
both compilers) - this Nucleus change was a prerequisite for transition
to gcc - and all of the assembly pieces and linker script magic are
entirely different between the two compiler environments.

Based on limited testing, FC Selenite TMS470 works no different from
Magnetite hybrid - although the latter still remains the official
stable version.  Now on to FC Selenite gcc, which was the main goal of
this week-long coding experiment, it behaves as follows:

* When built with GPRS enabled, the gcc-built fw crashes on boot.  It
appears that one of the GPRS-specific protocol stack components tries
to allocate a GPF memory partition that is larger than the maximum
configured size.  Trying to allocate a partition of an impossible size
is a hard error about equivalent to a kernel panic in a larger OS, but
of course this invalid behaviour does not occur when the the same code
is compiled with the toolchain it was designed with - hence something
is getting broken with the compiler change.  I haven't dug any deeper
yet.

* Building Selenite gcc with GPRS disabled (CSD support can be enabled
or disabled) produces firmware that boots without crashing, and works
as well as our previous gcc-built Citrine fw.  Compared to Citrine,
Selenite gcc adds CSD (I made a successful CSD call from it), audio
services (playing beeps and melodies through the DSP), and a newer
code base.  However, I would not call it stable: while testing it, I
encountered some glitches which I did not investigate further because
such investigation would require time and involvement beyond what I
had allocated for this experiment.

I do not currently plan to do much further work on this new gcc-built
fw unless someone comes forth with a strong commercial interest backed
by substantial funding.  Instead I'm going to focus on getting FCDEV3B
V2 boards made, see if my hw change fixes the sleep mode bug, and if
FCDEV3B V2 boards work as expected, continue my efforts to market our
FreeCalypso modem solution.  The marketing part is absolutely
essential, as without FreeCalypso modems in some end user form factor
put into the hands of such users, any firmware work is pointless no
matter how good or how free/libre.

Of course if anyone else is interested in getting FC Selenite gcc
working with GPRS enabled and has an FCDEV3B board and some time to
kill, feel free to go for it!

Hasta la Victoria, Siempre,
Mychaela aka The Mother
_______________________________________________
Community mailing list
Community@freecalypso.org
https://www.freecalypso.org/mailman/listinfo/community

Reply via email to