diff --git a/sched/Kconfig b/sched/Kconfig index a7d3efa887f..e1219a94927 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -346,6 +346,12 @@ config USER_ENTRYPOINT applications this is of the form 'app_main' where 'app' is the application name. If not defined, USER_ENTRYPOINT defaults to "main". +config USERMAIN_PRIORITY + int "init thread priority" + default 100 + ---help--- + The priority of the user initialization thread. + endif # INIT_ENTRYPOINT if INIT_FILEPATH diff --git a/sched/init/os_bringup.c b/sched/init/os_bringup.c index faae4a16622..4f5532b175e 100644 --- a/sched/init/os_bringup.c +++ b/sched/init/os_bringup.c @@ -126,6 +126,10 @@ extern const int CONFIG_INIT_NEXPORTS; # undef CONFIG_LIB_USRWORK #endif +#if !defined(CONFIG_USERMAIN_PRIORITY) +# define CONFIG_USERMAIN_PRIORITY SCHED_PRIORITY_DEFAULT +#endif + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -259,11 +263,11 @@ static inline void os_do_appstart(void) #ifdef CONFIG_BUILD_PROTECTED DEBUGASSERT(USERSPACE->us_entrypoint != NULL); - pid = nxtask_create("init", SCHED_PRIORITY_DEFAULT, + pid = nxtask_create("init", CONFIG_USERMAIN_PRIORITY, CONFIG_USERMAIN_STACKSIZE, USERSPACE->us_entrypoint, (FAR char * const *)NULL); #else - pid = nxtask_create("init", SCHED_PRIORITY_DEFAULT, + pid = nxtask_create("init", CONFIG_USERMAIN_PRIORITY, CONFIG_USERMAIN_STACKSIZE, (main_t)CONFIG_USER_ENTRYPOINT, (FAR char * const *)NULL);