SCIOPTA
On this page:
winIDEA provides dedicated debug support for the SCIOPTA Real-Time Kernel V2. This includes specialized views for kernel objects and support for basic process profiling.
With SCIOPTA debug support you can:
•Inspect kernel objects in dedicated windows: Modules, Processes, Pools, Stacks, and Messages
•Profile running processes to see whether they are active.
winIDEA supports running process profiling for SCIOPTA. It records whether a Process is running and displays this information in the Profiler Timeline.No additional configuration is required.
•If the Process names are available when the Analyzer Session starts, they are shown directly in the Profiler Timeline. To ensure this, start and stop SCIOPTA before launching the Analyzer.
•Alternatively, you can use a Profiler XML file to define the Process names explicitly and link them to Process IDs (PIDs).
Context switching support depends on the target device:
•On Infineon TriCore devices, you can view the registers of each Process (program counter, stack pointer, etc.) in the Tasks Window when the CPU is stopped.
•On other devices and architectures, winIDEA displays process information, but only the registers of the currently running process are available.
•Kernel version - SCIOPTA Real-Time Kernel V2
•Compatibility relies on internal V2 data structures
•winIDEA version
The Modules window shows detailed information about all available modules. You can enable automatic refresh to update the list each time the processor is stopped. The currently used module is highlighted.
Modules window example
The following table describes each column in the Modules window:
Column name |
Description |
---|---|
Name |
Name of the module. |
ID |
Unique identifier assigned to the module. |
Priority |
Maximum priority level of the module. |
Processes |
Number of processes currently in the module, followed by the maximum allowed. |
Pools |
Number of memory pools currently in the module, followed by the maximum allowed. |
Free |
Amount of unused data area in the module, in bytes. |
Size |
Total size of the module’s data area. |
Used |
Percentage of the module’s data space currently in use. |
Code start |
Current address into module text segment. |
Data start |
Start address of the module’s data area. |
The Processes window shows detailed information about all Processes. You can enable automatic refresh to update the list each time the Processor is stopped. The currently running Process is highlighted.
Processes window example
The following table describes each column in the Processes window:
Column name |
Description |
---|---|
Module |
Name of the module to which the process belongs. |
Name |
Name of the process. |
ID |
Unique identifier assigned to the process. |
Stack usage |
Percentage of the stack currently in use. |
PCB |
Memory address of the Process Control Block (PCB). |
Type |
Type of process. Possible values: •PRI – Prioritized process •INT – Interrupt process •TIM – Timer process •IDL – Idle process |
State |
A process state can be one of the following values, or a combination thereof: •RUN – The process is currently running •RDY – The process is ready to run •TMO_EXP – The process's timeout has expired •TMO – The process is waiting for a timeout to expire •RX – The process is waiting to receive a message •TRG – The process is waiting on a trigger •ALLOC – The process is waiting for a message to be allocated •STOP – The process is stopped |
Priority |
Displays the process priority for prioritized (PRI) process types. For other process types, a dash (‘-’) is shown, as priority is not applicable. |
Trigger |
Current trigger value associated with the process. |
Queue |
Number of messages in the RX queue. |
Allocated |
Number of messages allocated by the process. |
Observed |
Number of observations. |
Error code |
Error code returned by library functions, if applicable. |
SP |
Current address of the stack pointer. |
Entry |
Memory address of the process’s entry (start) function. |
The Pools window shows information about all memory pools. You can enable automatic refresh to update the list each time the processor is stopped.
Pools window examle
The following table describes each column in the Pools window:
Column name |
Description |
---|---|
Module |
Name of the module to which the pool belongs. |
Name |
Name of the pool. |
ID |
Unique identifier assigned to the pool. |
Creator |
ID of the process that created the pool. |
Free |
Amount of unused data space in the pool, in bytes. |
Size |
Total size of the pool's data space, in bytes. |
Used |
Current usage of the pool's data space, expressed as a percentage. |
Peak usage |
Highest recorded usage of the pool's data space, expressed as a percentage. |
nbufsizes |
Number of distinct buffer sizes available in the pool. |
Start |
Starting memory address of the pool's data area. |
End |
Address of the first byte immediately after the pool's data area (i.e., not part of the pool). |
The Stacks window shows detailed information about all stacks. You can enable automatic refresh to update the list each time the processor is stopped. The stack of the currently running process is highlighted.
Stacks window example
The following table describes each columg in the Stacks window:
Column name |
Description |
---|---|
Module |
Name of the module to which the process belongs. |
Name |
Name of the process. |
ID |
Unique identifier (ID) assigned to the process. |
Peak Usage |
Maximum stack usage recorded, expressed as a percentage of the total stack size. |
Free |
Number of stack bytes that are currently unused. |
Size |
Total number of bytes allocated for the stack. |
Bottom |
Lowest address of the memory block allocated for the stack. |
Top |
Address immediately above the top of the allocated stack memory (i.e., the end of the stack region). |
Current |
Current value of the stack pointer. |
Lowest |
Lowest stack address reached during the process's execution, indicating the maximum stack usage. Also referred to as the stack ‘high water mark’. |
End |
Address of the first byte immediately after the pool's data area (i.e., not part of the pool). |
The Messages window displays detailed information about all available messages. You can enable automatic refresh to update the list each time the processor is stopped. Each row represents one message with multiple parameters.
Messages window example
The following table describes each column in the Messages window:
Column name |
Description |
---|---|
# |
Consecutive number of the message |
Pool |
Name of the pool from which the message was allocated. |
Pool ID |
Unique identifier of the pool in which the message was allocated. |
Address |
Memory address of the message. |
Msg ID |
Unique identifier assigned to the message. If known, displayed as a symbolic name; otherwise shown as a hexadecimal value. |
Msg ID (hex) |
Message identifier displayed in raw hexadecimal format. |
Owner |
Current owner of the message. If known, the process name is displayed; otherwise, the identifier is shown as a hexadecimal value. |
Sender |
Last sender of the message. If known, the process name is displayed; otherwise, the identifier is shown as a hexadecimal value. |
Addressee |
Last addressee of the message. If known, the process name is displayed; otherwise, the identifier is shown as a hexadecimal value. |
Size |
Requested size of the message buffer at the time of allocation. The actual kernel internal used fixed size might be larger. |
Slack |
Unused portion of the allocated buffer. Calculated as the difference between the requested message size and the kernel allocated buffer size. |