System# is a .NET library intended for the description of real-time embedded systems. It comes with a built-in simulator kernel and a code transformation engine that converts a design into synthesizable VHDL. The main focus is currently the development of FPGA designs. System# not only supports register-transfer-level (RTL) descriptions whose translation to VHDL is straightforward, but is also capable of converting clocked threads with wait statements to a synthesizable VHDL state machine. Furthermore, System# introduces synthesizable transaction-level modeling features. From a technological point of view, it uses reflection and assembly code (CIL) decompilation to reconstruct an abstract syntax tree (AST) from the system design. The AST conforms to SysDOM, a document object model for describing component-based reactive systems. An unparsing stage converts the AST to VHDL. The decompilation process can be instrumented in various ways by attribute-based programming. Furthermore, transformations of the AST itself are possible. This enables implementation of advanced features such as converting clocked threads to finite state machines.
v4l-utils is a collection of various video4linux (V4L) and DVB utilities. libv4l is an accompanying collection of libraries that adds a thin abstraction layer on top of video4linux2 (V4L2) devices. The purpose of this layer is to make it easy for application writers to support a wide variety of devices without having to write separate code for different devices in the same class. It consists of 3 different libraries. libv4lconvert offers functions to convert from any (known) pixel format to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420. libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent of the drivers for those devices supporting v4l1 compatibility (which many v4l2 drivers do not). libv4l2 offers the v4l2 API on top of v4l2 devices, while adding support for the application transparent libv4lconvert conversion where necessary.
The SAITEK X52 PRO Flight System is a USB-HID compatible joystick designed for flight simulation usage. The HID part of the joystick is fully supported on Linux 2.6.x. The device also contains a multi-function display (MFD) consisting of 3x16 alphanumeric lines, and several bi-color LED illuminated buttons that can be enabled individually. The MFD and the LEDs cannot be accessed using the default Linux joystick driver, but need special device commands. The aim of the x52 PRO MFD library is to encapsulate these commands and enable accessing the MFD and LED features under Linux.
CANpie defines a Standard API for access to the CAN (Controller Area Network) bus. The API provides functionality for ISO/OSI Layer 2 (Data Link Layer). The CANpie driver is the base for HLPs like CANopen, DeviceNet, J1939, etc. Through its low memory footprint, CANpie can be used for embedded applications (without any OS) as well as for Linux. Access to the Linux CAN driver is via a socket interface (AF_CAN).
cpuinfo consists of an API/library used by programs to get information about the underlying CPU. Such information includes CPU vendor, model name, cache hierarchy, and supported features (e.g. CMP, SMT, and SIMD). cpuinfo is also a standalone program to demonstrate the use of this API.
libft is an implementation of the fischertechnik ROBO interface library for Unix-like systems. The goal is to create a library that is fully compatible with the ftlib by knobloch electronic. This library should work on any systems supported by libusb, like Linux, BSD, and Mac OS X. A basic Python module is available.
EasyPMP is a program used to create and maintain the music database on a variety of portable music players. This allows tracks to be browsed by artist, album, genre, etc., rather than by directory structure. The following devices are supported: iRiver H100 series; iRiver H300 series; iRiver H10 UMS; iRiver H10 MTP (with emergency connect mode); iRiver H10Jr. UMS; iRiver U10 UMS; MEDION MDJuke220 and MDJuke 440; and Samsung YH-820, YH-920, and YH-925. It is developed as part of a project called PMPlib, which aims to develop a library that can be used by desktop media players and other programs, in order to support these devices.