不管在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 串列埠除錯資訊輸出
不管在wince5.0還是在wince6.0中,我們在除錯驅動或者應用的時候都會用到列印函式。在驅動裡面,我們可能會用debugmsg retailmsg 還有nkdbgprintfw 在我們使用這些列印函式除錯我們的程式之前,我們需要實現串列埠列印功能。在wince的bsp中,如果想呼叫debug...
vc 除錯資訊輸出 列印除錯資訊
1.cdumpcontext 該類沒有基類。這個類支援面向流的診斷輸出,以人能夠閱讀的文字。該類過載了 操作符。afxdump是乙個預宣告的cdumpcontext物件,可以方便使用。該物件只在mfc的debug版中有效。可以將調式資訊輸出到除錯輸出視窗或除錯終端。example for afxdu...
WinCE中串列埠通訊的除錯方法
串列埠是嵌入式系統中應用很廣的一種通訊介面。在wince中,通常會有乙個串列埠供除錯使用,另外的串列埠可與外圍裝置連線,如gsm和gps等模組,以獲取相應的資訊並進行處理。在wince中,為了使用串列埠,必須有相應的串列埠驅動程式,一般在bsp中都有實現。串列埠驅動是典型的流驅動。應用程式中可通過c...