PCIE2.0 3.0 4.0 硬件测试解决方案
- 供应商
- 北京淼森波信息技术有限公司
- 认证
- 联系电话
- 18601085302
- 手机号
- 18601085302
- 联系人
- 邓经理
- 所在地
- 北京市海淀区永泰庄北路1号天地邻枫2号楼A座B101
- 更新时间
- 2024-12-21 07:28
pcie2.0 3.0 4.0 硬件测试解决方案
pcie memap空间读写异常问题:
pcie可以正常读写配置空间,但无法正常读写memap 空间
定位问题:
一个address是36bit的,但软件定义为一个32bit的变量,从而导致软件读写pciememap空间失败(读错了位置)。
解决方法:fixed the software bug。☺
这个问题定位主要需要一些关于pice的一些地址的知识,要理解他们之间的关系。
pcie空间的bar
cpu访问pcie设备的高速外设(io)的地址
应用层访问pcie memap的地址
来张图吧,
上图中,有几个关键的address,virtualaddress这个大家比较好理解,但凡有一点在linux下开发经验的程序员都知道linux下的应用程序只能访问virtualaddress,那如果我们需要访问一些指定的physicaladdress怎么办,这在driver开发当中十分常见。linux提供了mamap系统调用,用于virtualaddress和physicaladdress的转换。另外,pice设备在读写时使用pcie的bar地址,bar地址是pcie控制器以memap 方式读写pcieep设备时使用的地址,是pcie协议使用的地址。