Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启用事件计数器以监视xilinx zynq ultrascale+;_C_Events_Counter_Performance Monitor_Xilinx Edk - Fatal编程技术网

启用事件计数器以监视xilinx zynq ultrascale+;

启用事件计数器以监视xilinx zynq ultrascale+;,c,events,counter,performance-monitor,xilinx-edk,C,Events,Counter,Performance Monitor,Xilinx Edk,我正在尝试编写代码来监控Zynq ZCU106 Ultrascale+板上的二级缓存。具体来说,我需要L2D_缓存、L2D_缓存、L2D和缓存WB。由于ZCU106是ARM处理器,我一直在使用以下网站: 帮我找到登记簿。利用这些信息,我能够找到以下信息: /** * Registers for enabling event counters */ #define PMCR 0x00003E04 //#define PMCEID0 0x00003E20 /** * This block h

我正在尝试编写代码来监控Zynq ZCU106 Ultrascale+板上的二级缓存。具体来说,我需要L2D_缓存、L2D_缓存、L2D和缓存WB。由于ZCU106是ARM处理器,我一直在使用以下网站: 帮我找到登记簿。利用这些信息,我能够找到以下信息:

/**
 * Registers for enabling event counters
 */
#define PMCR 0x00003E04
//#define PMCEID0 0x00003E20

/**
 * This block have performance monitor event type register. These are the relative address
 */

#define EVTYPER0_EL0 0x00000400 //performance monitor event type register for event 0
#define EVTYPER1_EL0 0x00000404 //performance monitor event type register for event 1
#define EVTYPER2_EL0 0x00000408 //performance monitor event type register for event 2
#define EVTYPER3_EL0 0x0000040C //performance monitor event type register for event 3
#define EVTYPER4_EL0 0x00000410 //performance monitor event type register for event 4
#define EVTYPER5_EL0 0x00000414 //performance monitor event type register for event 5

/**
 * This block has the event counter. Relative addresses
 * Read the information from these registers
 */

#define PMEVCNTR0 0x00003000 //event counter #0
#define PMEVCNTR1 0x00003004 //Event counter #1
#define PMEVCNTR2 0x00003008 //Event counter #2
#define PMEVCNTR3 0x0000300C //Event counter #3
#define PMEVCNTR4 0x00003010 //Event counter #4
#define PMEVCNTR5 0x00003014 //Event counter #5

/**
 * This block has event ID for some of the events we want to monitor
 */
#define L2D_CACHE 0x16
#define L2D_CACHE_REFILL 0x17
#define L2D_CACHE_WB 0x18
我被困在那里,因为我似乎无法找到如何启用计数器并将它们设置为正确的事件。有人有什么建议/知道我应该使用什么功能吗?我一直在使用Xil_Out32()执行大部分启用操作