不管在WinCE5.0還是在WinCE6.0中,我們?cè)谡{(diào)試驅(qū)動(dòng)或者應(yīng)用的時(shí)候都會(huì)用到打印函數(shù)。在驅(qū)動(dòng)里面,我們可能會(huì)用DEBUGMSG(..),RETAILMSG(..),還有NKDbgPrintfW(..)。在我們使用這些打印函數(shù)調(diào)試我們的程序之前,我們需要實(shí)現(xiàn)串口打印功能。 在WinCE的BSP中,如果想調(diào)用DEBUGMSG(..)或者RETAILMSG(..)來(lái)從串口打印信息,必須在我們的BSP中的OAL層找到debug.c,在這個(gè)文件里面實(shí)現(xiàn)下面的4個(gè)函數(shù): void OEMInitDebugSerial(void) : 初始化用于打印信息的串口 int OEMReadDebugByte (void): 從串口讀一個(gè)byte,出錯(cuò)時(shí)返回OEM_DEBUG_COM_ERROR;沒(méi)有數(shù)據(jù)時(shí)返回OEM_DEBUG_READ_NODATA void OEMWriteDebugByte(BYTE ch): 寫(xiě)一個(gè)byte到串口void OEMWriteDebugString(unsigned short* str): 寫(xiě)一個(gè)字符串到串口,這個(gè)函數(shù)其實(shí)就是通過(guò)調(diào)用OEMWriteDebugByte(..)實(shí)現(xiàn)的。實(shí)現(xiàn)了上述的4個(gè)函數(shù),就可以通過(guò)串口打印來(lái)調(diào)試程序了。一般這4個(gè)函數(shù)在OAL中的debug.c中實(shí)現(xiàn)。 在BSP中,我們一般會(huì)用3個(gè)函數(shù)來(lái)實(shí)現(xiàn)打?。篋EBUGMSG,RETAILMSG,NKDbgPrintfW。簡(jiǎn)單介紹一下: NKDbgPrintfW(..)函數(shù)一般只在OAL中使用,可以直接從串口中打印出信息,不受編譯選項(xiàng)的影響。 DEBUGMSG(..)函數(shù)只有在工程在Debug模式下編譯以后,才會(huì)打印出信息來(lái)。如果是在Release模式下編譯的,就不會(huì)打印信息出來(lái)。 RETAILMSG(..)函數(shù)在Debug模式下和Release模式下編譯都會(huì)打印出調(diào)試信息,但是如果你在工程的屬性中的"Build option"中選擇了"Enable ship build",那么RETAILMSG函數(shù)就不會(huì)打印信息了。
|
|
來(lái)自: BeautymengRoom > 《wince6.0》