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 >