3749|7

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有关GPIO里程序的问题 [复制链接]

static
BOOL SetFrequencyControl1(
    PDEVICE_INSTANCE DeviceInstance,
    MASK            *Mask
)
{
    ULONG Tmp;

    EnterCriticalSection(&DeviceInstance->ControlMutex);

    Tmp = READ_REGISTER_ULONG((PULONG)&DeviceInstance->SysRegPtr->freqctrl1);
    Tmp &= Mask->AndMask;
    Tmp |= Mask->OrMask;

    WRITE_REGISTER_ULONG((PULONG)&DeviceInstance->SysRegPtr->freqctrl1, Tmp);

    DEBUGMSG(ZONE_CLOCKS,(L"GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n", Tmp, Mask->AndMask, Mask->OrMask));

    LeaveCriticalSection(&DeviceInstance->ControlMutex);
   
    return TRUE;
}

一个小菜鸟想请教那个GPIO里面的上面那段程序中 DEBUGMSG(ZONE_CLOCKS,(L"GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n", Tmp, Mask->AndMask, Mask->OrMask));高手们能否讲解下?

最新回复

其实可以不用这个打印函数的, 我在build的时候都是选的release版的, 如果你确实想要在某一个驱动程序里面做打印处理那么用RETAILMSG就可以了, RETAILMSG(1, TEXT(“”)):在很多的驱动里面都用到, ----------------- 当然如果你要调试的驱动是用的DEBUGMSG 你也可以在你要要调试的 文件中加上 #define DEBUGMSG  RETAILMSG 这样DEBUGMSG  的信息就可以打印出来了 ! ------------   详情 回复 发表于 2009-8-1 16:19
点赞 关注

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
打印调试信息
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
那个请问能不能细细的讲解下呢???我还很弱这个
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
搜一下DEBUG ZONE吧 这个东西就是调试信息
可以看做当#define ZONE_CLOCKS 1的时候
printf("GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n", Tmp, Mask->AndMask, Mask->OrMask)
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
参看《Platform Builder for Microsoft Windows CE 5.0的帮助文档》得知:

在源代码中使用宏定义来输出调试信息,Release and Debug 结构调用不同的宏:
Release结构宏使用下列宏:
RETAILMSG(cond, printf_exp):显示打印信息;
RETAILLED(cond, parms):输出LED的WORD值;
RETAILREGISTERZONES(hmod):为Release结构使用debug zones;
ERRORMSG(cond, printf_exp):在打印信息前打印Error: File Line;


Debug结构宏使用三个Release结构宏和以下Debug结构宏:
DEBUGREGISTER(hmod):为Debug结构使能debug zones;
DEBUGMSG(cond, printf_exp):显示打印信息;
DEBUGLED(cond, parms):输出LED的WORD值;

而你问的DEBUGMSG()函数就是Debug结构下使用的显示打印信息,用于调试程序,意思正如aaassd_cn所示:
当#define ZONE_CLOCKS 1的时候
printf("GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n", Tmp, Mask->AndMask, Mask->OrMask)
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
学习了,楼上的辛苦了。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
ZONE_CLOCKS 为真时,输出打印信息GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

8
 
其实可以不用这个打印函数的,
我在build的时候都是选的release版的,
如果你确实想要在某一个驱动程序里面做打印处理那么用RETAILMSG就可以了,
RETAILMSG(1, TEXT(“”)):在很多的驱动里面都用到,

-----------------
当然如果你要调试的驱动是用的DEBUGMSG
你也可以在你要要调试的 文件中加上
#define DEBUGMSG  RETAILMSG
这样DEBUGMSG  的信息就可以打印出来了 !
------------

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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