WinCE BSP中打印信息的实现介绍
2010-03-15 15:27
204 查看
作者:ARM-WinCE
不管在WinCE5.0还是在WinCE6.0中,我们在调试驱动或者应用的时候都会用到打印函数。在驱动里面,我们可能会用DEBUGMSG(..),RETAILMSG(..),还有NKDbgPrintfW(..)。在我们使用这些打印函数调试我们的程序之前,我们需要实现串口打印功能。
在WinCE的BSP中,如果想调用DEBUGMSG(..)或者RETAILMSG(..)来从串口打印信息,必须在我们的BSP中的OAL层找到debug.c,在这个文件里面实现下面的4个函数:
void OEMInitDebugSerial(void) : 初始化用于打印信息的串口
int OEMReadDebugByte (void): 从串口读一个byte,出错时返回OEM_DEBUG_COM_ERROR;没有数据时返回OEM_DEBUG_READ_NODATA
void OEMWriteDebugByte(BYTE ch): 写一个byte到串口void OEMWriteDebugString(unsigned short* str): 写一个字符串到串口,这个函数其实就是通过调用OEMWriteDebugByte(..)实现的。实现了上述的4个函数,就可以通过串口打印来调试程序了。一般这4个函数在OAL中的debug.c中实现。
在BSP中,我们一般会用3个函数来实现打印:DEBUGMSG,RETAILMSG,NKDbgPrintfW。简单介绍一下:
NKDbgPrintfW(..)函数一般只在OAL中使用,可以直接从串口中打印出信息,不受编译选项的影响。
DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。
RETAILMSG(..)函数在Debug模式下和Release模式下编译都会打印出调试信息,但是如果你在工程的属性中的"Build option"中选择了"Enable ship build",那么RETAILMSG函数就不会打印信息了。
另:
DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。
--------------------------------------------------
WINCE的驱动开发中,我们一般将工程编译为release模式。如果编译为debug模式,编译结果(NK)将会非常大,超过代码中对NK的限制范围。
而且有的时候我们只需要了解个别设备驱动的调试信息,并不需要将整个工程编译为debug模式。
在这种情况下可以用这样的方法,在驱动文件的头部加上:
#undef DEBUGMSG
#define DEBUGMSG(x,s) NKDbgPrintfW s
这样这个驱动文件里的所有调试信息都会打印出来,并且不理会DebugZone的设置。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nanjianhui/archive/2008/02/19/2107450.aspx
不管在WinCE5.0还是在WinCE6.0中,我们在调试驱动或者应用的时候都会用到打印函数。在驱动里面,我们可能会用DEBUGMSG(..),RETAILMSG(..),还有NKDbgPrintfW(..)。在我们使用这些打印函数调试我们的程序之前,我们需要实现串口打印功能。
在WinCE的BSP中,如果想调用DEBUGMSG(..)或者RETAILMSG(..)来从串口打印信息,必须在我们的BSP中的OAL层找到debug.c,在这个文件里面实现下面的4个函数:
void OEMInitDebugSerial(void) : 初始化用于打印信息的串口
int OEMReadDebugByte (void): 从串口读一个byte,出错时返回OEM_DEBUG_COM_ERROR;没有数据时返回OEM_DEBUG_READ_NODATA
void OEMWriteDebugByte(BYTE ch): 写一个byte到串口void OEMWriteDebugString(unsigned short* str): 写一个字符串到串口,这个函数其实就是通过调用OEMWriteDebugByte(..)实现的。实现了上述的4个函数,就可以通过串口打印来调试程序了。一般这4个函数在OAL中的debug.c中实现。
在BSP中,我们一般会用3个函数来实现打印:DEBUGMSG,RETAILMSG,NKDbgPrintfW。简单介绍一下:
NKDbgPrintfW(..)函数一般只在OAL中使用,可以直接从串口中打印出信息,不受编译选项的影响。
DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。
RETAILMSG(..)函数在Debug模式下和Release模式下编译都会打印出调试信息,但是如果你在工程的属性中的"Build option"中选择了"Enable ship build",那么RETAILMSG函数就不会打印信息了。
另:
DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。
--------------------------------------------------
WINCE的驱动开发中,我们一般将工程编译为release模式。如果编译为debug模式,编译结果(NK)将会非常大,超过代码中对NK的限制范围。
而且有的时候我们只需要了解个别设备驱动的调试信息,并不需要将整个工程编译为debug模式。
在这种情况下可以用这样的方法,在驱动文件的头部加上:
#undef DEBUGMSG
#define DEBUGMSG(x,s) NKDbgPrintfW s
这样这个驱动文件里的所有调试信息都会打印出来,并且不理会DebugZone的设置。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nanjianhui/archive/2008/02/19/2107450.aspx
相关文章推荐
- WinCE BSP中打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- 转:友善之臂2440中WinCE BSP中串口打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- 友善之臂2440中WinCE BSP中串口打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍——转自:作者:ARM-WinCE(微软MVP)
- WinCE BSP中打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- WinCE 中调试串口打印信息的实现介绍
- WinCE BSP中打印信息的实现介绍
- wince7下的串口信息打印函数
- WinCE BSP中的DAT文件介绍
- wince中的BSP工程的相关文件介绍
- 简单介绍一下BSP中的dirs文件和sources文件(WinCE)
- 使用printf函数实现串口信息打印——设置IAR和Keil的Options
- 如何实现通过IE打印窗体中的所有信息?
- WinCE BSP的BIB文件介绍