zephyr/samples/basic/minimal
Ulf Magnusson eba81c6e54 yaml: Remove redundant document separators
YAML document separators are needed e.g. when doing

  $ cat doc1.yaml doc2.yaml | <parser>

For the bindings, we never parse concatenated documents. Assume we don't
for any other .yaml files either.

Having document separators in e.g. base.yaml makes !include a bit
confusing, since the !included files are merged and not separate
documents (the merging is done in Python code though, so it makes no
difference for behavior).

The replacement was done with

    $ git ls-files '*.yaml' | \
        xargs sed -i -e '${/\s*\.\.\.\s*/d;}' -e 's/^\s*---\s*$//'

First pattern removes ... at the end of files, second pattern clears a
line with a lone --- on it.

Some redundant blank lines at the end of files were cleared with

    $ git ls-files '*.yaml' | xargs sed -i '${/^\s*$/d}'

This is more about making sure people can understand why every part of a
binding is there than about removing some text.

Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2019-06-19 10:40:10 +02:00
..
src
arm.conf
CMakeLists.txt
common.conf
mt.conf
no-mt.conf
no-preempt.conf
no-timers.conf
README.rst
sample.yaml yaml: Remove redundant document separators 2019-06-19 10:40:10 +02:00
x86.conf

.. _minimal_sample:

Minimal sample
##############

Overview
********

This sample defines An empty ``main()`` and a set of minimal configurations
that provide tests for the smallest ROM sizes possible with the Zephyr kernel.

The following configuration files are available:

* :file:`mt.conf`: Enable multithreading
* :file:`no-mt.conf`: Disable multithreading
* :file:`no-preempt.conf`: Disable preemption
* :file:`no-timers.conf`:: Disable timers
* :file:`arm.conf`: Arm-specific disabling of features

Building and measuring ROM size
*******************************

In order to compare ROM sizes with different minimal configurations, the
following combinations are suggested:

* Reel board (Arm architecture)

  * Multithreading enabled

    * Reference ROM size: 7-8KB

    .. zephyr-app-commands::
       :zephyr-app: samples/basic/minimal
       :tool: west
       :host-os: unix
       :board: reel_board
       :build-dir: reel_board/mt/
       :conf: "common.conf mt.conf arm.conf"
       :goals: rom_report
       :compact:

  * Multithreading enabled, no preemption

    * Reference ROM size: 7-8KB

    .. zephyr-app-commands::
       :zephyr-app: samples/basic/minimal
       :tool: west
       :host-os: unix
       :board: reel_board
       :build-dir: reel_board/mt-no-preempt/
       :conf: "common.conf mt.conf no-preempt.conf arm.conf"
       :goals: rom_report
       :compact:

  * Multithreading enabled, no preemption, timers disabled

    * Reference ROM size: 3-4KB

    .. zephyr-app-commands::
       :zephyr-app: samples/basic/minimal
       :tool: west
       :host-os: unix
       :board: reel_board
       :build-dir: reel_board/mt-no-preempt-no-timers/
       :conf: "common.conf mt.conf no-preempt.conf no-timers.conf arm.conf"
       :goals: rom_report
       :compact:

  * Multithreading disabled, timers enabled

    * Reference ROM size: 4-5KB

    .. zephyr-app-commands::
       :zephyr-app: samples/basic/minimal
       :tool: west
       :host-os: unix
       :board: reel_board
       :build-dir: reel_board/no-mt/
       :conf: "common.conf no-mt.conf arm.conf"
       :goals: rom_report
       :compact:

  * Multithreading disabled, timers disabled

    * Reference ROM size: 2-3KB

    .. zephyr-app-commands::
       :zephyr-app: samples/basic/minimal
       :tool: west
       :host-os: unix
       :board: reel_board
       :build-dir: reel_board/no-mt-no-timers/
       :conf: "common.conf no-mt.conf no-timers.conf arm.conf"
       :goals: rom_report
       :compact: