通过PCI访问host
在Blackfin DSP的内部/外部存储器映射图中,Balckfin用一个128MB的窗口来观察4G的PCI存储空间的一部分。基地址寄存器可以把窗口定位在4GB的PCI存储空间的任何地方,且对应于Blackfin的地址保持不变。为0xE0000000——0xE7FFFFFF。现在,我需要知道blackfin的内存空间和host的内存空间的映射关系。于是我使用下面这种方法:首先,在host端写一个32位的数组,数组中的元素的值与其下标相同,得到这个数组的首地址;然后,在blackfin端写一个小程序,扫描这128MB的窗口,找到这个数组,得到首地址。这样,就得到了内存空间的映射关系。blackfin端的程序如下:(写得很恶心,谁能优化一下?)
unsigned long *Addr;
unsigned long Bytes;
int i = 0;
int flag = 0;
(unsigned long)Addr = 0xe0000000;
for(Bytes=0;Bytes<0x7ffffff;Bytes++)
{
if(Addr[i]==i)
{
if(i==15)
{
flag = 1;
return;
}
i++;
}
else
{
if(i=0)
{
Addr = &(Addr[i+1]);
}
else
{
Addr = &(Addr[i]);
i=0;
}
}
}
结果没有成功。据我分析,原因可能为以下几条:
1、使用JTAG方式调DSP程序时,会复位blackfin的内核,同时复位blackfin的PCI核,这时无法访问PCI空间;
2、默认的blackfin的工作模式是设备模式,作为PCI总线的从设备,blackfin无法访问PCI host端的内存空间;
3、默认的地址映射窗口不正确,致使host端写入的数组不在窗口的范围里,blackfin无法看到。
续(2004.7.7)
解决PCI&JTAG的问题后,问题解决。结果如我所预想的一样,在Target端将Host端的内存地址加上0xe0000000访问即可。
最终内存映射图为:Host映射在Target的窗口有128MB,它的0x00000000——0x07FFFFFF映射在Target的地址范围0xE0000000——0xE7FFFFFF上。Target映射在Host的窗口有64MB,它的0xF0000000——0xF3FFFFFF映射在Host的地址范围0xE4000000——0xE7FFFFFF上。Target被映射的窗口(一段内存空间),可以通过DSP的寄存器更改大小和起始地址。
分享到:
相关推荐
a pci host rtl code for reference.
Broadcom specific AMBA PCI Host.
Simple, generic PCI host controller driver targetting firmware-initialised.
关于DSP 达芬奇系列的PCI主机程序中断使用说明手册,官方的
在Windows下通过WinIO driver访问南桥芯片组的PCI configuration space的配置空间registers
PCI9054笔记 PCI9054 PCI9054笔记 PCI9054 PCI9054笔记 PCI9054
ValleyTechPCI,里面有pci的host和target相关程序,能用到的朋友下载吧
DOS操作系统下访问PCI板卡的机理,给出两种访问配置空间的方法。分别介绍了访问采用内存映射局部空间和采用I/O映射局部空间的方法。
通过对PCI协议配置机制的分析,提出一种直接用I/O命令访问PCI总线设备配置空间的方法,给出了相应的C语言程序,并在实际应用中得到验证,从而在大多数情况下避免了复杂的驱动程序开发。
矽统USB驱动,包括: SiS 7001 PCI to USB Open Host Controller、 Standard Enhanced PCI to USB Host Controller和 USB Root Hub
适用于DOS系统下开发使用, PCI卡内存空间访问
PCI、PCIX和PCIExpress 的原理及体系结构 马鸣锦 朱剑冰 何红旗 杜 威 编著 PCIExpress是第三代高性能IO总线,在总线结构上采取了根本性的变革,主要体 现在两个方面:一是由...
主片 Hi3511/Hi3512 作为host 设备,通过PCI 与多个PCI Device(包括作为PCI Device 模式的从Hi3511/Hi3512)设备相连。主从Hi3511/Hi3512 独立工作,通过PCI 的内存 映像机制实现主从Hi3511/Hi3512 间数据的交换。...
PCI配置空间 PCI PCI配置空间 PCI配置空间 PCI PCI配置空间
PCI总线的I/O空间直接访问方法1rar,PCI总线,配置空间,配置头,访问
研华PCI-1716 调用BIOS中断,访问PCI卡数据,源代码和exe程序多个。
PCI中文规范 PCI中文规范 PCI PCI中文规范
PCI9054文档 PCI9054文档 PCI9054
pci9054(pci卡驱动编程示例) pci9054(pci卡驱动编程示例)
驱动程序具体包括六个功能模块:设备初始化、创建设备对象、访问PCI配置空间、硬件操作、中断处理、DMA传输。通过给出详细的程序代码,讲述了每一功能的实现方法。最后介绍了驱动程序的安装文件和安装方法,针对soft1CE...