Functions that relate to the Performance Monitoring Unit.
More...
|
struct | PMU_Type |
| Structure type to access the Performance Monitoring Unit (PMU). More...
|
|
|
#define | PMU |
| PMU configuration struct.
|
|
Functions that relate to the Performance Monitoring Unit.
The following functions support the Performance Monitoring Unit (PMU) that is available on the Cortex-M55/M85 processors.
The PMU is used to monitor events that occur during run-time of an application.
Example:
unsigned int cycle_count = 0;
unsigned int l1_dcache_miss_count = 0;
unsigned int instructions_retired_count = 0;
ARM_PMU_CNTR_Enable(PMU_CNTENSET_CCNTR_ENABLE_Msk|PMU_CNTENSET_CNT0_ENABLE_Msk|PMU_CNTENSET_CNT1_ENABLE_Msk);
ARM_PMU_CNTR_Disable(PMU_CNTENCLR_CCNTR_ENABLE_Msk|PMU_CNTENCLR_CNT0_ENABLE_Msk|PMU_CNTENCLR_CNT1_ENABLE_Msk);
#define ARM_PMU_L1D_CACHE_MISS_RD
Level 1 data cache read miss.
Definition: ref_pmu8.txt:106
#define ARM_PMU_INST_RETIRED
Instruction architecturally executed.
Definition: ref_pmu8.txt:71
__STATIC_INLINE void ARM_PMU_CNTR_Enable(uint32_t mask)
Enable counters.
__STATIC_INLINE void ARM_PMU_CYCCNT_Reset(void)
Reset cycle counter.
__STATIC_INLINE void ARM_PMU_Enable(void)
Enable the PMU.
__STATIC_INLINE void ARM_PMU_CNTR_Disable(uint32_t mask)
Disable counters.
__STATIC_INLINE void ARM_PMU_Set_EVTYPER(uint32_t num, uint32_t type)
Set event to count for PMU event counter.
__STATIC_INLINE void ARM_PMU_EVCNTR_ALL_Reset(void)
Reset all event counters.
__STATIC_INLINE uint32_t ARM_PMU_Get_EVCNTR(uint32_t num)
Read event counter.
__STATIC_INLINE uint32_t ARM_PMU_Get_CCNTR(void)
Read cycle counter.
◆ PMU
PMU configuration struct.
This macro can be used to access the PMU registers, directly. For the common tasks one should prefer using the control functions.
Example: Example:
PMU->CTRL |= PMU_CTRL_ENABLE_Msk;
#define PMU
PMU configuration struct.
Definition: ref_pmu8.txt:326
◆ ARM_PMU_CNTR_Disable()
Disable counters.
- Parameters
-
[in] | mask | Counters to enable |
- Note
- Disables one or more of the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_CNTR_Enable()
Enable counters.
- Parameters
-
[in] | mask | Counters to enable |
- Note
- Enables one or more of the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_CNTR_Increment()
Software increment event counter.
- Parameters
-
[in] | mask | Counters to increment |
- Note
- Software increment bits for one or more event counters (0-30)
◆ ARM_PMU_CYCCNT_Reset()
◆ ARM_PMU_Disable()
◆ ARM_PMU_Enable()
◆ ARM_PMU_EVCNTR_ALL_Reset()
Reset all event counters.
◆ ARM_PMU_Get_CCNTR()
Read cycle counter.
- Returns
- Cycle count
◆ ARM_PMU_Get_CNTR_OVS()
Read counter overflow status.
- Returns
- Counter overflow status bits for the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_Get_EVCNTR()
Read event counter.
- Parameters
-
[in] | num | Event counter (0-30) to read |
- Returns
- Event count
◆ ARM_PMU_Set_CNTR_IRQ_Disable()
Disable counter overflow interrupt request.
- Parameters
-
[in] | mask | Counter overflow interrupt request bits to clear |
- Note
- Clears overflow interrupt request bits for one or more of the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_Set_CNTR_IRQ_Enable()
Enable counter overflow interrupt request.
- Parameters
-
[in] | mask | Counter overflow interrupt request bits to set |
- Note
- Sets overflow interrupt request bits for one or more of the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_Set_CNTR_OVS()
Clear counter overflow status.
- Parameters
-
[in] | mask | Counter overflow status bits to clear |
- Note
- Clears overflow status bits for one or more of the following:
- event counters (0-30)
- cycle counter
◆ ARM_PMU_Set_EVTYPER()
Set event to count for PMU event counter.
- Parameters
-
[in] | num | Event counter (0-30) to configure |
[in] | type | Event to count |