Betriebssystem

 

 

 

 

SC12 / SC13 und SC23 IPC@CHIP

 

 

 

 

 

RTOS API

 

 

 

 

 

RTOS – API Bemerkungen

 

 

Die Headerdatei <rtxapi.h>

 

 

         Link: RTOS-Betriebssystem original, englisch

 

 


 

 

 

 

 

        

  INT  

  AH  

  Kurzbeschreibung                                                                                    

 

 

 

0xAD

 

ok

 

 

 

 

0xAD

0x00

RTX, Task für eine in ms anzugebende Zeit 'schlafen' legen

 

 

0xAD

0x01

RTX, Erzeuge eine Task und starte sie

 

 

0xAD

0x02

RTX, Halte eine Task an und lösche ihre Ausführung

 

 

0xAD

0x03

RTX, Entferne eine Task von dem System

 

 

0xAD

0x04

RTX, Hole die ID der aktuell ausgeführten Task

 

 

0xAD

0x05

RTX, Task schlafe, bis zu einer 'Aufwachen' -Nachfrage

 

 

0xAD

0x06

RTX, Wecke eine 'schlafende' Task auf

 

 

0xAD

0x07

RTX, Beende die Ausführung einer Task

 

 

0xAD

0x08

RTX, Ändere den Vorrang einer Task

 

 

0xAD

0x09

RTX, Reserviere einer Task den Zugriff auf Dateien

 

 

0xAD

0x0A

RTX, Hole Statusinformationen über eine Task

 

 

0xAD

0x0B

RTX, Hole eine Liste der Tasks auf dem System

 

 

0xAD

0x0C

RTX, Freigabe des Task-Monitoring

 

 

0xAD

0x0D

RTX, Sperren des Task-Monitoring

 

 

0xAD

0x0E

RTX, Suspendiere eine Task

 

 

0xAD

0x0F

RTX, Setze eine suspendierte Task weiter fort

 

 

0xAD

0x10

RTX, Starte eine Task, die im 'TriggerWait' Zustand ist

 

 

0xAD

0x11

RTX, Erzeuge eine Task ohne sie zu starten

 

 

0xAD

0x12

RTX, Hole den Status einer Task ohne Monitoring

 

 

0xAD

0x13

RTX, Zahl der RTX-Ressourcen auslesen

 

 

0xAD

0x14

SEM, Erzeuge eine Semaphore

 

 

0xAD

0x15

SEM, Lösche eine Semaphore

 

 

0xAD

0x16

SEM, Unconditionally free a resource semaphore

 

 

0xAD

0x17

SEM, Get use of a counting semaphore (no wait)

 

 

0xAD

0x18

SEM, Release a resource semaphore

 

 

0xAD

0x19

SEM, Get use of a resource semaphore

 

 

0xAD

0x1A

SEM, Signal a counting semaphore

 

 

0xAD

0x1B

SEM, Wait on a counting semaphore

 

 

0xAD

0x1C

SEM, Finde eine Semaphore über ihren Namen

 

 

0xAD

0x1D

RTX, Schlafe bis 31Bit RTI-Zähler abgelaufen ist

 

 

0xAD

0x1E

SEM, Warte auf eine Semaphore

 

 

0xAD

0x20

RTX, Unterbinde das Task-Sheduling, Einschlten Task-Lock

 

 

0xAD

0x21

RTX, Freigabe des Task-Sheduling, Rückgängig Task-Lock

 

 

0xAD

0x28

TIME, Hole die Systemzeit und das Datum

 

 

0xAD

0x29

TIME, Setze die Systemzeit und das Datum

 

 

0xAD

0x2A

TIME, Hole die Ticks der Systemuhr

 

 

0xAD

0x2B

TIME, Hole den Echtzeit Interrupt-Zählwert

 

 

0xAD

0x30

TMR, Install a timer procedure

 

 

0xAD

0x31

TMR, Remove a timer procedure

 

 

0xAD

0x32

TMR, Start periodic execution of a timer procedure

 

 

0xAD

0x33

TMR, Stop execution of a timer procedure

 

 

0xAD

0x34

TMR, Set timer delay

 

 

0xAD

0x40

EVENT,Create an event group

 

 

0xAD

0x41

EVENT, Delete an event group

 

 

0xAD

0x42

EVENT, Signal one or more events in a group

 

 

0xAD

0x43

EVENT, Wait for events in a group (optional timeout)

 

 

0xAD

0x44

EVENT, Read the current event states in a group

 

 

0xAD

0x45

EVENT, Get the saved event flags

 

 

0xAD

0x46

EVENT, Find an event group

 

 

0xAD

0x50

MSEX, Create a message exchange

 

 

0xAD

0x51

MSEX, Delete a message exchange

 

 

0xAD

0x52

MSEX, Send a message to a message exchange

 

 

0xAD

0x53

MSEX,Get a message from a message exchange (no wait)

 

 

0xAD

0x54

MSEX, Wait for a message from a message exchange

 

 

0xAD

0x55

MSEX, Find a message exchange

 

 

 

 

 

 

 

 

 

 

 

 

Liste der Fehlercodes im RTOS-API

 

 

 

 

 

 

 


Bei allen Aufrufen eines Softwareinterrupts stellt die mit INT gekennzeichnete hexadezimale Zahl die Nummer des Softwareinterrupts dar, der aufgerufen werden muss.
Die mit AH gekennzeichnete Zahl muss vor dem Aufruf des Interrupts in das AH-Register der CPU-geladen werden. Sie kennzeichnet ein Unterprogramm des Programms, das durch den Softwareinterrupt aufgerufen wird
[siehe z.B. die C-Funktion: int86()]

 

 

 

 

 

 

 

 

nach oben

 

 

 RTOS-API Bemerkungen:

Während sich das DOS API (Disketten Organisations System) mit seinen Funktionen um die Handhabung von Dateien und Verzeichnissen kümmert, findet man hier im RTOS-API (Real Time Operationg System) alle Funktionen aufgrund derer mehrere Programme gleichzeitig von der CPU abgearbeitet werden können. Ein einzelnes Programm erhält hier die Bezeichnung TASK, was zu erledigende Arbeit bedeutet.


Jedes dieser für sich laufenden Programme muss bei dem RTOS-Betriebssystem angemeldet werden, damit ihm dieses einen kurzen Zeitraum der Bearbeitung, bei der CPU organisiert. Das RTOS organisiert dies über eine von dem RTI-Timer gesteuerte Schleife. So dass jedes der angemeldeten Programme für eine kurze Zeit von der CPU weitergeführt wird. Jede Task erhält also ein Stück Zeit der Gesamtarbeitszeit der CPU und da CPUs schnell arbeiten, erscheint es dem menschlichen Beobachter so, als würden alle Programme gleichzeitig laufen.

Dies gilt natürlich nur, wenn nicht zu viele Tasks arbeiten. Da dies von der Geschwindigkeit der CPU abhängt, begrenzt das RTOS die Anzahl der gleichzeitig zugelassenen Tasks bei den SC1x-Derivaten auf 10 Stück.


Mit dem RTOS API ist es dem Benutzer also möglich, dem Betriebssystem eine neue Task mitzuteilen, ihr durch Prioritäten einen Vorrang bei der Vergabe von CPU-Rechenzeit zuzuordnen, Tasks für eine gegebene Zeit, schlafen zu legen oder sie wieder zu entfernen.

 

www.GoBlack.de