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.
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).