pci-toolkit

Kithara »PCI Toolkit«

Funktionsbibliothek für PCI-Treiberentwicklung

Das »PCI Toolkit« stellt alle erforderlichen Mechanismen zur schnellen Entwicklung von Hardware-Treibern – insbesondere für PCI/PCIe-Karten – bereit.

Mit einem einfach anwendbaren API können Sie von der gewohnten Programmierumgebung aus auf Hardware-Komponenten zugreifen, als wenn Sie mit hohem Aufwand einen echten Gerätetreiber entwickeln würden.

Über I/O-Ports, physischen Speicher sowie Handler zur Reaktion auf Hardware-Interrupts lässt sich prinzipiell jede Hardware im PC ansprechen, soweit die Zugriffsdetails bekannt sind. Dabei werden zur hardwarenahen Programmierung alle bekannten Bustypen unterstützt: ISA, PCI, PCIe sowie PCMCIA, CardBus und ExpressCard.

Das »PCI Toolkit« stellt Funktionen für verzögerungsfreie Zugriffe auf die I/O-Register und den physischen Speicher der PC-Hardware bereit. Zusätzlich ist auch die Behandlung von Hardware-Interrupts auf der Anwendungs- oder Kernel-Ebene möglich. Außerdem können Sie die PCI-Konfigurationsdaten und Schnittstellen-Ressourcen ermitteln.

Die gesamte Entwicklung erfolgt aus Ihrer gewohnten Programmierumgebung heraus, es werden die Programmiersprachen C/C++, Delphi und C# direkt unterstützt. Das »PCI Toolkit« stellt einen generischen Treiber bereit, über den Systemprogrammierer direkt PCI/PCIe-Hardware-Ressourcen ansteuern können.

  • Direkter Zugriff auf alle I/O-Register des PCs (8 Bit, 16 Bit und 32 Bit)
  • Direkter Zugriff auf physischen Speicher
  • Leistungsfähige Mechanismen zur Interrupt-Programmierung
  • Mehrere Handler pro IRQ installierbar
  • Generischer WDM-Treiber für Plug&Play-Installation enthalten
  • Unlimitierte Weitergabe der Runtime-Dateien
  • Nutzung der Kernel-Ebene unterstützt C/C++ oder Delphi (Win32 native)
  • Das »PCI Toolkit« löst das frühere »Hardware Toolkit« ab

Weitere Information siehe »Driver Collection«.

Hinweis: Eine individuelle Zusammenstellung der Funktionsmodule sowie Echtzeitfähigkeit erhalten Sie in der »RealTime Suite«.

Das »PCI Toolkit« enthält die folgenden Module, wobei eventuell genannte Echtzeitfähigkeit nur gegeben ist, wenn das Modul Teil der »RealTime Suite« ist.

Basisfunktionen

Base Module

  • Supports the following operating systems: Windows 7 and Windows 8 (32 and 64 bit), Server 2008 R2, Vista, Server 2003 and XP as well as Embedded versions
  • Supports PIC and APIC hardware, multi-processor PCs, Hyper-threading, multi-core etc.
  • Functions for: opening the driver, device handling, version information, debugging support, system information
  • Application threads, events, callbacks, shared memory, data and message pipes, fast mutex objects
  • further information...

Kernel Module

  • Real-time code implementation at the kernel level
  • Real-time memory management, memory copy function
  • Only in connection with C/C++ or Delphi
  • Generic WDM-driver for plug & play installation included
  • further information...

Hardware-Zugriff

IoPort Module

  • Access to all I/O registers of the PC application or DLL
  • Determination of the PCI configuration data and resource data

Memory Module

  • Access to external physical memory (Dual-Port-RAM)
  • Provision of PC memory for external hardware (DMA memory)

Interrupt Module

  • Processing of hardware interrupts at the application or kernel level
  • Use of the operating system mechanisms for interrupt processing
  • By using the RealTime Modules interrupts of PCI or PCIe Hardware can be processed

Platforms

Real-time capability can only be achieved on the kernel level.

For this purpose a programming language is required that is able to generate native x86 or x64 machine code, e.g. C/C++ or Delphi. Nevertheless the »RealTime Suite« supports various platforms, for example a .NET environment.

The solution is, to transfer the time-critical code into a DLL, which will be loaded directly into the real-time context at the kernel level. The »RealTime Suite« provides all this functions.

Instantly usable program frameworks for the platforms mentioned above are part of every software delivery.

Systemvoraussetzungen

Die Produkte der »RealTime Suite« unterstützen eine breite Palette von Hardware- und Software-Kombinationen:

Bei Fragen zur Systemunterstützung kontaktieren Sie uns bitte!

Betriebssystem

Die Software unterstützt folgende Betriebssysteme:

  • Windows 7 (32- und 64-Bit) + Windows Embedded Standard 7
  • Windows Server 2008 R2 (64 Bit)
  • Windows Vista
  • Windows Server 2003
  • Windows XP + Windows XP Embedded
  • Windows 2000 (abgekündigt, Entwicklung eingestellt)

Hardware

Die Software läuft auf folgender Hardware:

  • CPU: AMD (ab Athlon) oder Intel (ab Pentium 2)
  • 32-Bit-Anwendungen auf 32-Bit-Windows oder 64-Bit-Anwendungen auf 64-Bit-Windows (32-Bit-Anwendungen auf 64-Bit-Windows erfordert "KiK64" und ist nur in der »RealTime Suite« verfügbar)
  • Single- oder Multi-Core, Hyperthreading, maximal 8 logische CPU-Kerne (darüber hinaus siehe »RealTime Suite«)
  • ACPI-System empfohlen (Advanced Control and Power Interface), APIC-System empfohlen (Advanced Programmable Interrupt Controller) - einige Funktionen erfordern APIC-ACPI

Compiler

Sofort verwendbare Programmgerüste für folgende Programmiersprachen/Compiler sind Teil der Software-Lieferung:

  • Visual Studio 20xx C++ mit MFC-Oberfläche
  • C++Builder (Embarcadero, ehem. Borland) mit VCL-Oberfläche
  • Delphi (Embarcadero, ehem. Borland) mit VCL-Oberfläche
  • Visual Studio 20xx C# mit WPF-Oberfläche (C++-DLL für Kernel-Ausführung)
  • Microsoft Visual C++ 6 mit MFC-Oberfläche
  • Achtung! Kernel-Ebene erfordert native Code-Erzeugung (C++/Delphi)