DSP论坛
直播中

韭菜_36729209

3年用户 8经验值
擅长:模拟技术 嵌入式技术 接口/总线/驱动 EDA/IC设计
私信 关注

6678通过pcie进行boot时,PC无法写bar空间

我使用windriver开发了pcie的驱动,可以通过windriver看到分配的bao0和bar1空间,其地址范围对应的是DDR3的空间,此时出现问题:可以通过windriver对bar0 和 bar1进行读操作,但是无法写入。猜测这是由于DDR未初始化导致的。我的使用pcie的目的是,通过pcie将程序搬移到6678中,不需要ccs进行配置ddr或者bar空间,请问这种情况下怎么办呢?想到的方法的是主机分配bar时不分配到DDR3,分配到其他可直接读写的位置,但是从网上没查到相关的资料,各位大佬有什么建议吗?

已退回10积分

回帖(1)

听我讲

2024-3-29 11:16:43
根据您的描述,您使用Windriver开发了一个PCIE驱动程序,可以通过Windriver看到分配的BAR0和BAR1空间。您可以读取BAR0和BAR1,但无法写入。您猜测问题可能是由于DDR未初始化导致的。您的目标是通过PCIE将程序移植到6678中,而不需要CCS配置DDR或BAR空间。

根据这个问题,这里有几点建议可以尝试:

1. 首先,确保您的DDR已经正确初始化。在PCIE设备初始化之前,确保DDR控制器正确配置,并且DDR存储器已经初始化。

2. 检查您的驱动程序代码,确保在写入BAR空间之前没有错误。确保您正确设置了写入BAR空间的权限并没有遗漏任何配置。

3. 请参考相关的数据手册或文档,了解关于PCIE设备的配置和寄存器映射的具体细节。可能需要对BAR空间的映射方式和权限进行进一步的了解,以确保您正确地访问和写入BAR空间。

4. 如果您希望将程序移植到6678中,而不需要CCS来配置DDR或BAR空间,您可以尝试使用不需要DMA或DDR的应用程序功能,从而避免使用DDR空间。这样,您可以将数据直接存储在其他可直接读写的位置,而不需要初始化DDR空间。

总之,首先确保DDR已经正确初始化,并检查驱动程序中是否有错误。如果问题仍然存在,建议参考相关的文档和资料来了解PCIE设备的配置和寄存器映射的具体细节,并尝试使用不需要DDR的应用程序功能来规避问题。如果仍然无法解决问题,可能需要进一步调试和研究驱动程序和硬件设置。另外,如果有可能,可以尝试咨询Windriver的支持团队或相关的技术支持人员,以获取更具体的帮助和指导。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分