前言
在利用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);
DWORD DLLCALLCONV WDC_WriteAddr32

本文介绍了在Windriver环境下,如何使用API接口WDC_WriteAddr32/WDC_ReadAddr32、WDC_ReadAddrBlock32/WDC_WriteAddrBlock32以及WDC_ReadMem32/WDC_WriteMem32来访问和操作外部设备的内存资源。这些函数分别用于单次读写、块读写和通过虚拟地址读写,对于理解驱动程序中与硬件交互的内存访问机制十分有用。
最低0.47元/天 解锁文章
1732

被折叠的 条评论
为什么被折叠?



