【发布时间】:2021-05-23 10:45:55
【问题描述】:
我想在 Aria V hps 和我的 nios 处理器之间使用 Altera MM Mailbox IP 组件进行通信。
我设法为 Nios 处理器(FPGA 端)编写了 C 代码以使用邮箱 IP,然后我通过 EDS 使用 sopc-create-header-files 为 HPS 制作了头文件。
这是 sopc-create-header-files 为我制作的:
#define MAILBOX_SIMPLE_0_COMPONENT_TYPE altera_avalon_mailbox_simple
#define MAILBOX_SIMPLE_0_COMPONENT_NAME mailbox_simple_0
#define MAILBOX_SIMPLE_0_BASE 0x60
#define MAILBOX_SIMPLE_0_SPAN 16
#define MAILBOX_SIMPLE_0_END 0x6f
但我不知道如何使用它。在 NIOS IDE 中,我包含了库 altera_avalon_mailbox_simple.h,而在 DS-5 中我没有。我应该在我的 DS-5 项目中包含任何其他邮箱库吗? 也许我应该使用相同的方法将邮箱映射为外围设备?
void mmap_fpga_peripherals()
{
h2f_lw_axi_master = mmap(NULL, h2f_lw_axi_master_span, PROT_READ | PROT_WRITE, MAP_SHARED, fd_dev_mem, h2f_lw_axi_master_ofst);
if(h2f_lw_axi_master == MAP_FAILED)
{
printf("ERROR: h2f_lw_axi_master mmap() failed.\n");
printf(" errno = %s\n", strerror(errno));
close(fd_dev_mem);
exit(EXIT_FAILURE);
}
fpga_buttons = h2f_lw_axi_master + BUTTONS_0_BASE;
fpga_hex_displays[0] = h2f_lw_axi_master + HEX_0_BASE;
fpga_hex_displays[1] = h2f_lw_axi_master + HEX_1_BASE;
fpga_hex_displays[2] = h2f_lw_axi_master + HEX_2_BASE;
fpga_hex_displays[3] = h2f_lw_axi_master + HEX_3_BASE;
fpga_hex_displays[4] = h2f_lw_axi_master + HEX_4_BASE;
fpga_hex_displays[5] = h2f_lw_axi_master + HEX_5_BASE;
}
但我认为我不应该使用mmap_fpga_peripherals() 来映射邮箱。我不确定。
【问题讨论】:
-
也许您想向英特尔的FPGA communities 之一提问。
-
我也会在那儿问这个问题。感谢您的反馈。
标签: c fpga intel-fpga nios qsys