diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html index dec31beea..c3093d8b7 100644 --- a/nuttx/Documentation/NuttxPortingGuide.html +++ b/nuttx/Documentation/NuttxPortingGuide.html @@ -12,7 +12,7 @@

NuttX RTOS Porting Guide

-

Last Updated: September 15, 2009

+

Last Updated: November 5, 2009

@@ -2124,12 +2124,40 @@ extern void up_ledoff(int led); CONFIG_SDCLONE_DISABLE: Disable cloning of all socket desciptors by task_create() when a new task is started. If set, all sockets will appear to be closed in the new task. - : +
  • CONFIG_NXFLAT: Enable support for the NXFLAT binary format. This format will support execution of NuttX binaries located in a ROMFS filesystem (see examples/nxflat).
  • +
  • + CONFIG_SCHED_WORKQUEUE: Create a dedicated "worker" thread to + handle delayed processing from interrupt handlers. This feature + is required for some drivers but, if there are not complaints, + can be safely disabled. The worker thread also performs + garbage collection -- completing any delayed memory deallocations + from interrupt handlers. If the worker thread is disabled, + then that clean will be performed by the IDLE thread instead + (which runs at the lowest of priority and may not be appropriate + if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE + is enabled, then the following options can also be used: +
  • +
  • + CONFIG_SCHED_WORKPRIORITY: The execution priority of the worker + thread. Default: 50 +
  • +
  • + CONFIG_SCHED_WORKPERIOD: How often the worker thread checks for + work. Default: 50 MS. +
  • +
  • + CONFIG_SCHED_WORKSTACKSIZE: The stack size allocated for the worker + thread. Default: CONFIG_IDLETHREAD_STACKSIZE. +
  • +
  • + CONFIG_SIG_SIGWORK: The signal number that will be used to wake-up + the worker thread. Default: 4 +
  • diff --git a/nuttx/configs/README.txt b/nuttx/configs/README.txt index 80cd358c5..eb1a2878e 100644 --- a/nuttx/configs/README.txt +++ b/nuttx/configs/README.txt @@ -243,6 +243,24 @@ defconfig -- This is a configuration file similar to the Linux CONFIG_NXFLAT. Enable support for the NXFLAT binary format. This format will support execution of NuttX binaries located in a ROMFS filesystem (see examples/nxflat). + CONFIG_SCHED_WORKQUEUE. Create a dedicated "worker" thread to + handle delayed processing from interrupt handlers. This feature + is required for some drivers but, if there are not complaints, + can be safely disabled. The worker thread also performs + garbage collection -- completing any delayed memory deallocations + from interrupt handlers. If the worker thread is disabled, + then that clean will be performed by the IDLE thread instead + (which runs at the lowest of priority and may not be appropriate + if memory reclamation is of high priority). If CONFIG_SCHED_WORKQUEUE + is enabled, then the following options can also be used: + CONFIG_SCHED_WORKPRIORITY - The execution priority of the worker + thread. Default: 50 + CONFIG_SCHED_WORKPERIOD - How often the worker thread checks for + work. Default: 50 MS. + CONFIG_SCHED_WORKSTACKSIZE - The stack size allocated for the worker + thread. Default: CONFIG_IDLETHREAD_STACKSIZE. + CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up + the worker thread. Default: 4 The following can be used to disable categories of APIs supported by the OS. If the compiler supports weak functions, then it diff --git a/nuttx/sched/work_internal.h b/nuttx/sched/work_internal.h index 93ad57271..90f9e4ba1 100755 --- a/nuttx/sched/work_internal.h +++ b/nuttx/sched/work_internal.h @@ -64,6 +64,10 @@ # define CONFIG_SCHED_WORKSTACKSIZE CONFIG_IDLETHREAD_STACKSIZE #endif +#ifdef CONFIG_DISABLE_SIGNALS +# warning "Worker thread support requires signals" +#endif + /**************************************************************************** * Public Types ****************************************************************************/