Services of the system

In addition to the normal functionalities of an operating system, PXROS-HR provides further services to an application. These services can be subdivided into services of the core system, which can be used at any time, and supplementary services that have to be linked in the form of independent modules.

PxSysInfo services

PxSysInfo services give access to information on the internal system condition. Details to be requested include the number and type of objects used, and the number of free objects.

Tracing

The PXROS-HR tracing service allows to record system calls, message exchange and events for debugging purposes. The called function and its arguments as well as a time stamp are stored in a buffer. These stored data can then be read by the application and interpreted by an analysis tool.

PXROS-HR Service Task

A PXROS-HR Service Task is used in certain situations for calling system services. If a task terminates, the Service Task will be informed to release task specific memory like the TCB and the task object. Any task can be declared as a Service Task as long as it has the access permission PXACCESS_SYSTEM_CONTROL, see Permissions.

System monitor

Communication between the debugger on the host side and the PXROS-HR system requires an appropriate interface, which is provided by the system monitor. Besides the interface for the debugging functionality there is also a second interface for reloading Tasks. The system monitor is included in the functional range of the operating system.

The system monitor is capable of intercepting memory protection traps, and passing them on to the debugger.

_PxHndcall

With _PxHndcall PXROS-HR provides an interface to execute user functions in supervisor mode. This feature is especially helpful in the context of hardware initialization whenever register accesses require supervisor privileges. Common use-cases are the activation of peripheral modules via the clock control registers (CLC) and the execution of code sequences under temporarily disabled Endinit protection.

In order to prevent corruption of kernel data the provided user function is executed in the context of the calling task. Thus, it might be necessary to assign peripheral address ranges to the task’s additional protection regions table.

Similar to most of the system service calls, functions called via _PxHndcall cannot be interrupted by other tasks or Context Handlers, but only by Fast Context and Fast Handlers.