Modality includes a set of plugins to receive Percepio TraceRecorder(opens new window) data from RTOS systems. These plugins support both of TraceRecorder's protocols, snapshot and streaming. Data from either protocol can be imported from a file, and streaming data can be collected over either TCP or ITM. There are currently 3 plugins which support these various scenarios:
trace-recorder: importer for either snapshot protocol or streaming protocol data in files.
trace-recorder-rtt: collector for streaming protocol data collected live over RTT.
trace-recorder-itm: collector for streaming protocol data collected live over ITM.
trace-recorder-tcp: collector for streaming protocol data collected live over TCP.
The plugins currently support FreeRTOS. Support for other systems is coming soon.
Use the importer to import a memory dump or streaming data file, or use one of the available streaming collectors to collect data from a running system
The following describes the default mapping between TraceRecorder's concepts
and Modality's concepts. See the configuration section for ways to change the
default behavior.
Task and ISR objects are represented as separate Modality timelines
The initial startup task ('(startup)') is also represented as a separate Modality timeline
Streaming header and snapshot fields are represented as Modality timeline attributes under the timeline.internal.trace_recorder prefix
Object properties and event context fields are represented as Modality event attributes under the event.internal.trace_recorder prefix
Event field attributes are at the root level (e.g. event.channel for USER_EVENT channel field)
Task and ISR context switches will be synthesized into Modality timeline interactions
When the deviant-event-id-base configuration is provided, Deviant related information will be parsed and mapped
from TraceRecorder custom events to their reserved Modality event names and attributes.
Configuration fields should be placed in a [plugins.ingest.importers.trace-recorder.metadata],
[plugins.ingest.collectors.trace-recorder-tcp.metadata], or [plugins.ingest.collectors.trace-recorder-itm.metadata]
table in a modality-reflector configuration file.
All fields are optional.
These fields are specific to the streaming ITM collector plugin.
disable-control-plane
boolean
Disable sending control plane commands to the target.
By default, CMD_SET_ACTIVE is sent on startup and shutdown to start and stop tracing on the target.
restart
boolean
Send a stop command before a start command to reset tracing on the target.
elf-file
string
Extract the location in memory of the ITM streaming port variables from the debug symbols from an ELF file (tz_host_command_bytes_to_read and tz_host_command_data).
These are used to start and stop tracing by writing control plane commands from the probe.
command-data-addr
integer
Use the provided memory address for the ITM streaming port variable tz_host_command_data.
These are used to start and stop tracing by writing control plane commands from the probe.
command-len-addr
integer
Use the provided memory address for the ITM streaming port variable tz_host_command_bytes_to_read.
These are used to start and stop tracing by writing control plane commands from the probe.
stimulus-port
integer
The ITM stimulus port used for trace recorder data.The default value is 1.
probe-selector
string
Select a specific probe instead of opening the first available one.
chip
string
The target chip to attach to (e.g. STM32F407VE).
protocol
string
Protocol used to connect to chip. Possible options: [swd, jtag].
The default value is swd.
speed
integer
The protocol speed in kHz. The default value is 4000.
core
integer
The selected core to target. The default value is 0.
clk
integer
The speed of the clock feeding the TPIU/SWO module in Hz.
baud
integer
The desired baud rate of the SWO output.
reset
boolean
Reset the target on startup.
chip-description-path
string
Provides custom target descriptions based on CMSIS Pack files.