Hi Everyone, I decided to bring it from here:https://github.com/apache/nuttx/pull/12641 to improve our discussion.
Historically NuttX has many initialization options and not a unified initialization process. NSH for example has its own and exclusive NSH ARCH INIT (because naturally it has more things to do than a normal application, like initializing the USB CDC/ACM channel). However it poses some issues when someone wants to get rid of NSH and initialize his/her application directly. Sometime ago we had a discussion here and it was mostly consensus that all applications need to follow a standard initialization method, even NSH. But time passed and nothing changed. Even worst, now with PR 12641 we have another option (yes, I know you also are thinking about it: https://xkcd.com/927/ ) How can we improve things? How can we simplify this? How can we remove NSH "privileges" (I mean remove NSH ARCH INIT) and still keep everything working? If someone wants to help on this subject... There is a documentation about the NuttX Initialization Sequence here: https://cwiki.apache.org/confluence/display/NUTTX/NuttX+Initialization+Sequence And many scattered in our official documentation: https://nuttx.apache.org/docs/latest/applications/examples/nxterm/index.html#initialization https://nuttx.apache.org/docs/latest/faq/index.html#board-initialization https://nuttx.apache.org/docs/latest/applications/nsh/customizing.html https://nuttx.apache.org/docs/latest/applications/nsh/customizing.html#nsh-initialization-sequence https://nuttx.apache.org/docs/latest/applications/nsh/installation.html Best Regards, Alan