MyFPGA Forum

标题: HPS_CONTROL_FPGA_LED 问题 [打印本页]

作者: 陈明    时间: 2016-9-20 18:38
标题: HPS_CONTROL_FPGA_LED 问题
#define HW_REGS_BASE ( ALT_STM_OFST )   //STM基地址
#define HW_REGS_SPAN ( 0x04000000 )   //地址跨度
#define HW_REGS_MASK ( HW_REGS_SPAN - 1 )


virtual_base = mmap( NULL, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, HW_REGS_BASE );//将L3外设的物理地址映射为虚拟地址,

h2p_lw_led_addr=virtual_base + ( ( unsigned long  )( ALT_LWFPGASLVS_OFST + DATA_PIO_0_BASE ) & ( unsigned long)( HW_REGS_MASK ) ); //计算led的地址;

*(uint32_t*)h2p_lw_led_addr=0x8555;//控制LED

问题来了,查了头文件发现ALT_STM_OFST=0xFC000000,是STM模块地址,不是L3外设物理地址,
1)STM模块是什么?
2)为什么不映射L3的物理地址oxFF400000?
作者: matthew_wang    时间: 2016-9-21 09:33
这个问题需要对这个HPS构架深入了解,可以多研究handbook。 STM是HPS 内部的一个系统跟踪单元,是ARM中实现高级的调试跟踪用的。没有实际使用经验。
你说的从0xFF400000 这个地址叫L3的物理地址是不对的,手册上写明了 是Lightweight FPGA-to-HPS AXI bridge GPV。
我觉得你想表达的应该是LWFPGASLAVES 这个地址(0xFF200000),只映射从这个地址起始的2M空间也够你实现以上的访问LW AXI bridge功能。
例程中只是把所有的Peripheral Region 都映射到内存中了。为了写其他程序的方便而已,不用每次用个其他的外设再来映射一遍。

作者: 陈明    时间: 2016-9-21 11:05
那么HPS2FPGA被L3互联主开关掌控着,那么用HPS2FPGA这个桥访问FPGA上的gpio是不是应该将L3(NIC-301)的物理地址映射到虚拟地址,代码如下:
#define HW_REGS_BASE ( ALT_STM_OFST )
#define HW_REGS_SPAN ( 0x04000000 )
#define HW_REGS_MASK ( HW_REGS_SPAN - 1 )

#define ALT_AXI_HPS2FPGA_OFST (0xC0000000)  // axi_master
#define HW_FPGA_AXI_SPAN (0x04000000)  // Bridge span
#define HW_FPGA_AXI_MASK ( HW_FPGA_AXI_SPAN - 1 )

virtual_base = mmap( NULL, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, HW_REGS_BASE );

h2p_memory_addr=virtual_base + ( ( unsigned long  )(ALT_AXI_HPS2FPGA_OFST+DATA_PIO_0_BASE) & ( unsigned long)( HW_REGS_MASK ) );
作者: matthew_wang    时间: 2016-9-21 18:06
HPS2FPGA 这个bridge 不在你调用的mmap这个映射范围内,你如果需要 直接把这片区域再映射。
作者: 陈明    时间: 2016-9-21 23:36
怎么看mmp映射范围呢?
作者: 陈明    时间: 2016-9-21 23:37
怎么看mmap的映射范围呢?
作者: matthew_wang    时间: 2016-9-22 09:15
读程序咯,把基地址和偏移搞清楚,对着handbook 学吧  
作者: 陈明    时间: 2016-9-23 20:03
matthew_wang 发表于 2016-9-22 09:15
读程序咯,把基地址和偏移搞清楚,对着handbook 学吧

谢谢!我弄出来了!




欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3