Mplab Xc8 Compiler V2.10 Download

5 views
Skip to first unread message

Jalisa Landgren

unread,
Apr 20, 2024, 2:31:40 AM4/20/24
to grasunpropguns

The 16-bit language tools consist of a compiler (xc16-gcc.exe), an assembler (xc16-as.exe), a linker (xc16-ld.exe), and an archiver/ librarian (xc16-ar.exe). Additional tools distributed with this release include a binary to Intel Hex converter (xc16-bin2hex.exe) and a command-line simulator (sim30.exe).

As described in the user's guides, all of the language tools are sensitive to case on the command-line, including the case of file names. In particular, the C compiler shell (xc16-gcc) requires that C source files be named on the command-line with a lower-case .c extension. If an upper-case .C filename extension is used, the compiler assumes that the file is a C++ file, which is not supported.

mplab xc8 compiler v2.10 download


Download File ->->->-> https://t.co/uZZelxYPfF



If this release of the Microchip MPLAB XC16 C compiler is a functional safety compiler, this compiler requires a functional safety license in order to operate. Once activated, all optimization levels and compiler features are available.

The MPLAB XC C compiler and the licensing software they utilize are available for a variety of operating systems, including 64-bit versions of the following: Professional editions of Microsoft Windows 10; Ubuntu 18.04; and MacOS 10.15.1 Catalina.

If you are running a network license server, only computers with operating systems supported by the compilers may be used to host the license server. As of xclm version 2.0, the network license server can be installed on a Microsoft Windows Server platform, but the license server does not need to run on a server version of the operating system.

Microchip Unified Standard C Library -- All Microchip MPLAB XC Compilers now share a Microchip Unified Standard C Library. This change makes the library implementation uniform across all architectures supported by the MPLAB XC compilers. The library is a Microchip customized version of the MUSL LibC.
Information on the standard functions in this library can be found in the Microchip Unified Standard Library Reference Guide.

This release contains a new header file, builtins.h. This file contains prototypes for all Microchip defined builtins and is included automatically when xc.h is included. Note that this header file travels with the compiler and will not be updated with DFPs.

Not all prototypes are strictly standard conforming as not all builtin prototypes can be. To omit the the nonconforming prototypes for MISRA compatibility, define __XC_STRICT_MISRA on the compiler command line.

Added new functionality in compiler that helps user program inactive slave section of PRAM on dual core devices that have this feature. Users can use the function _program_inactive_slave(slave_number, verify, image); to program the inactive slave panel with the image. The function performs similar to _program_slave() but works only on the inactive panel.

This release introduces MPLAB Code Coverage support introduced in this version. Passing the option -mcodecov=near or -mcodecov=far option to the compiler causes it to instrument the generated assembly-instruction blocks with information that the MPLAB X IDE can then use to perform a code-coverage analysis. Visit for more information on this feature. This feature requires MPLAB X IDE v5.25 or later.

Flash routines provided with the compiler will display a message informing users that the routines are deprecated. Using any device other than from the DSPIC30F and PIC24H family should migrate to Microchip Code Configurator flash module for flash support. Please visit

A new attribute priority has been introduced in to the compiler. This attribute will notify the linker to execute marked functions after all initializations, at that priority level, have occurred. For further information please refer the User's Guide.

This release contains fixes for some major reported issues and part-support file updates. Additionally the compiler version that a part support is released with is now commented in the support files. This will facilitate future part-support only releases.

For devices with DSP instructions, the compiler can generate DSP instruction under higher levels of optimization (-O2,-Os and -O3). For example this very simple implementation of a dot product will generate DSP instructions:

This release contains a new 'relaxed compliance' fast floatingpoint math library. It may be accessed by specifying -relaxed-math as an option to the compiler and linker.

  • As with the current default and fast math libraries, this library correctly rounds all values created according to the IEEE nearest or even mode.

The XC License Manager (xclm) now supports roaming of floating network licenses. Aimed at mobile users, this feature allows a floating license to go off network for a short period of time. Using this feature, you can disconnect from the network and still use your MPLAB XC compiler. See the doc folder of the XCLM install for more on this feature.
MPLAB X IDE v1.40 includes a Licenses window (Tools>Licenses) to visually manage roaming.

XC16 v2.00 has a new library to support C99 standard. Older legacy and no-legacy libraries are no longer supported and bundled with this compiler. Math libraries which could be specified with -fast-math and -relaxed-math are not supported. The options -legacy-libc, -no-legacy-libc, -fast-math and -relaxed-math are removed. Users of these options will get a warning message: is deprecated and the compiler will continue compiling with the available default library.

XC16 v1.70 now allows the arguments to #pragma config to be seen by the pre-processor and macro expanded when using the compiler option -mexpand-pragma-config. This could mean that a previously working #pragma config may fail with the updated compiler because the value has been replaced by a macro value. This may result in a message similar to:

Dual Core device linker scripts now use a new symbol __SECONDARY_CODE_LENGTH in device startup routines. Please update your device support files either with the latest DFP or by using the v1.70 internal compiler part support files.

Scheduling occurs at two discrete points during optimization transformations and can be disabled using the command line options: -fno-schedule-insns -fno-schedule-insns2 which can be applied on a file-by-file basis, or globally for a project, in the "additional options" text box in the compiler options page.

To support fixed point arithmetic, the default startup routine now initializes the CORCON register and the compiler relies on this and the ability to modify the DSP configuration bits in CORCON. The startup routine is fixed and will initialize this register regardless of whether or not fixed point is used in the application.

The compiler will save and restore CORCON in functions where the compiler would modify CORCON. This can occur if fixed point operations are used. To inform the compiler of any function which sets CORCON, please use the save(CORCON) attribute in the definition of that function. The compiler will then save and restore CORCON around all calls to the specified function(s).

xclm Location - MPLAB XC16 v1.00 installed the xclm executable into a separate directory. Starting in MPLAB XC16 v1.10, the xclm executable is now located in the compiler's bin directory (e.g. /bin). To query the available licenses or to activate a license, use the newer copy of the xclm executable. The older location is no longer used and, if you aren't using it for an older MPLAB XC compiler, you may remove the older copy.

Better error checking has been implemented when applying certain access qualifiers (__psv__, __eds__, and so on) to objects that are automatic. Automatic objects are allocated on the stack, these qualifiers are not necessary and are occasionally harmful in these cases. The compiler will generate an error message.

Added new 32-bit shifts by n, for use when the author knows that n will never be larger than 16 bits; the compiler may not be able to dermine that. These builtins will produce incorrect answers for shifts larger than 16.

Improved code generation for condition checking and bitwise operations. The compiler tries to use bitwise operations for condition checking instead of branching. This decreases code size and increases execution speed. The option -fif-conversion-skip is associated with this optimization and is on by default. Users can specify -fno-if-conversion-skip to disable this optimization.

Most tools accept the option -mdfp=. This option directs the compiler to use the device support included in the specified pack; the directory should be to the 'xc16' folder within the pack. This option is usually used by the IDE when specifying a specific pack.

The current manual mistakenly states that -O2 is not included with the 'free' option set. v1.59

  • Generic device support include file xc.h now includes builtins.h which contains prototypes for all Microchip special compiler builtins. Some builtins are not MISRA compliant; these can be ommitted by adding the define __XC_STRICT_MISRA to the compiler command line.

The debugger does not how to convert the virtual address of these symbols into the real address. For more information, please refere to secton 7.8 PACKING DATA STORED IN FLASH in the compiler manual.

You can see that MPLAB X when creating a new project will call prjMakefileGenerator.bat from it's platform tool binary folder. For example in my windows system this batch file is located in C:\Program Files (x86)\Microchip\MPLABX\v5.35\mplab_platform\bin\prjMakefilesGenerator.bat, which I call in the project folder to regenerate all the makefiles except for $PROJECT_DIR/Makefile. Usually I call it as C:\Program Files (x86)\Microchip\MPLABX\v5.35\mplab_platform\bin\prjMakefilesGenerator.bat . in the project folder where . is the path (pointing to the current folder).

According to this document you have to choose Yes when you open an old project with a newer MpLab version, so that it could modify all generated files, which are necessary for compiler to build the project.

3a7c801d34
Reply all
Reply to author
Forward
0 new messages