前言
在利用windriver生成外部设备的驱动程序的时候,我们往往需要去访问外部设备上的内存资源,windriver提供了几种API接口(以下都以32位来介绍),只需要提供一些参数就可以访问到外部设备的内存资源了。
WDC_WriteAddr32/WDC_ReadAddr32
这两个API函数的定义如下:
hDev:被访问的外部设备的句柄
dwAddrSpace:外部设备上的某个地址空间段,也就是某个BAR
dwOffset:相对于外部设备上某个地址空间基地址的偏移地址
val:Write就是需要写进去的数据值,Read就是读出来的数据值对应的虚拟地址
由定义可以看到这种读写的方式只能每隔32bit读写一次,读写的数据值也是一个一个的,不能做到一个API函数里连续读写数据。
DWORD DLLCALLCONV WDC_ReadAddr32(WDC_DEVICE_HANDLE hDev, DWORD dwAddrSpace,
KPTR dwOffset, UINT32 *val);