The MPLAB® Harmony library makes it easy for you to migrate your code from one hardware platform to another. This is accomplished by segregating your application's hardware-specific code under the system_config folder.
Each folder found in the system_config folder corresponds with a different hardware platform. We created the names of these folders to match the names of their corresponding project configuration and Board Support Package (BSP).
When one project configuration is selected, code not associated with that configuration (from different hardware platforms) is excluded from the build process.
If you want to see which files are excluded from the build process, expand all folders found under the system_config folder and use the drop-down window to change the project configuration. Files excluded from the build process are shown as "ghosted".
Microchip has taken advantage of the IDE's project configuration ability to provide one project that can be used for many different hardware platforms. You, of course, may organize your own projects anyway you desire. However, it is recommended to follow this convention if you use multiple configurations in your projects. We think you'll appreciate the power and flexibility of it.
If you create your own folder in system_config, you must place the relative path to this folder in the compiler's Include Directories.
The following files make up a complete configuration of the system. The purpose of each of these files is described in more detail on this page.
- system_config.h
- system_init.c
- system_tasks.c
- system_interrupt.c (optional)
system_config Sub-folder Names
MPLAB® Harmony includes the library files that support our development boards. These library files are called Board Support Packages (BSPs). A full list of these boards with descriptions can be found in the PDF titled "help_harmony".
These are some of the development boards used in the Harmony demo applications. The names assigned to these BSPs are also used for the project configuration name and system_config sub-folder name.
Which PIC32 device is used on these boards?
PIC32MX USB Starter Kit II
This board uses the Harmony BSP name of pic32mx_usb_sk2. Click on the link below for more details on this board.
PIC32MX Ethernet Starter Kit
This board uses the Harmony BSP name of pic32mx_eth_sk. Click on the link below for more details on this board.
PIC32MX Ethernet Starter Kit with PICtail Daughter Board for SD and MMC on the PIC32 I/O Expansion Board
These boards use the Harmony BSP name of pic32mx_eth_sk+sd_mmc_pictail. Click on the links below for more details on each board.
PIC32MZ Embedded Connectivity with FPU (EF) Starter Kit (with and without Crypto Engine)
These boards use the Harmony BSP name of pic32mz_ef_sk. Click on the links below for more details on each board.
If you are using one of the PIC32MZ Starter Kits, note that there are two different PIC32MZ EC Starter Kits. The demonstration application projects that come with Harmony will use one or the other. You may need to change the device number associated with the demo project to make it work for the kit you selected.
- PIC32MZ Embedded Connectivity with FPU (EF) Starter Kit uses PIC32MZ2048EFH144
- PIC32MZ Embedded Connectivity with FPU (EF) Starter Kit with Crypto Engine uses PIC32MZ2048EFM144
PIC32MZ Embedded Connectivity Starter Kit (with and without Crypto Engine)
These boards use the Harmony BSP name of pic32mz_ec_sk. Click on the links below for more details on each board.
If you are using one of the PIC32MZ Starter Kits, note there are two different PIC32MZ EC Starter Kits. The demonstration application projects that come with Harmony will use one or the other. You may need to change the device number associated with the demo project to make it work for the starter kit you selected.
- PIC32MZ EC Starter Kit uses PIC32MZ2048ECH144
- PIC32MZ EC Starter Kit with Crypto Engine uses PIC32MZ2048ECM144
PIC32MZ Embedded Connectivity with FPU (EF) Starter Kit with the Multimedia Expansion Board II
These boards use the Harmony BSP name of pic32mz_ef_sk+meb2. Click on the links below for more details on each board.
Explorer16 Development Board with PIC32MZ EC Processor Plug-in Module (PIM)
This board uses the Harmony BSP name of pic32mz_ec_pim+e16. Click on the links below for more details on the board and PIM.