- Packs
- PIC32CM-SG00_DFP
PIC32CM-SG00_DFP
1.2.83-
Pack Type
Device Support
Microchip PIC32CM-SG00 Series Device Support
-
Add to CMSIS Solution
packs:- pack: Microchip::PIC32CM-SG00_DFP@1.2.83
Add with cpackget
> cpackget add Microchip::PIC32CM-SG00_DFP@1.2.83
Download
Microchip.PIC32CM-SG00_DFP.1.2.83.packOverview
The Microchip PIC32CM-SG00 Series Device Family Pack (DFP) is a CMSIS-Pack that:
- Enables compatible tools with device support.
- Contains support files for the MPLAB XC32 Compiler.
- Contains support files for the GCC compiler.
- Contains support files for the Arm Compiler for Embedded.
- Contains support files for the IAR Embedded Development Tools.
- Contains System View Description (SVD) descriptions of the peripherals.
- Flash algorithms for the on-chip flash memory.
Related packs
- pack: ARM::CMSISDevices
PIC32CM5112SG00048
The PIC32CM SG Family of Microcontrollers (MCUs) is an ARM® Cortex®-M23 family with 512KB Flash and 128KB of SRAM all with ECC. The security functionality (HSM-Lite) is implemented with TrustZone®, cryptographic acceleration, TRNG, PUF (Physically Unclonable Function,) and secure key storage. The PIC32CM SG is ISO 26262 Compliant and includes dual CAN-FD, SERCOMs (USART, SPI, I2C, LIN, etc.) and full speed USB. Analog functionality includes a 12-Bit ADC, Peripheral Touch Controller, and Analog Comparators. Supported by MPLAB® X IDE, and MPLAB® Harmony.
Documentation:
PIC32CM5112SG00064
The PIC32CM SG Family of Microcontrollers (MCUs) is an ARM® Cortex®-M23 family with 512KB Flash and 128KB of SRAM all with ECC. The security functionality (HSM-lite) is implemented with TrustZone®, cryptographic acceleration, TRNG, PUF (Physically Unclonable Function,) and secure key storage. The PIC32CM SG is ISO 26262 Compliant and includes dual CAN-FD, SERCOMs (USART, SPI, I2C, LIN, etc.) and full speed USB. Analog functionality includes a 12-Bit ADC, Peripheral Touch Controller, and Analog Comparators. Supported by MPLAB® X IDE, and MPLAB® Harmony.
Documentation:
PIC32CM5112SG00100
The PIC32CM SG Family of Microcontrollers (MCUs) is an ARM® Cortex®-M23 family with 512KB Flash and 128KB of SRAM all with ECC. The security functionality is implemented with TrustZone®, cryptographic acceleration, TRNG, PUF (Physically Unclonable Function,) and secure key storage. The PIC32CM SG is ISO 26262 Compliant and includes dual CAN-FD, SERCOMs (USART, SPI, I2C, LIN, etc.) and full speed USB. Analog functionality includes a 12-Bit ADC, Peripheral Touch Controller, and Analog Comparators. Supported by MPLAB® X IDE, and MPLAB® Harmony.
Documentation:
MISRA Compliance Deviations List
MISRA-C:2023
Deviation ID: MFWCG-40
- Rule 5.5: Identifiers shall be distinct from macro names.
- Use case: Identifiers corresponding to register names.
Example:
```c typedef union { struct { uint32_t GPIO:29; uint32_t :3; } vec; uint32_t reg; } ECIA_SRC8_Type;
#define GPIO (0x40081000) ```
- Reason: Access to hardware.
The macros expand into the same identifiers, which allow users to detect for the presence of specific registers during preprocessing.
- Scope: Device headers for the DEC15xx and MEC15xx family
(
<device-name>.h).
Deviation ID: MFWCG-42
- Rule 20.9: All identifiers used in the controlling expression of
#ifor#elifpreprocessing directives shall be#define'd before evaluation. - Use case: Use of compiler builtin macros.
Example:
c #ifdef (__ARM_FP == 14) || (__ARM_FP == 4) fpu_enable(); #endif- Reason: Access to hardware.
Headers may rely on builtin macros from the compiler and are written under the assumption that if the macro is not defined, its value is zero.
- Scope: All device headers (
<device-name>.h).
Deviation ID: MFWCG-43
- Rule 21.1:
#defineand#undefshall not be used on a reserved identifier or reserved macro name. - Use case: Reserved names, beginning with
_followed by a capital letter or__followed by a lower-case are within the compiler's namespace.
Example:
c #define __IO volatile- Reason: Access to hardware; Code Quality (Usability: Accessibility).
Within these headers originate many reserved names that are within the compiler's namespace.
- Scope: All device headers (
<device-name>.h).
Deviation ID: MFWCG-44
- Rule 21.2: A reserved identifier or reserved macro name shall not be declared.
- Use case: Reserved names, beginning with
_followed by a capital letter or__followed by a lower-case are within the compiler's namespace.
Example:
c extern const VECTOR_TABLE_Type __VECTOR_TABLE;- Reason: Access to hardware; Code Quality (Usability: Accessibility).
Within these headers originate many reserved names that are within the compiler's namespace.
- Scope: All device headers (
<device-name>.h).
MISRA-C:2025
Deviation ID: MFWCG-44
- Rule 5.10: A reserved identifier or reserved macro name shall not be declared.
- Use case: Reserved names, beginning with
_followed by a capital letter or__followed by a lower-case are within the compiler's namespace.
Example:
c extern const VECTOR_TABLE_Type __VECTOR_TABLE;- Reason: Access to hardware; Code Quality (Usability: Accessibility).
Within these headers originate many reserved names that are within the compiler's namespace.
- Scope: All device headers (
<device-name>.h).
Deviation ID: None
- Rule 11.4: A conversion shall not be performed between a pointer to object and an arithmetic type.
- Use case: Setting special registers from linker-generated symbols.
Example:
c pSrc = (uint32_t *) & __svectors; SCB->VTOR = ((uint32_t) pSrc & SCB_VTOR_TBLOFF_Msk);- Reason: Access to hardware.
Some hardware registers do not have a pointer type but hold an address.
- Scope: Device startup code (
startup_<name>.c)
Deviation ID: MFWCG-42
- Rule 20.9: All identifiers used in the controlling expression of
#ifor#elifpreprocessing directives shall be#define'd before evaluation. - Use case: Use of compiler builtin macros.
Example:
c #ifdef (__ARM_FP == 14) || (__ARM_FP == 4) fpu_enable(); #endif- Reason: Access to hardware.
Headers may rely on builtin macros from the compiler and are written under the assumption that if the macro is not defined, its value is zero.
- Scope: All device headers (
<device-name>.h).
Deviation ID: MFWCG-43
- Rule 20.15:
#defineand#undefshall not be used on a reserved identifier or reserved macro name. - Use case: Reserved names, beginning with
_followed by a capital letter or__followed by a lower-case are within the compiler's namespace.
Example:
c #define __IO volatile- Reason: Access to hardware; Code Quality (Usability: Accessibility).
Within these headers originate many reserved names that are within the compiler's namespace.
- Scope: All device headers (
<device-name>.h).
Support
For support questions, contact Microchip Support through https://www.microchip.com/en-us/support.