WinCE6.0 DEVICEEMULATOR BSP的CEDDK提供了地址转换函数,位于/SRC/DRIVERS/CEDDK/下,有2个目录DDK_BUS和DLL,前者生成ddk_bus.lib,后者生成ceddk.dll,这部分的CEDDK实现了4个函数,data.c中的HalGetBusDataByOffset和HalSetBusDataByOffset,trans.c中的HalTranslateBusAddress和HalTranslateSystemAddress.下面就来看看这个函数:
1. HalGetBusDataByOffset
HalGetBusDataByOffset从IO Bus地址或者Slot的起始偏移获得信息.该函数读取总线配置数据,将输入参数转换为新的格式给内核去调用执行后续的步骤.
(1) 该函数首先定义了OAL_DDK_PARAMS和PCI_SLOT_NUMBER结构变量.OAL_DDK_PARAMS原型如下,该结构保存了IOCTL_HAL_DDK_CALL需要的信息.
(2) 设置需要调用的IOCTL代码及返回代码
(3) 根据busDataType进行判断,如果是PCIConfiguration进行成员赋值,如设置总线类型(PCIBus),slotNumber,busNumber等.(这里只支持PCIConfiguration的总线类型)
WinCE6.0 DEVICEEMULATOR BSP的CEDDK简析
最新推荐文章于 2020-12-25 22:02:15 发布