2010年8月20日

打印函数总结RETAILMSG(..) DEBUGMSG(..) NKDbgPrintfW(..)

作者:ARM-Win

不管在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函数就不会打印信息了。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiereliyi/archive/2009/08/31/4504136.aspx

posted @ 2010-08-20 09:51 迟到的爱 阅读(2008) | 评论 (1)编辑 收藏

2009年7月23日

我的"背包"学习总结(超详细版)

     摘要:   记得去年的校圣诞编程大赛的初赛和复赛中有3,4道类型相似的题目,当时对于刚加入ACMER行列的我并不了解这是哪一类的题目,只觉得这些题目有一定的规律。后来写的程序多了,接触的算法也多了,慢慢的知道那3,4道题目其实是动态规划下的”背包问题”.现在基本上了解了这类题目的解题思路和应对方法,故想借此对各种背包问题做一个详细的解释.  &nbs...  阅读全文

posted @ 2009-07-23 19:27 迟到的爱 阅读(2550) | 评论 (6)编辑 收藏

仅列出标题  
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜