On Sat, May 14, 2011 at 6:46 PM, Harald Welte <laforge(a)gnumonks.org> wrote:
Hi all,
I'd like to re-vitalize the RTOS discussions.
I've now spend some hours reviewing the Nuttx documentation, source
code, change logs and other information, and I'm impressed!
From all that I've seen, it really seems like a good fit.
* it tries to stay as close to POSIX and other Unix APIs as possible
* you can actually have executable programs in the file system
* it contains a small interactive shell
* the changelog is verbose and releases are frequent
* there's a test suite
* there are already ports to other ARM7TDMI microcontrollers
* there is a small UI framework and the notion of drivers for SPI-
attached LCDs (with 1/2/4 bpp)
* it has tasks and threads, pre-emptive and with priorities
* it has posix message queues, which we could use for passing around
primitives between elements in the stack
* it can be used on Unix-like and Windows/Cygwin host OS
* it has its own scripts to generate toolchains, which means we
could possibly standardize on one of those toolchains
Hi Harald,
as I mentioned before, I think that Nuttx is an excellent choice.
Of course, not everything is perfect
* there seems to be no writeable FS we can put in NOR flash
* it has no scripting language integration (like lua) yet
Which RTOS that can fit in ARM7TDMI mem does ? I can see that eLua has
ARM7TDMI support (
http://www.eluaproject.net/en_status.html), but I am
not sure what are the memory requirements...
* i didn't find any memory allocator optimized for
pools of objects
of the same size (like 'struct msgb' or the like). Something with
an API [not implementation!] of the SLAB/SLUB in Linux would probably
be a good start.
I've done some example compile runs for arm7, including the shell and
the graphics support (nx example). I end up with an object code size of
something like 70 kilobytes, which is pretty good!
This is really good.
So unless anyone raises major objections, I think we
should move ahead
with Nuttx. Who is interested in working on the calypso port?
I am very interested in taking a roll in this. While pure protocol
stack is not my biggest passion, RTOS and device drivers (platform
stuff in general) is something I really like to work on.
Let's use this list for coordinating the effort.
As for where to put the code: I already have a git-svn clone of Nuttx,
and will push that to a soon-to-be-created nuttx.git repository on
git.osmocom.org. The core calypso support (irq, uart, spi, etc.) should
all go in that tree. Meanwhile we will figure out how it would be
possibel to keep the gsm related 'application' code out-of-tree from
the nuttx code base.
As soon as you push the code I will take a look at it.
Should we make some list of priorities / roadmap ? I think that
dividing the work in the set of tasks that go bottom-up, from the HAL
to shell and apps, would be better for organization.
Best regards,
Drasko