28.1 Document Revision History

Revision A (June 2019)

  • Initial revision of the document.

Revision B (October 2021)

  • Added code coverage information
  • Added stack guidance
  • Reformatted and renumbered

Revision C (April 2023)

  • Updated library information to reflect recent changes, including the Microchip Unified Standard Library
  • Corrected examples of using the __pack specifier
  • Removed 'How To' on the cause or reset, which was not appropriate for PIC32C/SAM devices
  • Updated the size of floating-point types to reflect recent compiler changes
  • Updated information on how to ensure a function is not removed
  • Updated information relating to using a debugger
  • Updated information on the compiler option controls available in the MPLAB X IDE
  • Updated information on the runtime startup code, including information on the data initialization template
  • Provided dedicated sections on all compiler options in addition to a summary table
  • Added new information on -mdfp, -mpure-code, -feliminate-unused-debug-symbols, -Og, and --dinit-compress options
  • Some options and description were not relevant for PIC32/SAM devices and were removed
  • Added divergences from the C99 language standard
  • Expanded configuration bit access information
  • Improved information on tightly coupled memories
  • Added used variable attribute
  • Added externally_visible and nopa function attributes
  • Added information on placing code in eXecute Only Memory (XOM)
  • Updated information on interrupt context switch
  • Improved information on smart IO features
  • Many general corrections and improvements

Revision D (September 2023)

  • Updated references to the C++ standard to reflect that the ISO/IEC 14882:2014 C++ program language is now supported
  • Defined the compiler's implementation-defined behavior for the C++14 standard in a new section
  • Included additional information on interrupt operation
  • Removed the CCI chapter and references to this, as CCI is not supported for C/SAM devices and the feature is disabled in the MPLAB X IDE.