zoukankan      html  css  js  c++  java
  • HPS端如何通过AXI Bridge控制FPGA端口的GPIO

    该笔记主要记录HPS端如何通过AXI Bridge控制FPGA端口的GPIO,主要是如何操作FPGA侧的Led

    1、AXI Bridge

       
        AXIB主要包括H2FB、F2HB、LWH2FB(Light Weight Bridge)
        H2FB 的AXI地址位宽是30Bit,数据位宽32、64、128可配置,ID位宽为12Bit
        F2HB 的AXI地址位宽是32Bit ,数据位宽32、64、128可配置,ID为8Bit
        LWH2FB的地址位宽是21Bit,数据位宽是32bit,ID为8Bit,适用于做控制总线

    2、HPS控制FPGA端的GPIO

        (1) Hardware:在qsys下把GPIO Core连接到LWBridge Master下

            1)下载sof文件
            2)执行generate_hps_qsys_header.sh文件生成有关硬件信息的供软件使用的头文件,其实就是一个shell命令写在了文件里面,便于执行
    sopc-create-header-files 
    "./soc_system.sopcinfo" 
    --single hps_0.h 
    --module hps_0

        (2) Software:

            1)映射GPIO组件的物理地址到应用程序可以操作的虚拟地址
            前面还有两步分别是打开内存设备和虚拟地址映射mmap得到 virtual_addr
            LWAXI总线相对于其虚拟基地址的偏移量
    (ALT_LWFPGASLVS_OFST & (unsigned long) HW_REGS_MASK)
            FPGA外设相对于LWAXi的地址为PIO_LED_BASE
            最终的虚拟地址入口地址为:
    h2p_lw_led_addr = virtual_base + ((unsigned long)(ALT_LWFPGASLVS_OFST + PIO_LED_BASE) & (unsigned long)(HW_REGS_MASK));

    应用程序通过得到的虚拟地址入口控制FPGA端的Led
      3、最后通过操作h2p_lw_led_addr就可以对FPGA端的GPIO操作
  • 相关阅读:
    2020.11.21日记
    Miller-Rabin质数测试
    Deepin配置记录
    shell
    module load
    vma
    DRDI
    Android.mk
    AEE
    阿里云下配置二级域名的解析设置
  • 原文地址:https://www.cnblogs.com/FZLGYZ/p/10461549.html
Copyright © 2011-2022 走看看