On Wed, Mar 8, 2023 at 4:02 PM Sebastien Lorquet <sebast...@lorquet.fr> wrote:
> You are right about posix compliance, this is a valuable goal, but at > the same time it raises the hard remark: > > 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. 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. 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. 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. Cheers Nathan