.. _app_event_manager_profiling_tracer_sample: Application Event Manager profiling tracer ########################################## .. contents:: :local: :depth: 2 The Application Event Manager profiling tracer sample demonstrates the functionality of profiling :ref:`app_event_manager` events using the :ref:`nrf_profiler` and the :ref:`app_event_manager_profiler_tracer` modules. Requirements ************ The sample supports the following development kits: .. table-from-sample-yaml:: .. include:: /includes/tfm.txt Overview ******** The sample application consists of the following modules that communicate using events: * Module A (:file:`module_a.c`) * Module B (:file:`module_b.c`) Module A waits for a configuration event sent by :file:`main.c`. After receiving this event, Module A starts sending periodic events every second to Module B. Module A also has a counter that increases before a :c:struct:`one_sec_event` is sent. The counter value is transmitted during the event. Module B waits for the :c:struct:`one_sec_event` events from Module A. Every time it receives a :c:struct:`one_sec_event`, the module checks if the value it transmits is equal to ``5``. If it is equal to ``5``, Module B sends a :c:struct:`five_sec_event` to Module A. When Module A receives a :c:struct:`five_sec_event` from Module B, it zeros the counter, sends a series of 50 :c:struct:`burst_event`, and simulates work for 100 ms by busy waiting. .. msc:: hscale = "1.3"; Main [label="main.c"],ModA [label="Module A"],ModB [label="Module B"]; Main>>ModA [label="Configuration event"]; ModA rbox ModA [label="Increases the counter"]; ModA>>ModB [label="One-second event, counter value 1"]; ModB rbox ModB [label="Checks the counter"]; ModA rbox ModA [label="Increases the counter"]; ModA>>ModB [label="One-second event, counter value 2"]; ModB rbox ModB [label="Checks the counter"]; |||; ...; ...; |||; ModA rbox ModA [label="Increases the counter"]; ModA>>ModB [label="One-second event, counter value 5"]; ModB rbox ModB [label="Checks the counter\nCounter value matches 5"]; ModA<`