Change-Log of Kithara »RealTime Suite«
The »RealTime Suite« is already developed for 15 years and we continuously extend it with new functions. The following updates and function upgrades are added in various versions:
2012-01-18 — Version 9.24
Innovations/Advances:
- Support of Gigabit-Ethernet-Controllern mit Intel 82566/67, 82577/78/79, 82583 und i350 RealTek 8168E/8111E
- Improvement of Distributed Clocks support in EtherCAT
- New function KS_enumEcatDcModes to list all DC Modes of an EtherCAT slave
- Replacement of the old USB API by the new USB API in the USB Module (smarter, faster, fully real-time capable, 64-bit)
- Improvement using multiple CAN cards simultaneously
- Better support of computers with missing MP table
- Better recognition and handling of some developer's program failures
Revisions/Corrections:
- Fixed problem with newest version of McAfee
- Fixed endless loop timer in some rare cases
- Fixed Intel-Pro/100 communication on 64 bit systems
- Fixed handling of floating point context on CPUs with AVX
- Fixed USB time stamps on PEAK PCAN USB modules
- Fixed handling of data type REAL in EtherCAT
2011-10-28 — Version 9.23
Innovations/Advances:
- Execution of 32-bit real-time code on 64-bit systems “Kithara32-in-Kithara64” ⇒ shortly called “KiK64” (this operating mode is originally not provided in Windows 7 but allows now for using the same 32-bit application even on 64-bit Windows 7 in real-time)
- Support of new CPUs: AMD “Bulldozer”
- New Real-time timer concept (lower jitter, without drifting)
- Support of Gigabit Ethernet controllers with Intel 82574/75/76 and 82580
- New functions: KS_getSystemInformation & KS_getCurrentContext
- Support of the EtherCAT device EL6751 from Beckhoff for CAN and CANopen
- Replacement of the old Serial API by the new “UART Module” API in the Serial Module (smarter, faster, fully real-time capable, 64-bit)
- Kithara-original Run-time Library with trigonometric/mathematical and string functions for the real-time context (supports 32-bit and 64-bit, KiK64 not yet)
Revisions/Corrections:
- Better overall support of Windows 7 with 64-bit
- Real-time characteristics on Computers with Intel Core i7
- Fixed issues with UART port if reopened with different properties
- Fixed BSOD while opening or closing UART ports
- Fixed some wrong behaviour with Error-Event-Handling
- Fixed CAN port behaviour
Issues/Known Problems:
- BSOD with newest version of McAfee
2011-08-30 — Version 9.22
Innovations/Advances:
- 64-bit support of modules: RealTime, Packet, Socket, EtherCAT, CAN, CANopen
- Special support of EL6751 CANopen Master embedded in EtherCAT
- KS_CPU_LEVEL & KS_RTX_LEVEL for QuickMutexes have changed!
- Added support of RealTek 8168D/8168DP and Intel 82575/82576/82580 network cards
- Local-APIC hardware timer: better calibration and adjustment
- Extension for support of more than 8 CPUs (or CPU cores) for real-time
- New distinct shot real-timer (when appropriate hardware available)
- EtherCAT: DC start time improvement
- EtherCAT: Firmware download supported
- EtherCAT: support of slaves where CoE information is contained in EDS files
- Master Monitor: added adjustable real-time timer for PDO communication (default: 10 ms)
- Physical memory improvement for real-time Ethernet communication
- Extended hardware support: “Sandy Bridge” CPUs
- Improvement of Update Manager (supports Runtime-Installation too)
- RTX bytewise relocation improvement
- Improvement on security attributes for tracing under Windows 7
- Support of VirtualBox 4 guests
Revisions/Corrections:
- Fixed creation/destruction order for objects in EtherCAT DC
- Fixed retriggering TX on RealTek gigabit controllers
- Better consideration of EtherCAT state change timeouts from XML
- Fixed KS_setBusData/KS_getBusData
- Fixed Serial hangup bug after breaking due to a user error code
- EtherCAT Master always starts with INIT state after startup
- Fixed bad alignment for Serial data structure due to changed global alignment
- Fixed fast I/O port access (not implemented in Vista, supported on Windows 7)
- Fixed BSOD in EtherCAT
- Fixed USB receive with timeout & USB timeout bug
- Fixed shift time in EtherCAT DC mode
- Fixed USB time stamps on PEAK PCAN USB modules
- Fixed EtherCAT sending multiple datagrams
- Fixed Intel-Pro/100 Ethernet card access
- Fixed adding user error strings with KS_addErrorString
- Fixed EtherCAT datasets consisting of multiple datagrams
- Compatibility with Windows 2000 SP 4 (before SP 4 not supported)
- Fixed adding new error codes in ErrorMgr
- Support for Windows 7 SP 1
- Fixed syntax error in BAS file for VB6, “const*” issues in Kxxx_dyn.cpp (dynamic loading of the DLL), “const” issues in C#
Issues/Known Problems:
- Running in VirtualBox 4.1 guests currently not tested
- Not running in VMware guests
2011-02-17 — Version 9.21
Innovations/Advances:
- Fast I/O port access for newer operating systems (Windows 7, Vista, 2008 R2, XP SP3)
- CANopen Module with real-time Master functionality
- Using SSE registers & instructions for KS_memCpy/KS_memMove/KS_memSet functions (set KSF_USE_SSE)
- 64 Bit support now for modules: Base, Kernel, IoPort, Memory, Interrupt, Clock (RealTime, MultiTasking, Packet, Socket, EtherCAT, CANopen upcoming)
- Allow pseudo SyncManagers KS_ECAT_SYNC_ALL, .._INPUT and .._OUTPUT for KS_setEcatPdoAssign
- Packet Module now always with Gigabit support
- New program Ksetup9.exe for run-time setup (supporting 32 and 64 bit platforms)
- New interface file for Fortran 90
- EtherCAT: functions KS_[query/enum]Ecat[Slave/DataObj/DataVar]Info in real-time context
- Extended hardware support (Intel “Sandy Bridge” CPUs, Intel Pro/1000 82545/82546)
Revisions/Corrections:
- Fixed bug causing clock jumps on 64 bit systems
- Fixed freeze when opening/closing RealTek 1000 under communication load
- Function KS_memCpy now gets 4th parameter 'flags' for possible KSF_USE_SSE
- EtherCAT: KS_queryEcatDataObj fixed when selecting only PDO or SDO objects
- EtherCAT now needs the network adapter interrupt as real-time (except KSF_FORCE_OVERRIDE set on KS_createEcatMaster)
- Real-time network adapter interrupts need explicite IRQ or PCI Express (except KSF_FORCE_OVERRIDE set on KS_openAdapter)
- Fixed bug on single-core PCs without APIC mode
- Fixed automatic baud rate measurement for serial ports on some machines
- Correct re-initialization of real-time after system sleep mode
- Less restictive hardware usage for non-real-time custom drivers
2010-12-10 — Version 9.13k
Innovations/Advances:
- 64 Bit support now for modules: Base, Kernel, IoPort, Memory, Interrupt
- More efficient task switching
- Considering SSE registers with KSF_SAVE_FPU
- “Distinct shot real-timer” allows for more exact real-time events out of grid
- Exhanced code relocation in KS_createCallBack
- Removal of limiting the number of shared memory ranges
- EtherCAT: more efficient mailbox communication
- Multi-tasking module now supports user level too
- Real-time tasks can be assigned to specific CPU cores
- New functions KS_setTargetProcessor/KS_getCurrentProcessor for selecting CPU cores
- Real-Time timer callbacks on user level with cycles below 1 ms
- New function KS_yieldTask to switch to another task
- Extended hardware support (Intel Atom Z350, Intel Pro/1000 82546)
Revisions/Corrections:
- Better support of multiple CPU cores by Clock functions
- More robust acceptance of Windows functions when executed on the kernel-level
- EtherCAT adjusted task priorities for mailbox communication
- Improved CAN message timestamp for USB devices from PEAK Systems
- Fixed handling with USB device names for multiple equal devices
2010-08-23 — Version 9.12h
Innovations/Advances:
- New CANopen Module as part of »RealTime Suite«
- EtherCAT: functions read/post enhanced for direct access to PDOs
- EtherCAT: SDO info can be read from slaves not online
- Addition to the MultiFunction module - Heidenhain IK220
- New functions for querying the EtherCAT object & variable infos
- New functions for querying the Profibus slot & variable infos
- Added support for PEAK PCAN PCI Express card (1 & 2-port real-time CAN)
- Addition to the MultiFunction module - AddiData APCI-035, APCI-3701
- Support of VMware virtual machine
- CPP & PAS files for dynamic access to the DLL (C++, Delphi)
- CAN module now supports Kvaser PCI Express cards
- KS_postMessage now based on internal pipes & enhanced to 4096 messages
- Packet module now supports Intel Pro/1000 NICs with 82574 & 82583
- Gigabit NICs can now be forced to 100MBit or acting as master
Revisions/Corrections:
- Check for HPET already in use
- Improved checking the support of RDTSCP on Intel CPUs
- EtherCAT: corrected index range check
- EtherCAT: bug fixed when reading SDO info
- Improvements on RealTek gigabit NICs
- Bug fix in relocation fixups when loading a DLL on kernel-level
- Samples projects renamed to have the module name in front
- Physical memory caused BSOD when used from multiple kernels
- Improved support for synchronizing all hardware clocks
- Better recognition of reloading EtherCAT SDD cache files
- EtherCAT: better reading of XML SDD files
- Various bug fixes in the USB module
- Fixed linker error in sample project “VS2005or08_CSharp_with_WPF”
- Possible BSOD when closing the kernel or removing a kernel event
- Defined missing data types for PAS file
- Function KS_calibrateMachineTime is obsolete, but measures effective CPU frequency
2010-06-21 — Version 9.11m
Innovations/Advances:
- New Profibus Module as part of »RealTime Suite«
- Real-time memory allocation based on internal memory management
- New functions KS_malloc/KS_free for real-time memory allocation
- Changed hardware ID scheme for devices, unified for all functions
- Same devices now have names …\#1, …\#2 etc.
- Common support of PM timer when the PC has ACPI
- Common support of High-Performance Event Timer (HPET) when available
- Changed automatic hardware clock adjustment
- EtherCAT now with full support of Distributed Clocks (DC), 3 new functions
- DC clock synchronized with internal real-time clock
- EtherCAT slave registers can be accessed directly via slave memory read/write
- CAN module now supports CAN cards from Kvaser & esd
- Better TSC adjustment on multi-core CPUs
- Improved semaphore handling in Task module
- Delphi source file now supports dynamic access to DLL (…_dyn.pas)
- One-shot synchronized real-time timers for further reducing jitter
- New MultiFunction module supporting A/D I/O cards of different vendors
- New function KS_startTimerDelayed for synchronized timer regime
- Master Monitor uses EtherCAT API 2.0 as default
- Extension for support of more than 8 CPU cores (now up to 32)
- Packet handler can be installed in parallel to sockets
- Extension for support of more than 4 Ethernet ports
- CAN now saves exact timestamp (0.1 µs resolution) with every received telegram
Revisions/Corrections:
- Possible system freeze in EtherCAT Master
- Optimized locks in Task module
- NOLRW attribute considered from EtherCAT XML file
- Interrupt handling now round-robin for multiple CAN cards
- EtherCAT: LWR-LRD bug fixed
- EtherCAT: virtual sync manager
- I/O APIC can be write-only!
- Patch around Intel-Pro/1000 MAC-loss bug
- Using RDTSCP for TSC on multi-core CPUs
- Old Ksetup.exe not installed anymore - use INF file for installation!
- Avoid NIC interrupts in initialization phase
2010-01-18 — Version 9.10c
Innovations/Advances:
- Enhanced Support of Windows 7
- Using MSI interrupts for real-time Ethernet
- MSI interrupts can be selected with KS_create(Device)Interrupt
- New function KS_createDeviceInterruptEx opens by device name
- Real-time TCP/UDP can accept broadcast messages
- MultiFunction Module supports more I/O boards (WASCO, AddiData)
- Access to EtherCAT 1 only via special header file
- EtherCAT 1 API linked to EtherCAT 2 - internally always EtherCAT 2
- EtherCAT 2: enhanced support of slaves with DC synchronization
- Optimization of scheduling mechanisms in Task Module
- Enhanced Support of EtherCAT slaves with DC synchronization
- RealTek Gigabit Ethernet network adapters supported (8110, 8169, …)
- Optional interrupt selection for network adapter interrupts
- CPU support enhanced(Core i7, …)
Revisions/Corrections:
- Better compatibility between ResourceInfo and …Ex
- Setup/Run-time setup under Windows 7
- Possible error when closing a network adapter
- Possible “invalid handle” when opening a network adapter
- Changes in Master Monitor for EtherCAT 2.0
- EtherCAT datagram timeout bugfix
- Clock calibration and long-term synchronization
- Support of Intel dual/quad port network adapters
- Possible dead-lock with real-time timers
2009-10-14 — Version 9.00a
Innovations/Advances:
- Support of Windows 7
- EtherCAT Master in new version 2 - new and enhanced API
- EtherCAT Master 2: PDO mapping/PDO assignment changing easier
- EtherCAT Master 2 with data type “BIT”
- KS_openAdapter: network adapter can be opened without devices attached
- compatibility between ResourceInfo and …Ex
- Kernel Tracer saves Windows CrashDump too
- speed enhancements on USB data transfer
- Ring3-to-Ring0 communication speed-up
Revisions/Corrections:
- non-interrupt-synchronous execution in KS_execSyncFunction
- removing “locked memory”
- EtherCAT: interpretation of XML device files
- Real-time CAN with USB “Peak Dongle”: opening without any CAN devices connected
2009-08-03 — Version 8.22d
Innovations/Advances:
- Clock functions now with HPET (High Performance Event Timer)
- All hardware time-bases long-term synchronized and unified
- Recognition of discontinual hardware time-bases due to dynamic CPU clocks
- Continuity of the “Windows clock” improved
- Real-time CAN now also over USB: using PCAN-USB of PEAK-System
- CAN with additional hardware support: CPC-104P of EMS Dr. Wünsche
- Extension to 256 physical memory blocks
- Enhanced detection of PCI devices
- Real-time interrupts can enforced to be exclusive
- Better error recognition in Kernel Tracer by “System Freeze Kill” mode
- Kernel Tracer with enhanced filtering and viewing
- Showing of CAN messages in the Kernel Tracer
- EtherCAT Master, version 1.5 (Beta version, can be found in KrtsBeta)
- Adaptation of the Master Monitor for EtherCAT Master 1.5, prepared for 2.0
- Support of Windows 7 in the Beta version (KrtsBeta)
Revisions/Corrections:
- Thread-Local-Storage under Windows Vista
- Error in real-time timers based on Local-APIC
- Incorrect task-switching
2009-05-05 — Version 8.21c
Innovations/Advances:
- Better performance with Gigabit Ethernet network cards
- Possibility of loading multiple connected DLLs in kernel-mode for driver extension
- Significantly accelerated handling of I/O port access on Windows Vista
- New CAN Module as a part of the RealTime Suite, provides real-time CAN communication
- CAN Module supports CAN boards from PEAK, EMS, IXXAT with manufacturer independent API
- Long-time synchronization of Kithara time measurement with Windows system time
- Avoidance of the Windows race condition while starting programs in auto start
- Kernel Tracer significantly expanded (viewing USB messages, CAN messages)
Revisions/Corrections:
- Better device-enumeration on Windows 2000 and Windows 7
- KS_calibrateMachineTime only switches to TSC if CPU clock is not dynamically adjusted
2009-02-05 — Version 8.20b
Innovations/Advances:
- Kernel Tracer significantly expanded (drag-and-drop, Memory Viewer, PCI viewer)
- Kernel Tracer supports message masking and filtering before sending
Revisions/Corrections:
- Serial Module: after setting of line-control wrong baud rate
- Advances on the release of physical memory
2008-10-30 — Version 8.13d
Innovations/Advances:
- Kithara Master Monitor for displaying and managing EtherCAT topologies
- EtherCAT Master now with Ethernet-over-EtherCAT (EoE)
- Visitation of the 6th EtherCAT Plug-Fest: EtherCAT Master with various advances
- EtherCAT now also supports “Logical Read/Write”
- New tool “Kithara Update Manager” for easy updating
- Kithara Update Manager takes former installations into consideration
- Better synchronization of the MultiTasking Module on Windows Vista
2008-08-21 — Version 8.12d
Innovations/Advances:
- Multiple real-time tasks on the same priority level (“round robin”)
- Dynamic priority adjustment within the task module
- Real-time scheduler now with priority inheritance to avoid priority inversion
- More advances on the APIC timer
- All EtherCAT functions supported for kernel-mode from task-context possible
- Update manager for easy version update of kernel files
- New Kernel Tracer with automatic compression of log files
Revisions/Corrections:
- I/O APIC access on Windows Vista
- Real-time timers on legacy hardware (PIC)
- Multiple opening of the driver
2008-06-02 — Version 8.11i
Innovations/Advances:
- Floating-point calculation within the MultiTasking Module
- EtherCAT Master with support of XML slave documentation
- Support of Windows XP SP3 and Windows Vista SP1
- EtherCAT Master based completely upon the MultiTasking Module
- Synchronization of real-time tasks with semaphores
Revisions/Corrections:
- Allocation of physical memory
- Non-closed thread while quitting the application
- Simultaneous start of multiple applications
- Automatic cleaning of resources on end of program
- Synchronization of multiple tasks on dual-core CPUs
- Real-time timers on legacy hardware (PIC)
- Better support of PCs with incomplete MP table
2008-03-17 — Version 8.10i
Innovations/Advances:
- The Kernel Tracer incl. device analysis for profiling and troubleshooting is now available
- New platforms are directly supported, for example C#.NET
- Newer more precise real-time timers in the RealTime Module (previous Timer Plus Module) that are running in high-precision mode
- Real-time timers: now also on notebooks and PCs with dynamically clocked CPU!
- Any hardware interrupts in hard real-time
- Now with preemptive real-time multitasking for coordination
- Highly integrated products with EtherCAT Master
- Socket Module for real-time communication with TCP and UDP as well as handling with IP socket mechanisms with real-time protocols
Revisions/Corrections:
- Better overall support of Windows Vista
- Characteristics of timer on PIT-hardware started over again