通過HPS控制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操作
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM