MFC向DSP下发数据时,接口地址该怎么定义,在哪里定义
MFC向DSP下发数据时,接口地址该怎么定义,在哪里定义.这个地址可以通过接口抓出来,但是在程序里找不到,难道这个地址还要通过驱动转换地址值么?
[解决办法]
还有一种方法可以直接操作计算机的硬件,用WINIO这个库就可以直接操作PCI的地址,这个库是否直持WIN7及WIN8不清楚,我只在XP上用过
[解决办法]
完成内存页面映射,最终映射到应用程序的地址我们可以看到 么?
====================================
在PC端映射完后我们就知道BARn的起始地址,假如从BARn开始的第一个4字节是我们定义的用于特定功能的控制寄存器,PC应用程序中就可以直接写内存 *((int*)BARn) = 。。。,
PCI与DSP之间也是通过驱动实现这种地址映射么?
==================================
PC这边的映射是windows负责完成的,一般的,芯片需要申请需要多大的地址空间,windows设置PC端的物理地址映射基址。
而板卡固件程序那边,地址映射是固件程序在初始化时设置的,一般有个专门的寄存器负责。
举个例子,假如我们申请BAR1的大小是4K,windows给板卡分配的BAR1起始地址是0xffff fc00(这个地址是windows自动完成的,理论上有新设备加入系统时有可能变化),固件程序设置在local端也就是跟你dsp连接的一段 BAR1的起始地址是 0x0000 0000,那么PC端对0xffff fc00的访问就会转换成pci芯片在local端对0x0000 0000的访问。
不清楚板卡这边你是怎么设计的,可能还得外加存储器,如果是FPGA而不是DSP直接对地址译码就可以了