Using Intel® Integrated Performance Primitives for Microcontrollers (Intel® IPP for Microcontrollers)

Intel® IPP for Microcontrollers library is a hardware abstraction layer (HAL) for x86 microcontrollers and processors. The library is a set of the performance building blocks for your signal and data processing applications for x86-compatible microcontrollers. The Intel IPP for Microcontrollers library provides two versions of application programming interfaces (APIs): generic digital signal processing (DSP)-style and Intel® IPP-style.

The generic DSP APIs aim to ease transition of developers who have experience with development for other types of microcontrollers to new APIs delivered by Intel. They use naming conventions and data types that are common in the field of microcontrollers.

The Intel IPP-style APIs first of all target newcomers in the field of microcontrollers and those who already have some experience with Intel® IPP, but are recommended for all developers. Intel® IPP-style APIs have several advantages over generic DSP APIs:

  1. Intel IPP-style APIs always provide status of any function execution, while traditional DSP APIs do not - all traditional DSP APIs return "void".
  2. With Intel IPP-style APIs, you can always specify accuracy of input and output data for fixed-point data types, while traditional DSP APIs do not have any mechanism to specify the output data accuracy (the position of fixed point).
  3. Intel IPP-style APIs have self-explanatory suffixes for rounding mode, scale factor (if used), saturation, in-place operation, planar (operation is performed for the specified number of vectors) that are used internally.
  4. Intel IPP-style APIs provide support of complex data types, which simplifies APIs for most operations with complex data.
  5. Intel IPP-style APIs of Intel IPP for Microcontrollers use the same notation for mobile, desktop, and server CPUs as the Intel® IPP library does. It means that your application, developed once for microcontrollers, can be easily ported to big cores, and vice versa.
For more complete information about compiler optimizations, see our Optimization Notice.