CONFIG_PERCEPIO_RECORDER_TRC_CFG_USE_IMPLICIT_IFE_RULES

Use Implicit IFE Rules

Type: bool

Help

Tracealyzer groups the events into "instances" based on Instance Finish
Events (IFEs), produced either by default rules or calls to the recorder
functions vTraceInstanceFinishedNow and vTraceInstanceFinishedNext.

If TRC_CFG_USE_IMPLICIT_IFE_RULES is one (1), the default IFE rules is
used, resulting in a "typical" grouping of events into instances.
If these rules don't give appropriate instances in your case, you can
override the default rules using vTraceInstanceFinishedNow/Next for one
or several tasks. The default IFE rules are then disabled for those tasks.

If TRC_CFG_USE_IMPLICIT_IFE_RULES is zero (0), the implicit IFE rules are
disabled globally. You must then call vTraceInstanceFinishedNow or
vTraceInstanceFinishedNext to manually group the events into instances,
otherwise the tasks will appear a single long instance.

The default IFE rules count the following events as "instance finished":
  - Task delay, delay until
  - Task suspend
  - Blocking on "input" operations, i.e., when the task is waiting for the
  next a message/signal/event. But only if this event is blocking.

Direct dependencies

PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT && PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT && PERCEPIO_TRACERECORDER

(Includes any dependencies from ifs and menus.)

Default

  • y

Kconfig definition

At /home/runner/work/sdk-nrf/sdk-nrf/ncs/modules/debug/TraceRecorder/kernelports/Zephyr/Kconfig:664

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:31<Zephyr>/modules/Kconfig:6<nRF>/doc/_build/kconfig/Kconfig.modules:80

Menu path: (Top) → Modules → TraceRecorder (/home/runner/work/sdk-nrf/sdk-nrf/ncs/modules/debug/TraceRecorder) → Percepio Trace Recorder → Snapshot Configuration

config PERCEPIO_RECORDER_TRC_CFG_USE_IMPLICIT_IFE_RULES
    bool "Use Implicit IFE Rules"
    default y
    depends on PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT && PERCEPIO_TRC_RECORDER_MODE_SNAPSHOT && PERCEPIO_TRACERECORDER
    help
      Tracealyzer groups the events into "instances" based on Instance Finish
      Events (IFEs), produced either by default rules or calls to the recorder
      functions vTraceInstanceFinishedNow and vTraceInstanceFinishedNext.

      If TRC_CFG_USE_IMPLICIT_IFE_RULES is one (1), the default IFE rules is
      used, resulting in a "typical" grouping of events into instances.
      If these rules don't give appropriate instances in your case, you can
      override the default rules using vTraceInstanceFinishedNow/Next for one
      or several tasks. The default IFE rules are then disabled for those tasks.

      If TRC_CFG_USE_IMPLICIT_IFE_RULES is zero (0), the implicit IFE rules are
      disabled globally. You must then call vTraceInstanceFinishedNow or
      vTraceInstanceFinishedNext to manually group the events into instances,
      otherwise the tasks will appear a single long instance.

      The default IFE rules count the following events as "instance finished":
        - Task delay, delay until
        - Task suspend
        - Blocking on "input" operations, i.e., when the task is waiting for the
        next a message/signal/event. But only if this event is blocking.

(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)