wince 6.0中的硬件操作问题

最近碰到一个问题,在开发应用程序中需要操作相应的IO接口,但是该IO口并没有包含到对应的驱动程序中,也就是说没有提供用户操作的接口,我就打算自己在应用程序中直接去操作硬件,后来在网上查阅了不少资料,发现该方法好像不行。这里从网上摘录了一段博文,对该问题做了一定的说明:

 

在wince 5.0中可以使用如下方法:

unsigned int *gpio_base;

PHYSICAL_ADDRESS PortAddress = {0x56000060, 0};
gpio_base =(unsigned int *)MmMapIoSpace( PortAddress, 0x04,FALSE ); // 获得内存
*gpio_base = 0x0585ff87; // 直接访问硬件
MmUnmapIoSpace(gpio_base,0x04);//释放内存

 

而在wince6.0中用户态驱动不能调用以下函数:
1、 VM虚拟内存函数:VirtualCopy[Ex], LockPages[Ex], CreateStaticMapping
2、 中断函数:InterruptInitialize, InterruptDone, LoadIntChainHandler
3、 不能直接使用IISR,需要通过转接服务来做GIISR。
4、 OAL层的IOCTL不能直接使用。

 

目前在各网友的帮助下发现,只能让应用程序加载了一个驱动,通过驱动访问物理内存。具体的实现方法还没有进行尝试,后续会继续更新。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值