Board Support Package (BSP) for MPLAB® Harmony

MPLAB® Harmony includes library files that support our development boards. These library files are called Board Support Packages (BSPs).

A BSP provides code and configuration items to support the board-specific hardware. It may be provided for Microchip development boards or may be defined by you for your own boards. It allows you to manage board-specific settings and special code in one place. Any changes to a BSP will propagate automatically to every configuration of every application that uses the same BSP.

A BSP may contain board-specific configurations, such as a header file (BSP_CONFIG.H), a system initialization file (BSP_SYS_INIT.C), a file containing ISR implementations (BSP_SYS_INT.C), a system task routine (implemented in a BSP_SYS_TASKS.C file), and even driver implementations (each with its own directory).

Everything that is contained within a BSP can be either used by or replaced by application-specific items if desired. For example, the application may configure the system initialization routine (SYS_Initialize) to directly call a board-specific initialization routine (BSP_Initialize) or it can use the BSP-specific initialization routine as an example from which to start developing application-specific board initialization code. Generally, the demonstration applications by Microchip will use the BSP code directly to avoid duplication of board-specific code.

Regardless, you can always work without a BSP, by simply defining the board-specific code directly in your configuration files. You would need a BSP if you plan to use the same board for multiple different applications (or for multiple different configurations of an application). A BSP offers you the convenience to not define the code multiple times.


The MPLAB Harmony library supports many different development boards. A full list of boards with descriptions can be found in the Harmony Help file, in the "Board Support Packages Help" section.

This is an example of one hardware platform. It includes the following three boards:

The name for this board support package is pic32mx_eth_sk+sd_mmc_pictail. If this hardware platform is used in an example Harmony project, it will have a project configuration and a system_config folder with the same name.

Board Support Package Interface >

The following video shows how to use a BSP with the MPLAB Harmony Configurator (MHC)

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.