MPLAB® Harmony v3 Libraries
This page describes the packages that make up the MPLAB® Harmony software development framework. These packages are found in the MPLAB Harmony GitHub repository and can be downloaded using the MPLAB Harmony 3 Framework downloader.
Package Name | Description | Example Function Names |
---|---|---|
audio | Contains a variety of audio-related firmware projects that demonstrate the capabilities of the MPLAB Harmony audio offerings, drivers for hardware codecs that can be connected to development boards (e.g. WM8904 Codec Daughterboard), and a Board Support Package (BSP) Audio Template that can be used to make configuring a new audio project a matter of just a few mouse clicks. | DRV_WM8904_Initialize DRV_WM8904_BufferAddRead DRV_WM8904_VolumeSet |
bootloader | Can be used to upgrade the firmware on a target device without the need for an external programmer or debugger. | bootloader_Trigger bootloader_Start run_Application |
bsp | Board Support Package (BSP) defines the name of the evaluation board and the name of switches and LEDs on the board. It also defines the attributes of the pins connected to the switches and LEDs (e.g.: data direction). | |
bt | Bluetooth-related firmware projects that demonstrate the capabilities of the MPLAB Harmony Bluetooth offerings, drivers for Bluetooth modules that can be connected to development boards (e.g. BM64 Bluetooth Module Daughterboard), and a BSP Bluetooth Template that can be used to make configuring a new Bluetooth project a matter of just a few mouse clicks. | DRV_BM64_Open DRV_BM64_BufferAddRead DRV_BM64_VolumeSet |
CMSIS-FreeRTOS | Cortex Microcontroller Software Interface Standard (CMSIS) FreeRTOS. By default, when Harmony 3 core or middleware libraries are used, the MPLAB Harmony Configurator (MHC) automatically includes FreeRTOS in order to provide more efficient use of the CPU. (RTOS use can still be disabled manually.) | |
core | Provides drivers and system services that have advanced capabilities and a higher level of abstraction that gives better hardware independence. The drivers and services provide abstracted interfaces that do not change from device to device. Peripheral Library (PLIB) interfaces, while providing lower overhead and more direct control, give no such guarantee. Applications written using driver and service APIs do not usually need to be modified if the device configuration is changed or even if a new Microchip MCU or MPU device is selected. This package also implements the Operating System Abstraction Layer (OSAL). | DRV_USART_Initialize DRV_USART_ReadBuffer DRV_I2C_Initialize DRV_I2C_ReadTransfer SYS_TIME_TimerCreate SYS_TIME_TimerCounterGet OSAL_Malloc |
crypto | The Cryptographic Library includes functions to perform encryption, decryption, hashing, authentication, and compression within the embedded application. Random number generation (RNG) functions are also provided. The library provides DES, 3DES, and AES for block cipher needs. Depending on the algorithm in use, CBC and CTR modes are supported. | CRYPT_RNG_Initialize CRYPT_RNG_Get CRYPT_ECC_KeySizeGet CRYPT_SHA256_DataAdd |
csp | Chip Support Package (CSP) supports initialization of Microchip 32-bit SAM and PIC® microcontroller and microprocessor devices. The peripheral libraries (PLIB) allow the development of simple applications that directly control the SAM and PIC peripherals. | UARTx_Initialize UARTx_Read TMRx_Start TMRx_Stop TCx_TimerStart TCx_TimerStop PORT_PinSet PORT_PinRead |
dev_packs | Describes all peripherals, memory, etc… of each supported 32-bit device. | |
gfx | Contains the Aria Graphics library, the MPLAB Harmony Graphics Composer (MHGC) plug-in, the Display Manager plug-in. It also includes a simple quickstart application (Aria Quickstart) that provides a touch-enabled starting point for Aria Graphics development. | GFX_ActiveContext GFX_Set GFXU_StringFontIndexLookup |
gfx_apps | Contains all other (non-quickstart) Aria Graphics Library demonstration projects | |
mhc | Contains the implementation of the MPLAB Harmony Configurator (MHC) tool. | |
micrium_ucos3 | This repository contains MPLAB Harmony configurations and applications for the Micrium OS-III. Micrium OS-III software is not included and must be downloaded separately. | |
motor_control | This module contains motor control demonstrations implemented on Microchip's 32-bit SAM microcontrollers. You can use these demonstrations as a reference for developing your own motor control applications. It also includes the X2C-Scope plug-in for the MPLAB® X IDE. X2C-Scope enables you to read, write, and plot global variables (for motor control) in real time. It communicates with the target using the UART. | |
net | Contains the MPLAB Harmony 3 Network Package (Net). The Net repo provides a free fast to market TCP/IP stack for Microchip 32-bit SAM and PIC microprocessor devices. The repo contains multiple applications that demonstrate communication over TCP/IP using well-known protocols like TCP, UDP, HTTP, SMTP, etc. | TCPIP_STACK_Status TCPIP_STACK_NetIsReady TCPIP_TCP_ArrayPut |
touch | The Touch Library is a royalty-free library for developing touch applications on 32-bit microcontrollers with a Peripheral Touch Controller peripheral. You can use it to integrate the touch-sensing capability into your applications. The library supports both self-capacitance and mutual-capacitance acquisition methods. | |
usb | The USB module components provide USB middleware and drivers. It also includes a variety of USB-related firmware projects that demonstrate the capabilities of the MPLAB Harmony USB stack. | USB_DEVICE_Attach USB_DEVICE_EventHandlerSet USB_HOST_CDC_AttachEventHandlerSet |
wolfssl | wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3. |