============================== Customizing NSH Initialization ============================== **Ways to Customize NSH Initialization**. There are three ways to customize the NSH start-up behavior. Here they are presented in order of increasing difficulty: #. You can extend the initialization logic in ``boards/arm/stm32/stm3240g-eval/src/stm32_appinit.c``. The logic there is called each time that NSH is started and is good place in particular for any device-related initialization. #. You replace the sample code at ``apps/examples/nsh/nsh_main.c`` with whatever start-up logic that you want. NSH is a library at ``apps/nshlib``. ``apps.examples/nsh`` is just a tiny, example start-up function (``CONFIG_INIT_ENTRYPOINT``\ ()) that runs immediately and illustrates how to start NSH If you want something else to run immediately then you can write your write your own custom ``CONFIG_INIT_ENTRYPOINT``\ () function and then start other tasks from your custom ``CONFIG_INIT_ENTRYPOINT``\ (). #. NSH also supports a start-up script that executed when NSH first runs. This mechanism has the advantage that the start-up script can contain any NSH commands and so can do a lot of work with very little coding. The disadvantage is that is is considerably more complex to create the start-up script. It is sufficiently complex that is deserves its own paragraph