Pike OS

RTOS ››
Parent Previous Next

Introduction

This document provides information about kernel objects for Pike operating system, available in winIDEA. Debug support provides dedicated views for various kernel objects:

Tasks,

Threads,

Resource Partition.


Views

Debug support for Pike OS is implemented as a winIDEA plug-in. To get access to all supported kernel objects as separate views (tasks, threads…) appropriate plugin needs to be loaded. Select Plugins/Options… and load PikeOS plugin from the list of available plugins.

                                       Figure 17: Plug-in selection




Kernel objects are available as separate views, loaded on demand from Plugins/PikeOS menu item.  See figure 2 for details.

                                       Figure 18: View selection


Tasks view

The PikeOS Task List view displays detailed information about all available task parameters.

Figure 3 depicts an example of tasks snapshot. Each row represents one task with multiple task parameters. Currently running task is highlighted. Currently active address space is marked with an arrow. Double click on entry will show all task related threads.

The PikeOS Task List view menu provides icons to automatically or manually refresh tasks and an icon to switch address space for a selected task. If task address space was changed, it will be automatically restored on CPU step / run.

                               Figure 19: Tasks list view example



The functionality of each listed task parameter is described inside the following table:

Parameter name

Description

TD ptr

Pointer to the task descriptor structure

Name

Task name

ID

Assigned task identification number

MPC

Maximum controlled priority number

State

State of the task

Parent ID

Task ID of the parent task

Res. Part.

ID of task-related resource partition

Num. Threads

Number of threads in the task


Threads view

The PikeOS Thread list view displays detailed information about all available thread parameters.

Figure 4 depicts an example of thread list snapshot. Currently running thread is highlighted. Double click on a thread will show the location of a thread's program counter.

The PikeOS Thread List view menu provides icons to automatically or manually refresh threads.

                               Figure 20: Thread list view example



The functionality of each listed thread parameter is described inside the following table:

Parameter name

Description

THR ptr

Pointer to the thread descriptor structure

Name

Thread name

UID

Unique ID (time partition, resource partition, task and thread IDs)

Priority

Thread priority number

State

State of the thread

Flags

Flags carrying additional state information about the thread

Task name

Name of the task that thread belongs to



Resource partition view

The PikeOS Resource partition view displays detailed information about all available resource partition parameters.

Figure 5 depicts an example of resource partition snapshot.

The PikeOS Resource partition view menu provides icons to automatically or manually refresh resource partitions.

                               Figure 21: Resource partition view example


The functionality of each listed resource partition parameter is described inside the following table:

Parameter name

Description

ResPart Ptr

Pointer to the resource partition descriptor structure

ID

Resource partition identification number

Num Pages

Overall number of pages assigned to the resource partition

Free Pages

Number of free pages

MM Pages

Number of pages used for memory management

Thread Pages

Number of pages used for thread descriptors

Task Pages

Number of pages used for task descriptors

Temp Pages

Number of pages used temporarily



Profiler configuration

To get proper names of the OS threads, user should specify two header files in “Plugins/Pike OS/Configure” dialog box

Content of two header file should simply be list of #define statements that link task IDs and thread numbers to the meaningful names. For example

and


It is recommended to use thread definition header files in your code where individual threads are created


Note: When parsing thread definition header files, winIDEA will associate individual #define to appropriate value from task definition header file.

In the example above all #define values for threads should start with the same string as corresponding PikeOS task.


To profile only single PikeOS task open “Analyzer configuration” dialog and go to “Profiler/OS Setup” dialog, where address space to profile can be selected.