Note Box Note: For any additional information about new INtime features, see the release notes file. Go to Start -> INtime -> Release Notes.
Support has been added for Visual Studio 2019. This includes all the INtime Wizards, add-ins, project support, debugging and help features of previous Visual Studio versions. All editions are supported except the Express edition (which does not allow add-ins and other enhancements).
A major update of the C++ library implementation has been included in this update for use with Visual Studio 2019. To upgrade an existing project to use the new version, check the relevant section of the Developing INtime Applications page. The INtime application and other Wizards for Visual Studio version 2019 have been updated to generate support for the new libraries.
Support has been added for Visual Studio 2017. This includes all the INtime Wizards, add-ins, project support, debugging and help features of previous Visual Studio versions. All editions are supported except the Express edition (which does not allow add-ins and other enhancements).
A major update of the C++ library implementation (not the C+11 implementation ) has been included in this update. This fixes several major problems associated with the age of the implementation of this library, especially to do with poor support for smart pointers and nested containers. The new library implementation has been brought up to the C++ 2007 standard, and is suitable for use with all supported versions of Visual Studio prior to VS2015 (VS2008 onwards).
Existing projects will continue to work unmodified. To upgrade an existing project to use the new libraries, the following project configuration changes are required:
C/C++ Compiler:
Linker:
The INtime application and other Wizards for Visual Studio version 2008-2013 have been updated to generate support for the new libraries.
A change has been made to the kernel to allow access to RAM anywhere on the local PC system. A new extended Physical Memory Manager has been added to the kernel so that memory from anywhere in the general RAM array on the PC may be used by INtime applications. Coupled with the XM mode feature each XM process can access up to 3.75 MB of physical RAM at one time.
Configuration changes have been made to allow for multiple “areas” of memory to be assigned to a node, rather than one single allocation for all nodes. This allows for mixing different memory types for a given node, and makes it easier to allocate more memory from the non-paged pool for all nodes. The kernel for each node has its own fixed area (not configurable) and the memory configured for use by the node is all for use by applications.
New system calls have been added to manage and enumerate these multiple areas to manage a 64-bit physical memory space. The new calls include:
AllocateRtMemoryEx allocates and maps memory to the process, with filtering and alignment controls.
GetRtPhysicalAddress64 returns a 64-bit physical address for a given pointer. The original GetRtPhysicalAddress call will return an error value if the underlying physical address is greater than a 32-bit value.
MapRtPhysicalMemory64 allows the mapping of physical memory from anywhere in the physical memory range; the original MapRtPhysicalMemory call is limited to a 32-bit physical address.
New calls return information about a process’ physical and virtual memory resources, and about the memory resources assigned to a node.
A new C++ library and header files have been added to the product to implement the C++11 standard. This can only be used with the Visual Studio 2015 C++ compiler, or later.
New projects generates with Visual Studio 2015 will be configured to use the new C++11 library by default. Other Visual Studio versions will still continue to generate projects to use the existing C++ support library.
To upgrade an existing project to use the new library, you must first convert it to VIsual Studio 2015, if necessary, and then make project settings changes as outlined in this article.
This release of the INtime SDK contains support for Visual Studio 2015. This includes all the INtime Wizards, add-ins, project support, debugging and help features of previous Visual Studio versions. All editions are supported except the Express edition (which does not allow add-ins and other enhancements).
One minor change compared to previous versions of Visual Studio is that the INtime menu has been removed. This has been reduced to a single item – the C++ Wizard – so it has been moved to the general Tools menu instead.
The virtual memory manager has been redesigned to provide extended memory access.
A new process type has been defined (“XM process”) which has a full 4 Gbytes of virtual address space, of which the top 256 Mbytes have been reserved for the system. This allows more physical memory to be mapped to the process avoiding the virtual address fragmentation issues which may have been encountered in previous implementations.
Another benefit of the XM process is that it allows for increased instruction performance on the Intel AtomTM family of processors.
New applications created in INtime 6 will be loaded as XM processes by default. Applications created in older version of INtime will be loaded as standard processes by default and behave exactly as they did in previous versions of INtime. The XM flag may be reset in the INtime settings in Visual Studio. Additional loader options are available to force an application to be loaded in a different mode compared to its default mode.
Note: XM mode is only available in Dedicated mode. A Shared-mode node will not be able to create XM processes. If a process has been created on INtime 6 and is loaded on a Shared-mode node, then it will be loaded in non-XM mode.
See the Memory Overview section for further details. See the RT Application Loader help file for details of the new load options. See also the help entries for CreateRtProcess/ntxCreateRtProcess for new flags.
This release of the INtime 6 SDK contains support for Visual Studio 2013. This includes all the INtime Wizards, add-ins, project support, debugging and help features of previous Visual Studio versions. A major difference of the VS2012 and later implementations is that the INtime Project object (INTP package) has been removed. This means that INtime projects no longer include the INtime project icon but instead the INtime project properties are carried by means of a Visual Studio “Platform” definition. Another small change is that the license is checked only by the debugger component now, whereas in previous versions it was checked by the INTP object. The practical effect of this is that no special action is required to edit and compile an INtime project now, only the debugger action requires an SDK license to be present.
See Upgrading to Visual Studio 2012/2013 for issues when upgrading existing projects to Visual studio 2012/2013.
The Virtual Ethernet driver now has virtual switch functionality incorporated so that a sub-network may be made between hosts on the same system. Direct IP communication is now possible between nodes with the virtual subnet. A network configuration incorporating the Virtual Ethernet driver must be made for each node participating in the virtual subnet. The local Windows system also participates in the virtual subnet. A new feature is that the MAC address may be randomized to reduce the risk of exposing matching MAC addresses when bridging interfaces.
A new file API has been defined for the INtime interface which is common between INtime for Windows and INtime distributed RTOS. A new Windows I/O server has been added to handle I/O operations at this interface. The C library now uses this interface for all file operations. The details may be found here: http://support.tenasys.com/intimehelp_6/#ovw_files.html
A new feature has been incorporated which allows the system timer to be modified during runtime in order to synchronize it with an external source. Two new system calls, GetRtSystemTimerInfo and AdjustRtSystemTimer have been added to enable this feature. Details may be found here: http://support.tenasys.com/intimehelp_6/#ovw_time.html
64-bit version of the C library time calls have also been added to the library. New types __time32_t and __time64_t have been defined, and time_t is now defined by default to be the same as __time32_t unless the macro _USE64BIT_TIME_ is defined at the project level when it is defined to be the same as __time64_t. The following functions are also affected by the macro. If the macro is undefined they behave as with previous versions; with the macro defined they use the 64-bit time_t type.
· time()
· ctime()
· ctime_s()
· gmtime()
· gmtime_s()
· localtime()
· localtime_s()
· difftime()
· _findfirst64()
· _findnext64()
· _findclose64()
· _stat64()
· _fstat64()
This is a simple demonstration of OPC functionality as it is available on INtime. Some kernel data is made available through an OPC connection.