Getting Started with Intel® Integrated Performance Primitives for Microcontrollers Examples

By Chao Yu,

Published:07/20/2016   Last Updated:07/20/2016

Intel® Integrated Performance Primitives (Intel® IPP) for Microcontrollers are a set of the performance building blocks for the signal and data processing applications for x86-compatible microcontrollers. The article provide demonstrate how to add Intel IPP functions into the application with the Intel IPP example code.   It uses the QMSI based application as the example. For the zephyr application code, it can use the similar steps to add Intel IPP functions:

Building an Intel IPP Example Code

  1. Download the example code.  This code uses ippsqStdDev functions to compute the standard deviation of a vector.
  2. Launch the Intel® System Studio 2016 for Microcontrollers Eclipse* Environment.
  3. Create a new project for the example code:
    Open the <New Intel® Project> in the Project Explorer.   Select  the target “developer board”, and  project type (Intel® QMSI,  or Zephyer),  and select “Hello World” Examples.
  4. Copy the code in “smpl_stddev_ipp.c” file into the "main.c" file in the project.

  5. Review the code to learn how IPP functions are added into the application code
    The code adds #include <ippsq.h> head file in the project for using IPP IPPM-style functions. The Intel IPP ippsqStdDev_32f/ippsqStdDevQ15_16s_Rz/ippsqStdDevQ31_32s_Rz functions are used to compute the standard deviation of a vector.
  6. Add the library's include path in the Project Properties:
    From the Eclipse* menu, go to Project->Properties. In the Properties for hello_world window, go to C/C++ General->Paths and Symbols and select GNU C in the Languages tab, then press the "Add" button: 
    In the Add directory path window, check the Add to all configurations and Add to all languages boxes

  7. Add required paths and libraries to the project Makefiles:

    Open the file from the project files list and add the following lines:
    LDLIBS +=-lippsq
    LDFLAGS += -L $(IPPROOT)/lib
    CFLAGS += -I$(IPPROOT)/include


  8. Build and run your project with the Intel® IPP for Microcontrollers. 

Find more Intel IPP Examples

Intel IPP for Microcontrollers provides the rich examples to explain the usage of Intel IPP function. These example are located in several places in installation package. The bellow table provides the summary on these examples:

IPP Sample Description Location
Intel IPP example with QMSI accelerometer app Using Intel IPP function with QMSI accelerometer sensor code


Intel IPP getting started example

Along with Intel IPP library, the package provides several sample files to demonstrate the DSP-style and Intel IPP-style APIs, including the code on computing dot product, vector addition, and computing  vector standard deviation.



Referenced code in the Intel IPP manual

Intel IPP manual contains code examples for major IPP functions. These examples illustrate IPP functions usage. 
Check the Intel IPP manual to find these code.


Intel IPP smpl_stddev_ipp Example

Attachment Size
smpl_stddev_ipp.c 3.2 KB

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804