我已经完成了编写与设备通信的应用程序的任务。然而,这不是驱动程序,因为设备仍在开发中,并且该应用程序旨在执行其第一次修订。
我们将通过/ dev / mem与设备通话。我们将拥有所有权利。我们知道这不是正确的方法(即需要使用驱动程序),但这只是一个测试,以确保设备开发按计划进行,它确实有效。
通信协议具有指定的读写操作。问题是所有地址都是物理的。这就是它的意思。
如果主机想要写入设备,则需要提供需要写入的数据的物理地址。如果主机需要从设备读取,则需要提供缓冲区的物理地址,以便设备可以放置数据。
说我的界面有以下功能:
WriteToDevice(void *ptrToDataToWriteToADevice, unsgined numBytes);
ReadFromDevice(void *whereToPlaceDataReadFromADevice, unsigned numBytes);
ptrToDataToWriteToADevice
和whereToPlaceDataReadFromADevice
都在应用程序空间中,即不是物理地址。如何告诉我的设备在物理内存中找到这些指针?
感谢任何帮助。