9 Document Revision History
Revision A (March 2018)
Initial release of this document, adapted from the MPLAB XC8 C Compiler User’s Guide, DS50002053.
Revision B (March 2019)
- Added information relating to
const
-specified objects being located in program memory - Added information on the new code coverage feature
- Added information relating to chipinfo HTML files
- Added descriptions and screen captures of the MPLAB X IDE project property dialogs corresponding to the compiler command-line options
- Updated configuration bit information
- Clarified information relating to absolute objects
- Updated predefined macros table
- Miscellaneous corrections and improvements
Revision C (March 2020)
- This guide has been migrated to a new authoring and publication system; you may see differences in the formatting compared to previous revisions
- The documentation for the standard libraries has been updated
- Updated information relating to the structure of the DFPs
- Clarified and expanded information relating to optimizations
Revision D (September 2020)
- Updated and added new screen captures of MPLAB X IDE project properties dialogs
- Added screen captures of Microchip Studio project properties dialogs
- Added new
-Wl,--no-data-init
option to control new data initialisation feature - Documented additional options,
including:
-Werror
,-fdata-sections
,-ffunction-sections
,-glevel
Revision E (August 2021)
- Removed standard C library functions; these are now described in a separate Microchip Universal Standard Library Reference Guide document
- Added information on Smart IO features
- Added new
-m[no-]gas-isr-prologues
option andno_gccisr
attribute - Added new
-mcall-isr-prologues
option - Added information on the code coverage feature
- Added information on stack guidance feature
- Expanded and updated information linking sections
- Updated and added new screen captures of MPLAB X IDE project properties dialogs
Revision F (June 2022)
- Corrected code examples and expanded information relating to writing interrupt routines
- Added sections describing the
-msmart-io
and-msmart-io-format
options, which control the feature set of library code that performs formatted IO - Added section describing the new
-mreserve
option, which allows you to prevent regions of memory being populated by the linker - Added sections describing the
-mno-pa-on-file
and-mno-pa-on-function
options, as well as the new-mno-pa-outline-calls
option, which all control procedural abstraction optimizations - Added sections describing the
-f[no-]fat-lto-objects
,-flto-partition
,-fomit-frame-pointer
, and-funroll-[all-]loops
optimzation options - Added the mapped linker
option,
-Wl,--section-start
- Added in missing sections for the
-MF
,-P
and-U
driver options. - Clarified information relating to the const-in-program-memory feature
- Added sections describing the supported built-in functions
- Adjusted description of how quoted strings can be passed using the
-D
option, which has changed in the compiler - Made mention of the Analysis Tools Suite license (which replaces the Code Coverage license) required for the code coverage feature
- Added the
__CODECOV
preprocessor macro and indicated when it is defined - Clarified that the
__nopa
specifier is only available when the CCI is enabled - Added a section discussing linker script symbols
Revision G (December 2022)
- Updated the operation of the
-mrelax
option, which now performs additional optimizations - Ensured that the
no-
forms of options are indicated in the option summary tables - Added description for the
-fcommon
option - Adjusted the placement of some option descriptions to be consistent with the placement used by GCC docs
- Updated the screen captures of MPLAB X IDE project properties dialogs and described new options
- Added a C99 language divergence relating to the floating-point type specification
- Expanded description of
-d
option - Provided a summary of the optimizations performed by the compiler
- Added descriptions of the
ei()
anddi()
macros provided by<xc.h>
- Added description of the new
NOP()
macro provided by<xc.h>
- Corrected the operation summary for the
builtin_avr_cli
andbuiltin_avr_insert_bits
built-in functions
Revision H (December 2023)
- Added section for the new
-mfuse-action
option, which can adjust linker options based on some configuration fuse settings - Added the Common C Interface (CCI) chapter, present in some other compiler user's guides
- Clarified the operation of the
-mconst-data-in-config-mapped-progmem
option and its setting of the FLMAPLOCK bit - Expanded information relating to the
-fcommon
option - Expanded information relating to the
-fdata-sections
and-ffunction-sections
options - Added new checksum field to the MPLAB X IDE project properties dialogs
- General improvements to the descriptions of compiler features and options