作者:ARM-Win
不管在WinCE5.0還是在WinCE6.0中,我們在調(diào)試驅(qū)動或者應(yīng)用的時候都會用到打印函數(shù)。在驅(qū)動里面,我們可能會用DEBUGMSG(..),RETAILMSG(..),還有NKDbgPrintfW(..)。在我們使用這些打印函數(shù)調(diào)試我們的程序之前,我們需要實(shí)現(xiàn)串口打印功能。
在WinCE的BSP中,如果想調(diào)用DEBUGMSG(..)或者RETAILMSG(..)來從串口打印信息,必須在我們的BSP中的OAL層找到debug.c,在這個文件里面實(shí)現(xiàn)下面的4個函數(shù):
void OEMInitDebugSerial(void) : 初始化用于打印信息的串口
int OEMReadDebugByte (void): 從串口讀一個byte,出錯時返回OEM_DEBUG_COM_ERROR;沒有數(shù)據(jù)時返回OEM_DEBUG_READ_NODATA
void OEMWriteDebugByte(BYTE ch): 寫一個byte到串口void OEMWriteDebugString(unsigned short* str): 寫一個字符串到串口,這個函數(shù)其實(shí)就是通過調(diào)用OEMWriteDebugByte(..)實(shí)現(xiàn)的。實(shí)現(xiàn)了上述的4個函數(shù),就可以通過串口打印來調(diào)試程序了。一般這4個函數(shù)在OAL中的debug.c中實(shí)現(xiàn)。
在BSP中,我們一般會用3個函數(shù)來實(shí)現(xiàn)打?。篋EBUGMSG,RETAILMSG,NKDbgPrintfW。簡單介紹一下:
NKDbgPrintfW(..)函數(shù)一般只在OAL中使用,可以直接從串口中打印出信息,不受編譯選項(xiàng)的影響。
DEBUGMSG(..)函數(shù)只有在工程在Debug模式下編譯以后,才會打印出信息來。如果是在Release模式下編譯的,就不會打印信息出來。
RETAILMSG(..)函數(shù)在Debug模式下和Release模式下編譯都會打印出調(diào)試信息,但是如果你在工程的屬性中的"Build option"中選擇了"Enable ship build",那么RETAILMSG函數(shù)就不會打印信息了。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/jiereliyi/archive/2009/08/31/4504136.aspx
摘要: 記得去年的校圣誕編程大賽的初賽和復(fù)賽中有3,4道類型相似的題目,當(dāng)時對于剛加入ACMER行列的我并不了解這是哪一類的題目,只覺得這些題目有一定的規(guī)律。后來寫的程序多了,接觸的算法也多了,慢慢的知道那3,4道題目其實(shí)是動態(tài)規(guī)劃下的”背包問題”.現(xiàn)在基本上了解了這類題目的解題思路和應(yīng)對方法,故想借此對各種背包問題做一個詳細(xì)的解釋.
&nbs...
閱讀全文