sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2166回复:11

关于NKDbgPrintfW()

楼主#
更多 发布于:2004-07-02 08:26
     在我的程序中,我想用NKDbgPrintfW()函数输出一些调试信息,以便通过连接WINCE设备的调试串口COM1,可以在上位机超级终端上观察程序的运行情况,结果发现NKDbgPrintfW()中所要输出的调试信息超级终端没有收到,语句编译执行却没有问题。
    这是什么原因呢?谁能告诉我NKDbgPrintfW()这个函数的用法?是否还需要在Pb中作一些设置?
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-13 09:55
yun 没有人帮我啊 :(
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-13 09:55
自己再顶
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-13 13:03
1.先确定一下你的串口连接是否正确,需不需要交叉?
2.然后用一台pc确定一下超级终端是否能正常接受对方来的信息,有时候会出问题,可能是由于同步不对,最好确定一切正常。
3.弄清楚两边串口的设置,波特率是否一致,最好一致,但相差不太大也能工作
4.再没有就用示波器看目标板有没有从串口送数据
5.还是没有就得看看原代码调试串口的初始化和操作了,oal有专用的调试接口函数,初始化在OEMInitDebugSerial试试使用它们:OEMWriteDebugString 或OEMWriteDebugByte

补充一点,最可能的问题是你用的那个宏嵌套定义不对
根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-13 16:21
刚才找了半天,NKDbgPrintfW最后还是用的oEMWriteDebugByte,实在不行就用后面那个试试
根据地的兄弟们,团结就是力量
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-13 18:43
宏嵌套??不太明白
望大侠指点 :)
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-14 12:53
原先以为这是个宏,我查了一下,NKDbgPrintfW 是个win api,最终是调用OEMWriteDebugByte往串口送数据,你试试直接使用OEMWriteDebugByte能工作不,还是检查一下前面我说的那些

根据地的兄弟们,团结就是力量
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-21 17:20
我刚才查了一下,OEMWriteDebugByte()如下:
void OEMWriteDebugByte(unsigned char c)
{
    #ifdef PRODUCT_SERIAL_ENABLED
    #else
       //Spin if FIFO has more than half data
       while(!(g_pDebugUartPort->lsr & 0x020))
  {};

       g_pDebugUartPort->thr_rbr_dll=(unsigned char)c;
#endif

}
那么 PRODUCT_SERIAL_ENABLED这个宏是在那个地方定义?该怎么做呢?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-22 23:19
你直接使用这个函数发送数据不成功?
这个函数和平台相关,所以我无法知道具体的实现,你可以查一下bsp中的定义。
看这个定义,如果定义了PRODUCT_SERIAL_ENABLED 则函数什么都不做,这个变量可能是选择串口使用方式的(查询或中断)
根据地的兄弟们,团结就是力量
linwn
驱动牛犊
驱动牛犊
  • 注册日期2002-11-10
  • 最后登录2015-01-27
  • 粉丝0
  • 关注0
  • 积分97分
  • 威望30点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-22 23:43
check the setting items
sunshine_fl
驱动牛犊
驱动牛犊
  • 注册日期2002-08-22
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-23 09:24
楼上的兄弟什么意思?
lugiwin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-26
  • 最后登录2004-11-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-28 17:41
你的debug board 有透咿ethernet
游客

返回顶部