MPLAB® XC32 C Compiler

Microchip’s latest compiler line, the MPLAB® XC, provides a comprehensive solution for your project’s development software needs and replaces all MPLAB C and HI-TECH compilers. The MPLAB XC32 compiler:

  • Supports all 32-bit PIC® MCUs
  • Integrates with MPLAB® X IDE to provide a full graphical front end:
    • Editing errors and breakpoints match the corresponding lines in source code
    • Single step through C and C++ source code to inspect variables and structures at critical points
    • Data structures with defined data types, including floating point, display in watch windows
  • Runs on Windows, Linux and Mac OS X
  • Offers different optimization levels to suit your needs with FREE downloads available
Click image to enlarge.

 Learn More


 Self-Paced Training

The material in these training modules exists elsewhere on this site in a general reference format. However, the training modules present it in an organized, step-by-step sequence to help you learn the topic from the ground up.

 Frequently Asked Questions

In the MPLAB® X IDE output window, what does the message "HPA has ended" mean?
Can I remove the license from my machine, to install on a newer machine?
How can I renew my HPA?
Why do I get a message "Options have been disabled due to restricted license" even though I have a valid license key?
Why am I encountering errors in my code pointing to missing Peripheral Library routines?
Where can I find older versions of the compiler?
Will HPA make my support for non-compiler related queries faster?
How do I change the output.hex file name in MPLAB® X IDE?
(XC32) How do I link in my own custom startup-code, with the XC32 Compiler?
(XC32) How can I reduce memory usage?
(XC32) How to use L1 cache in PIC32MZ devices?
(XC32) What are various exceptions in PIC32 MCUs and how should they be handled??
(XC32) How do I instruct printf to output to UART1 or other UART channels instead of UART2?
(XC32) How can I use software break points?
(XC32) How do I fix the "Data conflict at address 0x1FC00480" error while building project with bootloader and application?
(XC32) How to write Interrupt service routine for a particular interrupt vector for PIC32 devices using ISR macros?
Why Does It Take So Long To Build My Project?
What could cause glitches on an output port?
What could cause pins in a port to change from values I assign to them?
What could cause corrupted variables or code failure when I am using interrupts?
How do I fix errors relating to 'illegal conversion between pointer types' or 'illegal conversion of integer to pointer'?
Why don't the line numbers in an error message match the problematic line of code?
How do I ensure declarations are consistent across files?
How do I access bits in a RAM variable?
How can I speed up my interrupt service routine?
How do I create an array of pointers in program space (ROM)?
Why are some of my variables shown as not used?
Why are SFRs undefined in my assembly code?
When should I cast an expression?
Where can I find information about compiler messages?
Are administrator rights required to use the compiler in MPLAB® X IDE?
What is HPA (High Priority Access)?
© 2018 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.