Skip to content
Permalink
Browse files

doc: guide for optimizing zephyr

Add section about how to optimize Zephyr for footprint.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
  • Loading branch information...
nashif committed May 3, 2019
1 parent 19b4868 commit 21e964ec9913c8329b671e32c665a06141e2fa4a
Showing with 74 additions and 0 deletions.
  1. +1 −0 doc/guides/index.rst
  2. +62 −0 doc/guides/optimizations/footprint.rst
  3. +11 −0 doc/guides/optimizations/index.rst
@@ -25,3 +25,4 @@ User and Developer Guides
test/index
tracing/index
west/index
optimizations/index
@@ -0,0 +1,62 @@
.. _footprint:

Optimizing for Footprint
########################

Stack Sizes
***********

Stack sizes of various system threads are specified generously to allow for
usage in different scenarios on as many supported platforms as possible. You
should start the optimization process by reviewing all stack sizes and adjusting
them for your application:

:option:`CONFIG_ISR_STACK_SIZE`
Set to 2048 by default

:option:`CONFIG_MAIN_STACK_SIZE`
Set to 1024 by default

:option:`CONFIG_IDLE_STACK_SIZE`
Set to 320 by default

:option:`CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE`
Set to 1024 by default

:option:`CONFIG_OFFLOAD_WORKQUEUE_STACK_SIZE`
Set to 1024 by default

:option:`CONFIG_PRIVILEGED_STACK_SIZE`
Set to 1024 by default, depends on userspace feature.


Unused Peripherals
******************

Some peripherals are enabled by default. You can disable unused
peripherals in your project configuration, for example::


CONFIG_GPIO=n
CONFIG_SPI=n

Various Debug/Informational Options
***********************************

The following options are enabled by default to provide more information about
the running application and to provide means for debugging and error handling:

:option:`CONFIG_BOOT_BANNER`
This option can be disabled to save a few bytes.

:option:`CONFIG_DEBUG`
This option can be disabled for production builds


MPU/MMU Support
***************

Depending on your application and platform needs, you can disable MPU/MMU
support to gain some memory and improve performance. Consider the consequences
of this configuration choice though, because you'll lose advanced stack
checking and support.
@@ -0,0 +1,11 @@
.. _optimizations:

Optimizations
##############

Guides on how to optimize Zephyr for performance, power and footprint.

.. toctree::
:maxdepth: 1

footprint.rst

0 comments on commit 21e964e

Please sign in to comment.
You can’t perform that action at this time.