4306|8

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

OALMSG(cond, exp)打印区域设置? [复制链接]


该宏的定义为:

#define OALMSG(cond, exp)   ((void)((cond)?(OALLog exp), TRUE : FALSE))

请问(OALLog exp), TRUE 表示打印?第一个参数打印区域指什么,为什么在DNW上却没有输出?

最新回复

没有打印。 #define OALMSG(cond, exp)  ((void)((cond)?(OALLog exp), TRUE : FALSE)) 这是个条件输出,相当于: if (cond){(OALLog exp); return TRUE;} else return FALSE; 如果cond为FALSE,直接返回FALSE了,根本没有打印输出。  详情 回复 发表于 2009-2-5 08:48
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
快回家了,不想干活了。
帮看PB帮助
The logging library provides a single function and zone definitions to trace OAL components in a consistent way. This library provides an interface for consistent tracing of OAL components. For more information, see %_WINCEROOT%\Platform\Common\Src\Inc\Oal_log.h.

OAL Interface
OALMSG(cond, exp)
This macro is used for logging in the OAL. It supports log zones.
This macro accepts a Boolean condition and an expression. The condition must be TRUE for the trace to occur. If TRUE, the expression is passed to the trace routine.

OALMSGS(cond, exp)
This macro is used for logging in the OAL and always uses serial output. It supports log zones.
This macro accepts a Boolean condition and an expression. The condition must be TRUE for the trace to occur. If TRUE, the expression is passed to the trace routine.

 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
只是宏的一种表示形式
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 

log zones是指不同的打印区域吗?最后不都是定位到串口了吗?怎么有的区域就显示不出来呢?
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

5
 
上面说了啊,还有,在OAL下有很多例子,你只要找个来抄袭就OK了,在OEMInit函数就有OAL输出到串口。
——————————————————————————————
如果在驱动中有以下两种方法。
wince下驱动的调试方法有很多,但是这些方法最终都只有一个目的,那就是要尽可能多的输出调试信息,以方便我们诊断问题。编译一个debug版本的驱动能帮助我们输出更多的debug信息,所以驱动调试的时候选择编译一个debug版的驱动是一个不错的选择。

将下面这句代码加入到驱动所在目录中的sources文件中即可:
CDEFINES=$(CDEFINES) -DDEBUG



————————————————-不知道是否会和这种方法效果一样?



WINCE的驱动开发中,我们一般将工程编译为release模式。如果编译为debug模式,编译结果(NK)将会非常大,超过代码中对NK的限制范围。

而且有的时候我们只需要了解个别设备驱动的调试信息,并不需要将整个工程编译为debug模式。

在这种情况下可以用这样的方法,在驱动文件的头部加上:

#undef DEBUGMSG
#define DEBUGMSG(x,s) NKDbgPrintfW s

这样这个驱动文件里的所有调试信息都会打印出来,并且不理会DebugZone的设置。

——————————————————————————————————————————
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 

我意思是log zones 用来区分不同的输出区域,那么在DNW怎么能区分不同的区域呢,我只有把log zones设置为TRUE的情况下,才能看到打印结果。
 
 
 

回复

121

帖子

0

TA的资源

一粒金砂(中级)

7
 
引用 5 楼 winamp123 的回复:

我意思是log zones 用来区分不同的输出区域,那么在DNW怎么能区分不同的区域呢,我只有把log zones设置为TRUE的情况下,才能看到打印结果。


这个我没有仔细看过,你我只看到这些区域区分方法是一些宏定义控制的,我记得PB有详细的说明,建议你找来看看。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 

我就奇怪,打印到哪里去了?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
没有打印。
#define OALMSG(cond, exp)  ((void)((cond)?(OALLog exp), TRUE : FALSE))
这是个条件输出,相当于:
if (cond){(OALLog exp); return TRUE;}
else return FALSE;
如果cond为FALSE,直接返回FALSE了,根本没有打印输出。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表