topic_newsletter

Jetzt upgraden auf 64 Bit

Alle Module der Echtzeiterweiterung nun auch für Windows 7 mit 64 Bit

Berlin, 03. November 2011

Alle wesentlichen Funktionsmodule der Echtzeiterweiterung »RealTime Suite« liegen inzwischen auch in einer 64-Bit-Version vor. Dazu gehören folgende Funktionsgruppen:

  • Echtzeit-Timer und -Multitasking
  • Hardwarenahe Programmierung (PCI- und PCIe)
  • Automatisierungsprotokolle (EtherCAT, CANopen)
  • Kommunikation über serielle Schnittstellen (COM/UART), CAN, USB

Damit wird nun auch Windows 7 mit 64 Bit vollständig*1) unterstützt. Um auf die Kernel-Ebene (und damit in den Echtzeitkontext) zu gelangen, ist entsprechend eine 64-Bit-Anwendung zu erstellen. Hierzu kann z.B. die Entwicklungsumgebung Microsoft Visual Studio 2010 mit der Sprache C++ genutzt werden. Die Anwendung mit grafischer Oberfläche selbst lässt sich z.B. auch in C# erstellen, lediglich die hardwarenahen und zeitkritischen Programmteile werden in eine in C++ programmierte DLL ausgelagert.

Normalerweise muss auf 64-Bit-Systemen jeglicher Programmcode, der für die Kernel-Ebene (Echtzeitkontext) gedacht ist, auch in 64 Bit vorliegen. Mit dem speziellen Modul Kithara32-in-Kithara64 (“KiK64”) ist es auch möglich, 32-Bit-Code auf 64-Bit-Systemen auszuführen. Dies ermöglicht es, mit ein und derselben Anwendung sowohl 32-Bit- als auch 64-Bit-Plattformen zu unterstützen. Damit wird für alle aktuellen Windows-Systeme eine einzige Applikation ausgeliefert! Gegenüber früherem Code ist kein Anpassungsaufwand erforderlich. Zu beachten ist jedoch unbedingt, dass die häufige Umrechnung zwischen 32- und 64-Bit-Adressen (Code und Daten) einen hohen Anteil an CPU-Rechenleistung erfordert. Dies ist bei Echtzeitanforderungen zu berücksichtigen!

Hier noch einmal zusammengefasst, welche Versionen die »RealTime Suite« künftig unterscheidet:

  1. wie bisher 32-Bit-Anwendungen auf 32-Bit-Windows,
  2. zusätzlich auch 64-Bit-Anwendungen auf 64-Bit-Windows,
  3. zusätzlich auch 32-Bit-Anwendungen auf 64-Bit-Windows ("KiK64").

Unter der Voraussetzung, dass nur die von Kithara seit Jahren empfohlenen Datentypen und Typdefinitionen verwendet wurden, ist es nicht erforderlich, den Quellcode anzupassen*2). Zu beachten ist allerdings, dass die Module Serial und USB mit dem bisherigen API nicht weiter unterstützt werden.

Sowohl das Serial Module als auch das USB Module liegen in neuen Implementierungen vor: besser, schneller, einfacher, voll echtzeittauglich und auch für 64 Bit ausgelegt.


*1) Ganz vollständig ist die 64-Bit-Unterstützung nicht. Das bisherige Filter Module wird nicht weiter vertrieben und wurde schon vor langer Zeit durch das bessere und einfachere Device Module ersetzt. Die Portierung des Keyboard Modules wurde auf unbestimmte Zeit verschoben.

*2) Eine Ausnahme betrifft die Funktion KS_registerKernelAddress(), die nicht mehr unterstützt wird.