LinuxCNC Documentation

SYNTAX

#include "rtapi_parport.h"

int rtapi_parport_get(const char* _module_name_, rtapi_parport_t* _port_,
                      short _base_, unsigned short _base_hi_,
                      int _modes_);
void rtapi_parport_release(rtapi_parport_t* _port_);

ARGUMENTE

module_name

Konventionell ist der Name des RTAPI-Moduls oder der HAL-Komponente, die den Parport verwendet.

port

Ein Zeiger auf eine rtapi_parport_t Struktur.

base

Die Basisadresse des Ports (wenn port >= 16) oder die Linux-Portnummer des Ports (wenn port < 16).

base_hi

Die "hohe" Adresse des Anschlusses (Standort der ECP-Register), 0, um eine ermittelte hohe Adresse zu verwenden, oder -1, um die hohe Adresse zu deaktivieren.

modes

Informieren Sie den Treiber über die gewünschten Port-Modi, aus <linux/parport.h>. Wenn ein von Linux erkannter Port nicht die gewünschten Modi bereitstellt, wird mit rtapi_print_msg eine Warnung ausgegeben. Dies führt nicht dazu, dass die Portanforderung fehlschlägt, da leider viele Systeme, die funktionierende EPP-Ports haben, von Linux nicht als solche erkannt werden.

BESCHREIBUNG

rtapi_parport_get allocates a parallel port for exclusive use of the named hal component. If successful, access the port with I/O calls such as rtapi_inb at address based at the base or base_hi addresses. The port must be released with rtapi_parport_release before the component exits with rtapi_exit.

HIGH-ADDRESS-SONDIERUNG (engl. PROBING)

Wenn es sich bei der Schnittstelle um eine parallele Schnittstelle handelt, die Linux bekannt ist, und Linux eine hohe E/A-Adresse erkannt hat, wird dieser Wert verwendet. Andernfalls, wenn base+0x400 für kein Gerät registriert ist, wird dieser Wert verwendet. Andernfalls wird keine Adresse verwendet. Wenn keine hohe Adresse erkannt wird, ist port→base_hi gleich 0.

PARPORT STRUCTURE

typedef struct
{
    unsigned short base;
    unsigned short base_hi;
    .... // und weitere nicht spezifizierte Felder
} rtapi_parport_t;

RETURN VALUE

rtapi_parport_get returns a HAL status code. On success, port is filled out with information about the allocated port. On failure, the contents of port are undefined except that it is safe (but not required) to pass this port to rtapi_parport_release.

rtapi_parport_release does not return a value. It always succeeds.

ANMERKUNGEN

Im neuen Code ist die Verwendung von rtapi_parport gegenüber hal_parport vorzuziehen.