MyFPGA Forum

 找回密码
 注册
搜索
查看: 4814|回复: 7
打印 上一主题 下一主题

HPS_CONTROL_FPGA_LED 问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-20 18:38:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
#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?
2#
 楼主| 发表于 2016-9-21 11:05:15 | 显示全部楼层
那么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 ) );
3#
 楼主| 发表于 2016-9-21 23:36:36 | 显示全部楼层
怎么看mmp映射范围呢?
4#
 楼主| 发表于 2016-9-21 23:37:42 | 显示全部楼层
怎么看mmap的映射范围呢?
5#
 楼主| 发表于 2016-9-23 20:03:36 | 显示全部楼层
matthew_wang 发表于 2016-9-22 09:15
读程序咯,把基地址和偏移搞清楚,对着handbook 学吧

谢谢!我弄出来了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-5-16 03:50 , Processed in 0.040142 second(s), 14 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表