Board Support Package (BSP)

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

A Board Support Package (BSP) provides code and configuration items to support 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 that BSP.

A BSP may contain a board-specific configuration header (bsp_config.h and possibly others), a board-specific system initialization file (bsp_sys_init.c), a file containing board-specific ISR implementations (bsp_sys_int.c), a board-specific system "tasks" routine (implemented in a bsp_sys_tasks.c file), and even board-specific 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. Normally, Microchip demonstration applications will use the BSP code directly to avoid duplication of board-specific code.

You can always do without a BSP by just defining this sort of board-specific code directly in your configuration files. You only really need to define a BSP if you plan to use the same board for multiple different applications (or for multiple different configurations of an application). Even then, it's just a convenience thing that allows you to not have to define this stuff multiple times.


The MPLAB® Harmony library supports many different development boards. A full list with descriptions can be found in the Harmony Help file in the "Board Support Package 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 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)

To view the following video full screen, click on the video title (view on YouTube).

© 2019 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.