How to Reduce Application Code Size
===================================

Gettng your application to fit in an image slot can be challenging,
particularly on flash constrained hardware such as the nRF51. Below are
some suggested system configuration settings that reduce the code size
of your Mynewt image.

+------------------------+---------------------------------------------+
| Setting                | Description                                 |
+========================+=============================================+
| LOG\_LEVEL: 255        | Disable all logging.                        |
+------------------------+---------------------------------------------+
| LOG\_CLI: 0            | Disable log shell commands.                 |
+------------------------+---------------------------------------------+
| STATS\_CLI: 0          | Disable stats shell commands.               |
+------------------------+---------------------------------------------+
| SHELL\_TASK: 0         | Disable the interactive shell.              |
+------------------------+---------------------------------------------+
| SHELL\_OS\_MODULE: 0   | Disable memory management shell commands.   |
+------------------------+---------------------------------------------+
| SHELL\_CMD\_HELP: 0    | Disable help for shell commands.            |
+------------------------+---------------------------------------------+

You can use the ``newt target set`` command to set the syscfg settings
in the ``syscfg.yml`` file for the target. See the :doc:`Newt Tool Command
Guide <../../../../newt/command_list/newt_target>` for the command syntax.

**Note:** The ``newt target set`` command deletes all the current syscfg
settings in the target ``syscfg.yml`` file and only sets the syscfg
settings specified in the command. If you are experimenting with
different settings to see how they affect the code size and do not want
to reenter all the setting values in the ``newt target set`` command,
you can use the ``newt target amend`` command. This command adds or
updates only the settings specified in the command and does not
overwrite other setting values. While you can also edit the target
``syscfg.yml`` file directly, we recommend that you use the
``newt target`` commands.
