SDL API Guide for J7200
sdl_arm_r5_pmu.h
Go to the documentation of this file.
1 
39 #ifndef SDL_ARM_R5_PMU_H
40 #define SDL_ARM_R5_PMU_H
41 
42 #include <stdint.h>
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
67 /* ========================================================================== */
68 /* Structures and Enums */
69 /* ========================================================================== */
70 
92 typedef enum
93 {
162 
163 /* @} */
164 
177 typedef struct SDL_PMU_staticReg_read
178 {
179  uint8_t cycleCntDiv;
181  uint8_t exportEvents;
183  uint8_t userEnable;
185  uint32_t cntEnableSetReg;
188 
189 /* @} */
190 
196 #define SDL_ARM_R5_PMU_CYCLE_COUNTER_NUM (31U)
197 
199 #define SDL_ARM_R5_PMU_CFG_CNTR_EVENT_TYPE_MASK (0x000000FFU)
200 #define SDL_ARM_R5_PMU_CFG_CNTR_EVENT_TYPE_SHIFT (0x00000000U)
201 #define SDL_ARM_R5_PMU_CFG_CNTR_EVENT_TYPE_RESETVAL (0x00000000U)
202 #define SDL_ARM_R5_PMU_CFG_CNTR_EVENT_TYPE_MAX (0x000000FFU)
203 
204 /* @} */
205 
237 extern void SDL_R5PMU_cfg( uint32_t cycleCntDiv, uint32_t exportEvents, uint32_t userEnable );
238 
261 extern int32_t SDL_R5PMU_verifyCfg(uint32_t cycleCntDiv, uint32_t exportEvents);
262 
275 extern void SDL_R5PMU_enableAllCntrs( uint32_t enable );
276 
285 extern uint32_t SDL_R5PMU_getNumCntrs( void );
286 
298 extern void SDL_R5PMU_cfgCntr( uint32_t cntrNum, SDL_R5PmuEventType eventType );
299 
312 extern void SDL_R5PMU_enableCntrOverflowIntr(uint32_t cntrNum, uint32_t enable );
313 
327 extern void SDL_R5PMU_enableCntr(uint32_t cntrNum, uint32_t enable );
328 
339 extern uint32_t SDL_R5PMU_readCntr(uint32_t cntrNum );
340 
352 extern void SDL_R5PMU_setResetCntr(uint32_t cntrNum, uint32_t cntrVal);
353 
364 extern uint32_t SDL_R5PMU_readCntrOverflowStatus( void );
365 
380 extern void SDL_R5PMU_clearCntrOverflowStatus( uint32_t cntrMask );
381 
390 extern void SDL_R5PMU_resetCycleCnt(void);
391 
400 extern void SDL_R5PMU_resetCntrs(void);
401 
414 extern void SDL_R5PMU_readStaticRegisters(SDL_PMU_staticRegs *pStaticRegs);
415 
416 /* @} */
417 
418 #ifdef __cplusplus
419 }
420 #endif /* extern "C" */
421 
422 #endif /* end of SDL_ARM_R5_PMU_H_ definition */
Definition: sdl_arm_r5_pmu.h:101
Definition: sdl_arm_r5_pmu.h:112
Definition: sdl_arm_r5_pmu.h:100
void SDL_R5PMU_enableCntr(uint32_t cntrNum, uint32_t enable)
Enable/disable a PMU counter.
Definition: sdl_arm_r5_pmu.h:114
Definition: sdl_arm_r5_pmu.h:97
Definition: sdl_arm_r5_pmu.h:96
Definition: sdl_arm_r5_pmu.h:133
Definition: sdl_arm_r5_pmu.h:102
Definition: sdl_arm_r5_pmu.h:154
int32_t SDL_R5PMU_verifyCfg(uint32_t cycleCntDiv, uint32_t exportEvents)
Configure the Performance Management Unit (PMU)
Definition: sdl_arm_r5_pmu.h:103
Definition: sdl_arm_r5_pmu.h:94
void SDL_R5PMU_enableCntrOverflowIntr(uint32_t cntrNum, uint32_t enable)
Enable/disable overflow interrupt generation for a PMU counter.
Definition: sdl_arm_r5_pmu.h:125
Definition: sdl_arm_r5_pmu.h:142
Definition: sdl_arm_r5_pmu.h:126
Definition: sdl_arm_r5_pmu.h:149
void SDL_R5PMU_readStaticRegisters(SDL_PMU_staticRegs *pStaticRegs)
PMU API to Read the Static Registers. This function reads the values of the static registers such as ...
Definition: sdl_arm_r5_pmu.h:124
Definition: sdl_arm_r5_pmu.h:121
uint8_t exportEvents
Definition: sdl_arm_r5_pmu.h:181
Definition: sdl_arm_r5_pmu.h:153
void SDL_R5PMU_cfg(uint32_t cycleCntDiv, uint32_t exportEvents, uint32_t userEnable)
Configure the Performance Management Unit (PMU)
PMU Static Registers structure.
Definition: sdl_arm_r5_pmu.h:177
Definition: sdl_arm_r5_pmu.h:98
Definition: sdl_arm_r5_pmu.h:108
Definition: sdl_arm_r5_pmu.h:120
Definition: sdl_arm_r5_pmu.h:138
uint32_t SDL_R5PMU_readCntr(uint32_t cntrNum)
Read a PMU counter.
SDL_R5PmuEventType
This enumerator defines PMU event types.
Definition: sdl_arm_r5_pmu.h:92
Definition: sdl_arm_r5_pmu.h:122
Definition: sdl_arm_r5_pmu.h:146
uint8_t cycleCntDiv
Definition: sdl_arm_r5_pmu.h:179
Definition: sdl_arm_r5_pmu.h:118
uint32_t SDL_R5PMU_getNumCntrs(void)
Get the number of PMU counters supported.
void SDL_R5PMU_cfgCntr(uint32_t cntrNum, SDL_R5PmuEventType eventType)
Configure a PMU counter.
Definition: sdl_arm_r5_pmu.h:140
Definition: sdl_arm_r5_pmu.h:159
void SDL_R5PMU_enableAllCntrs(uint32_t enable)
Enable/disable all PMU counters.
Definition: sdl_arm_r5_pmu.h:105
Definition: sdl_arm_r5_pmu.h:157
Definition: sdl_arm_r5_pmu.h:143
Definition: sdl_arm_r5_pmu.h:155
Definition: sdl_arm_r5_pmu.h:123
Definition: sdl_arm_r5_pmu.h:107
uint8_t userEnable
Definition: sdl_arm_r5_pmu.h:183
Definition: sdl_arm_r5_pmu.h:156
Definition: sdl_arm_r5_pmu.h:95
Definition: sdl_arm_r5_pmu.h:137
void SDL_R5PMU_resetCntrs(void)
Reset all counters to zero.
uint32_t cntEnableSetReg
Definition: sdl_arm_r5_pmu.h:185
Definition: sdl_arm_r5_pmu.h:111
Definition: sdl_arm_r5_pmu.h:110
Definition: sdl_arm_r5_pmu.h:158
uint32_t SDL_R5PMU_readCntrOverflowStatus(void)
Read the overflow status for all of the counters.
Definition: sdl_arm_r5_pmu.h:141
Definition: sdl_arm_r5_pmu.h:128
Definition: sdl_arm_r5_pmu.h:151
void SDL_R5PMU_resetCycleCnt(void)
Reset the cycle counter to zero.
Definition: sdl_arm_r5_pmu.h:99
Definition: sdl_arm_r5_pmu.h:109
Definition: sdl_arm_r5_pmu.h:104
Definition: sdl_arm_r5_pmu.h:131
void SDL_R5PMU_clearCntrOverflowStatus(uint32_t cntrMask)
Clear the overflow flag for the specified counter(s)
Definition: sdl_arm_r5_pmu.h:147
Definition: sdl_arm_r5_pmu.h:134
Definition: sdl_arm_r5_pmu.h:150
Definition: sdl_arm_r5_pmu.h:152
Definition: sdl_arm_r5_pmu.h:115
Definition: sdl_arm_r5_pmu.h:144
Definition: sdl_arm_r5_pmu.h:130
Definition: sdl_arm_r5_pmu.h:117
void SDL_R5PMU_setResetCntr(uint32_t cntrNum, uint32_t cntrVal)
Set a PMU counter.
Definition: sdl_arm_r5_pmu.h:129
Definition: sdl_arm_r5_pmu.h:113
Definition: sdl_arm_r5_pmu.h:119
Definition: sdl_arm_r5_pmu.h:139
Definition: sdl_arm_r5_pmu.h:135
Definition: sdl_arm_r5_pmu.h:132
Definition: sdl_arm_r5_pmu.h:145
Definition: sdl_arm_r5_pmu.h:127
Definition: sdl_arm_r5_pmu.h:160
Definition: sdl_arm_r5_pmu.h:106
Definition: sdl_arm_r5_pmu.h:136
Definition: sdl_arm_r5_pmu.h:148
Definition: sdl_arm_r5_pmu.h:116