当前位置: 代码迷 >> WinCE >> 应用程序怎么调用OEMWriteDebugLED()
  详细解决方案

应用程序怎么调用OEMWriteDebugLED()

热度:223   发布时间:2016-04-28 13:53:53.0
应用程序如何调用OEMWriteDebugLED()?
对驱动完全不了解~由于要应用程序中控制LED灯,在驱动中找到了这么几个函数~
BSP的EBoot文件夹,loader.h中,
C/C++ code
void OEMWriteDebugLED(WORD wIndex,DWORD dwPattern);

main.c文件中
C/C++ code
void main(void){    //Clear LEDs.    //    [color=#FF0000]OEMWriteDebugLED(0,0x3F);[/color]    //BootloaderMain();    //SpinForever();}

我试着把main函数中OEMWriteDebugLED中的参数改变,发现启动时LED灯的确改变了~~
问题是这是在驱动内调用,如果是在应用程序中该如何调用,求教~~


以及,我在dbgapi.h中找到了一个WriteDebugLED()函数,可以在应用程序中直接调用,但是似乎没有作用~而且这个只能找到定义~


BSP的Stepldr文件夹,utils.c中有个函数
C/C++ code
void Led_Display(int data){    //Active is low.(LED on)    //GPE3   GPE2   GPE1   GPE0    //nLED_8 nLED_4 nLED_2 nLED_1    //    rGPBDAT = (rGPEDATA & ~(0xf<<0)) | ((~data & 0xf) <<0);}

这个函数跟OEMWriteDebugLED()又有什么关系?

------解决方案--------------------
既然驱动中可以调用,那就把这个函数再封装成DLL,然后应用程序调用这个DLL就可以了。。
------解决方案--------------------
我觉得
1 用KernelIOControl更好
不过应该要自己去加一个IO控制码,如IO_WRITE_LED

2 应该可以写一个最简单的流驱动
应用程序通过这个流驱动间接调用OEMWriteDebugLED
------解决方案--------------------
探讨

引用:

我觉得
1 用KernelIOControl更好
不过应该要自己去加一个IO控制码,如IO_WRITE_LED

2 应该可以写一个最简单的流驱动
应用程序通过这个流驱动间接调用OEMWriteDebugLED

关键是KernelIOControl我不知道怎么在引用程序中使用~~控制码的话好像有现成的LED控制~~就是调用的OEMW……

------解决方案--------------------
这个是内核调用的,不是你驱动去调用的。
楼主想用来干啥,不必拘泥与函数,自己写个驱动也可以啊
  相关解决方案