At some point NuttX will grow too large for deep embedded platforms.


My concern exactly. Yes, POSIX compliance is super important because it
provides portability: I regularly write a program and run it on PC and
embedded with almost no changes. This is one of the big selling points of
NuttX for me.

I don't that the specific TERMIOS configuration we are talking about here is an significant issue.  I don't expect any large code size change as a consequence of enabling TERMIOS because the extent of logic enabled is not enormous.

But the general principle and the agreement on the project values is more significant.

At the same time, there's another kind of portability: between MCU models
and families. Before NuttX if I had a firmware running perfectly on PIC32
and wanted to move it to Tiva I had to rewrite everything. NuttX support
for many MCU models eliminates this (except the occasional bugfix in low
level driver code or something). That's a huge advantage. Supporting lots
of architectures means the next project is likely to find one that will
work.

Related: This would be an issue for people who have to support a product for an extended life.  In the early 2010's, for example, there were products using NuttX based on MCUs with 32Kb of FLASH memory.  I suspect those would already be in trouble.

The moral of this is:  If you have to support the same hardware for years and years, you really need to freeze the OS version and backport any critical fixes as necessary.

If we won't fit on the smaller micros, we'll lose some of that advantage.
Maybe it doesn't matter. Maybe the days of super small MCUs are numbered
and things are moving to bigger flash, 64-bit, and Raspberry Pi class
embedded systems. Maybe that's okay. But, if that's the direction to go,
then we just need to be clear about what our future holds so that users
won't build designs around micros that are not going to be supported for
much longer.
We can't compete in size with RTOSs like FreeRTOS, mbed, ChibiOS. Never could.  Those things only need about 4Kb of memory and would be the RTOS of choice for use with really small MCUs.
Maybe, like FreeBSD, we should declare support "tiers" for different
architectures and MCUs, with Tier 1 meaning supported fully and other tiers
for things like partial support (experimental?) or deprecated... just a
thought.

Good idea... but I doubt that we could ever staff this.

Slightly different topic:  I have almost every board that ever ran NuttX from about 2005 through 2020 or so.  That is probably several hundred boards.  I don't use them any more and am thinking about just dumping them to make space.  Is there anyone willing to pay the shipping from Costa Rica on a massive dump of older but interesting hardware?


Reply via email to