有关GPIO里程序的问题

周新眼   2009-7-8 10:47 楼主
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));高手们能否讲解下?

回复评论 (7)

打印调试信息
点赞  2009-7-8 10:55
那个请问能不能细细的讲解下呢???我还很弱这个
点赞  2009-7-8 10:59
搜一下DEBUG ZONE吧 这个东西就是调试信息
可以看做当#define ZONE_CLOCKS 1的时候
printf("GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n", Tmp, Mask->AndMask, Mask->OrMask)
点赞  2009-7-29 18:06
参看《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)
点赞  2009-7-30 15:20
学习了,楼上的辛苦了。
点赞  2009-7-31 12:34
ZONE_CLOCKS 为真时,输出打印信息GPIO:FreqControl2 = %08x (And=%08x, Or=%08x)\r\n
点赞  2009-7-31 16:04
其实可以不用这个打印函数的,
我在build的时候都是选的release版的,
如果你确实想要在某一个驱动程序里面做打印处理那么用RETAILMSG就可以了,
RETAILMSG(1, TEXT(“”)):在很多的驱动里面都用到,

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

点赞  2009-8-1 16:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复