wince 串口调试信息输出
生活随笔
收集整理的這篇文章主要介紹了
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函數就不會打印信息了。
??? 在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函數就不會打印信息了。
總結
以上是生活随笔為你收集整理的wince 串口调试信息输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinCE文件目录定制
- 下一篇: 项目管理概述学习记录(一)