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:

  • mt.conf: Enable multithreading
  • no-mt.conf: Disable multithreading
  • no-preempt.conf: Disable preemption
  • no-timers.conf:: Disable timers
  • 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
      west build -t rom_report -d build/reel_board/mt
      
    • Multithreading enabled, no preemption

      • Reference ROM size: 7-8KB
      west build -t rom_report -d build/reel_board/mt-no-preempt
      
    • Multithreading enabled, no preemption, timers disabled

      • Reference ROM size: 3-4KB
      west build -t rom_report -d build/reel_board/mt-no-preempt-no-timers
      
    • Multithreading disabled, timers enabled

      • Reference ROM size: 4-5KB
      west build -t rom_report -d build/reel_board/no-mt
      
    • Multithreading disabled, timers disabled

      • Reference ROM size: 2-3KB
      west build -t rom_report -d build/reel_board/no-mt-no-timers