Minimal footprint
Overview
This sample provides an empty main()
and various configuration files that
can be used to measure Zephyr’s minimal ROM footprint in different
configurations.
The following configuration files are available:
mt.conf
: Enable multithreadingno-mt.conf
: Disable multithreadingno-preempt.conf
: Disable preemptionno-timers.conf
: Disable timersarm.conf
: Arm-specific disabling of features
Building and measuring ROM size
The following combinations are suggested for comparing ROM sizes in different configurations. They all target the reel board (Arm Aarch32 architecture).
Multithreading enabled
Reference ROM size: 7-8KB
west build -b reel_board -d build/reel_board/mt samples/basic/minimal -- -DCONF_FILE="common.conf mt.conf arm.conf" west build -t rom_report -d build/reel_board/mt
Multithreading enabled, no preemption
Reference ROM size: 7-8KB
west build -b reel_board -d build/reel_board/mt-no-preempt samples/basic/minimal -- -DCONF_FILE="common.conf mt.conf no-preempt.conf arm.conf" 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 -b reel_board -d build/reel_board/mt-no-preempt-no-timers samples/basic/minimal -- -DCONF_FILE="common.conf mt.conf no-preempt.conf no-timers.conf arm.conf" 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 -b reel_board -d build/reel_board/no-mt samples/basic/minimal -- -DCONF_FILE="common.conf no-mt.conf arm.conf" west build -t rom_report -d build/reel_board/no-mt
Multithreading disabled, timers disabled
Reference ROM size: 2-3KB
west build -b reel_board -d build/reel_board/no-mt-no-timers samples/basic/minimal -- -DCONF_FILE="common.conf no-mt.conf no-timers.conf arm.conf" west build -t rom_report -d build/reel_board/no-mt-no-timers