Which Device Header Files are Used to Build Your Project?
MCU header files are included in the Device Family Packs (DFPs) which are installed in various locations on your PC:
- DFP artifacts embedded within an MPLAB® Harmony 3 project
- DFPs installed/maintained by the Integrated Development Environment (IDE)
- DFP artifacts installed with the compiler
Since there can be multiple copies and versions of the DFP installed on your computer, how do you know which device header file will be used in the build?
The default method that the compiler uses to select the device header file is a prioritized search of the project. The compiler will use the first header file found as it goes through this search order.
However, there are ways to ensure that it uses the header file that you want. The first way is to include it explicitly in your project (like in the MPLAB Harmony 3 project), since that is the first place the compiler will look.
Or, if you wish to use the IDE-managed DFP, but have multiple versions downloaded, you can choose the version you wish to use in the Project Properties window as shown in the "Selecting the DFP Version Used by the IDE" section.
Finally, if you want to force the compiler to use its own version of the header, you can choose to override the others with a switch in the compiler global options tab of the Project Properties window as shown in the "Override the IDE Settings to Choose Compiler's Header File" section.
Compiler Default Selection Method: Prioritized Search
Priority 1 - Search Project Files
The first location searched is the project itself. MPLAB Harmony 3 projects are self-contained. DFPs in the MPLAB Integrated Development Environment (IDE) and MPLAB XC32 are ignored.
Priority 2 - Search IDE-Managed DFPs
If no local header files are found in the project, the DFPs in the IDE are used. The version can be selected in the Project Properties window.
Priority 3 - Search Compiler DFPs
If no other DFP is present, the XC compiler can use its own header files:
Selecting the DFP Version Used by the IDE
1. Select DFP to Change
In the Dashboard window, click on the DFP that you wish to change. This will open the Project Properties window.
2. Select the DFP That You Want
In the Project Properties window, select the DFP version that you wish to use and click the OK button to save your selection.
Override the IDE Settings to Choose Compiler's Header File
Because it is that last default location checked by the compiler when searching for the header file, DFPs in the XC compilers are normally ignored unless you override the IDE setting: