驱动程序(11) Windriver下读写外部设备BAR内存资源的方法

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在利用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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值