描述:
要在辅助 SLR 中启用对 Sysmon 寄存器空间的访问,须在 CIPS 和 NOC GUI 执行多个步骤。
解决方案:
CIPS
在每个 SLR 中,确保选中“PMC to NoC”


NoC
添加其他主接口和时钟:

在“Connectivity”选项卡上,确保 PS APU 已连接到所有 Master AXI PS_PMC:

连接 BD 中的 AXI 接口:

在“Address Editor”中分配地址:

生成 PDI 并导出 XSA。
在 xparameters.h 中将显示 SLR 地址。
在 APU 上运行代码
本答复记录随附了可在 APU 上运行的代码示例。
while(1)
{
for( i=0; i< SLR_COUNT; i++)
{
ReadReg32(slr_address_base[i], SYSMON_DEVICE_TEMP_MAX_ADDR, &temp_max_list[i]);
ReadReg32(slr_address_base[i], SYSMON_DEVICE_TEMP_MIN_ADDR, &temp_min_list[i]);
}
max = find_extreme(temp_max_list, MAXIMUM);
min = find_extreme(temp_min_list, MINIMUM);
WriteReg32(MASTER_ROOT_SYSMON_BASE, SYSMON_AUX_DEVICE_TEMP_MAX, max);
WriteReg32(MASTER_ROOT_SYSMON_BASE, SYSMON_AUX_DEVICE_TEMP_MIN, min);
usleep(WAIT_DELAY_IN_USEC);
};
文章来源:AMD Xilinx开发者社区