If you want to start your application on NuttX directly without using the NSH you can setup your “app_main” in the ENTRYPOINT, although you will see that some drivers will not start anymore.
You can fix it enabling the “Board Late Init” in the menuconfig:
RTOS Features ---> RTOS hooks ---> [*] Custom board late initialization
Also you need to disable the architecture-specific initialization:
Application Configuration ---> NSH Library ---> Have architecture-specific initialization