【问题标题】:Communication between FPGA and Aria V HPS?FPGA 和 Aria V HPS 之间的通信?
【发布时间】:2021-05-23 10:45:55
【问题描述】:

我想在 Aria V hps 和我的 nios 处理器之间使用 Altera MM Mailbox IP 组件进行通信。

Project in Qsys

我设法为 Nios 处理器(FPGA 端)编写了 C 代码以使用邮箱 IP,然后我通过 EDS 使用 sopc-create-header-files 为 HPS 制作了头文件。

LINK TO GENERATED HEADER FILE

这是 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


【解决方案1】:

您还应该通过 sopc2dts 生成设备树二进制文件,该二进制文件通常位于路径 intelFPGA/xxx/embedded/host_tools/altera/device_tree 下。然后在邮箱设备的基础上编写Linux驱动程序。有关详细信息,请参阅 Linux 项目中的规范。

Documentation/devicetree/bindings/mailbox/altera-mailbox.txt
Documentation/mailbox.txt
drivers/mailbox/mailbox.c
drivers/mailbox/mailbox-altera.c
drivers/mailbox/mailbox-test.c
include/linux/mailbox_client.h
include/linux/mailbox_controller.h

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    • 2011-08-23
    • 2017-08-13
    相关资源
    最近更新 更多