阅读:1220回复:6
关于s5933的问题,各位大牢帮忙
小弟刚刚入门,遇到这样一个问题:使用fifo的传输方式进行数据传送,master方式,外加接口控制数据向pci总线送,请问传送的地址是怎么确定的?是事先确定好的嘛?但是如果所设定的地址空间被其他程序占用了怎么办啊?
|
|
沙发#
发布于:2002-11-03 15:06
555
怎么没有人回到我得问题啊?各位ggjjddmm帮帮忙好不好啊!! 给分得啊!!!! |
|
板凳#
发布于:2002-11-03 16:44
硬件只知道物理地址,驱动程序应该负责线性地址到物理地址的转换,另外还要lock内存页,防止被交换到硬盘.
|
|
|
地板#
发布于:2002-11-05 01:30
NTSTATUS
AmccFIFOWrite(PIRP Irp, AMCC_DEVICE_EXTENSION *pDeviceExt) { PULONG params; //#ifdef DEBUG KdPrint((\"the entry of AmccFIFOWrite ok!\\n\")); //#endif params=(PULONG)Irp->AssociatedIrp.SystemBuffer; // get a ULONG pointer to the mailbox number // make sure the write FIFO is not full, as writing to a full FIFO locks the machine with this PCI controller if (READ_REGISTER_ULONG(pDeviceExt->Base_Addr_Reg[AMCC_OP_REGS]+AMCC_MCSR) & AMCC_WRITE_FIFO_FULL_MASK) { return STATUS_BUFFER_TOO_SMALL; } // write the data WRITE_REGISTER_ULONG(pDeviceExt->Base_Addr_Reg[AMCC_OP_REGS]+AMCC_FIFO, *params); // Terminate with success Irp->IoStatus.Information=0; // don\'t send data back up from this function return STATUS_SUCCESS; }//end of AmccFIFOWrite 以上代码可以解决你的问题(你只要读懂就可以)如果给分我有详细的解答 |
|
|
地下室#
发布于:2002-11-05 09:09
楼上的老大,我已经放分。收到了没?
十分感谢!!! 那就给兄弟来点详细的解答吧!再次感谢!!! |
|
5楼#
发布于:2002-11-05 19:36
FIFO的地址是确定的,我给你的EMAIL有没有收到!收到请回复,谢谢!谢谢你的分!
|
|
|
6楼#
发布于:2002-11-05 22:11
收到了,谢谢
|
|