SMT6045 is designed to be the definitive target services package for Sundance hardware on any customer platform. The two main features are high-performance and breadth of carrier/platform support.
High-Performance is achieved via a zero-copy asynchronous I/O model that uses the (PCI/USB/etc.) interface to hardware to transfer data directly to the application buffers. Additionally, support is provided for management of physical memory buffers.
Breadth of platform support is achieved by standardizing on the Boost C++ Libraries for most host services (such as threads, synchronization). This allows customers of non-Win32 platforms to install and use Sundance hardware in their embedded systems. Binary (library) support for currently in-use platforms is shipped with SMT6045. Customers can use the source code distribution (SMT6045-SRC) to configure support for their target platform themselves, or enter into a commercial arrangement with Sundance.
Breadth of carrier support is achieved by architecting the implementation of the SMT6045 API as a template-class specialization. Thus, all devices share common driver code. The chip-specific portions are implemented according to the target device requirements in the object library. Furthermore, the implementations are based on direct memory-mapped access to the device registers from user-space; the only interaction with the OS is during initialization and attachment and for the processing of interrupts.
Multi-Platform Host Support for Sundance Hardware:
- V3EPC (SMT130/SMT300(Q)/SMT310(Q)) PCI Bridge
- QL5064 (SMT407/SMT417/SMT498) PCI-X Bridge
- XC2VP7 (SMT145) PCI-X Interface
- FX2LP (Cypress CY7C68013 derived products) USB2.0 Interface
- NET-50 (SMT363XC2) 10/100 Ethernet Interface
Designed as a template-class specialization architecture:
- ANSI/ISO C++
- Boost C++ Libraries (v1.33)
- Enables rapid incorporation of new device types
Support for a wide variety of host platforms:
- Win32 (pre-compiled libraries)
- QNX Momentics 6.3 (pre-compiled libraries)
- Capable of supporting any compiler/platform supported by Boost
Base Host Features:
- Device enumeration/selection
- Program & FPGA bitstream loading
- Comport link (synchronous I/O)
Advanced Host Features:
- Multi-Buffered zero-copy I/O model
- Large physical addressing capability (>3GB on 32-bit Win32, etc.)
- Asynchronous I/O
Target Support Features:
- Pre-built 3L/Diamond utilities (tasks) for performing common system programming operations
- Virtual channel interfaces to Host
- Bit-Error Rate test benches for multi-processor targets