欢迎来到天天文库
浏览记录
ID:61787031
大小:22.00 KB
页数:4页
时间:2021-03-20
《在wince应用程序中直接访问硬件.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、__________________________________________________在wince应用程序中直接访问硬件平台:wince5.0.0 OK2440-III5.0BSP 直接在wince下操作硬件可以避免烧写NK,避免繁琐的驱动调试,用来验证硬件好坏非常有用,是系统起来后调试外设的很好的手段。 一、在wince5.0平台 wince平台是比较成熟的平台,驱动比较好调试,驱动和应用的写法可以一模一样,甚至可以采用EVC来开发流驱动,效果不错。 在wince5.0上直接访问硬件有如下方法: 1、直接访问uncached虚拟地址,成功案例如下://-GPB
2、forLCDbacklightcontrol0xB16000XXisuncachedAddress #definerGPBCON (*(volatileunsigned*)0xB1600010) //PortBcontrol #definerGPBDAT (*(volatileunsigned*)0xB1600014) //PortB____________________________________________________________________________________________________data #definerGPBUP (*(
3、volatileunsigned*)0xB1600018) //Pull-upcontrolB下面的代码在EVC下成功控制了背光。//testisOK---thebacklightiscontrolled voidCSPI_wifi_testDlg::OnButton3() { //TODO:Addyourcontrolnotificationhandlercodehere //settingGPB1out[3:2]=01 rGPBCON&=~(1<<3); rGPBCON
4、=(1<<2); rGPBDAT
5、=(1<<1); //backlighton
6、 //rGPBDAT&=~(1<<1); //backlightoff } 2、使用MmMapIoSpace以及MmUnmapIoSpace访问 其实MmMapIoSpace以及MmUnmapIoSpace就是用VirtualAlloc和VirtualCopy实现的,下面地址有一篇文章详细介绍 MmMapIoSpace以及MmUnmapIoSpace成功访问硬件案例:____________________________________________________________________________________________________voidCD
7、lgDemoDlg::OnButton1() { //TODO:Addyourcontrolnotificationhandlercodehere //unsignedchar*gpio_base; unsignedint*gpio_base; OutputDebugString(L"TestDrv-LedDrive1"); //PUCHARioPortBase; PHYSICAL_ADDRESSPortAddress={0x56000060,0};//LowPart=0x56000060;HighPart=0; gpio_bas
8、e=(unsignedint*)MmMapIoSpace(PortAddress,0x04,FALSE);//获得内存,4字节大小。 *gpio_base=0x0585FF87;//直接访问硬件 MmUnmapIoSpace(gpio_base,0x04);//释放内存 } 3、用VirtualAlloc和VirtualCopy访问硬件____________________________________________________________________________________________________ 几乎每一个驱动都有他们两
9、个,在wince5.0中,如上的写法可以在驱动和应用中都直接使用,效果一样,调试起来方便。 二、wince6.0 刚开始的时候大家都一致认为wince6.0已经不能在应用程序中直接访问硬件了,后来sunrain_hjb发了博客,证实VirtualCopyEX还是照样可以做到,下面是他的博客地址 __________________________________________________
此文档下载收益归作者所有