home

X Real Time Kernel

X-RTOS services

 X Real Time Kernel provides a set of functionalities that should be used in application software.

Task Management

X is a multiple task environment. All tasks shares the same data area and heap. The following services are available for task management:

  • Task creation: CreateThread
  • Task termination: KillThread
  • Task restarting: RestartThread
  • Task identification: GetTId, GetMyTId, GetTaskName

Context Switching

X context switching is based on Round Robin approach. Each task have a priority level ranging from 0 (higher) to 7 (lower). X version 1 is a cooperative multi-task system (a second, preemptive version is being developed, contact us for more information). Higher priority tasks are always executed first. Context switching services are:

  • Spontaneous processor release: Yield
  • Task priority change: ChangePriority, ReturnToOriginalPriority

Time services:

Several services are avaliable for time specific action programming:

  • Kernel time reading GetTime
  • Message programming: MsgAt
  • Periodic messages: PeriodicMsg
  • Periodic message clear: ClearMsg
  • Time programming: SleepFor, SleepUntil

Message passing:

Message passing between tasks:

  • Message sending: Send
  • Message reception: Receive
  • Reply sending: Reply
  • Asynchronous message send: Put
  • Message check: CheckForMsg, CheckPutQueue

Communication Channels

The following communication services are availiable:

  • Sending: Put
  • Receiving: Get
  • Monitoring: PipeId, Size, IsEmpty, IsFull

Hardware interrupts:

Interrupt handling is done by following methods:

  • Interrupt service registering: RegisterISR, UnregisterISR
  • Interrupt enabling: Enable, Disable
  • Interrupt masking: MaskHWInt, UnmaskHWInt
  • Interrupt configuration: ConfigHWInt

Software interrupts:

The following methods are used for software interrupt handling:

  • Interrupt registering: Handler
  • Interrupt activation: Signal

Semaphores

Three functions provides semaphore handling:

  • Semaphore request: Wait
  • Semaphore release: Signal
  • Semaphore check: Check