阅读:2231回复:11
关于NKDbgPrintfW()
在我的程序中,我想用NKDbgPrintfW()函数输出一些调试信息,以便通过连接WINCE设备的调试串口COM1,可以在上位机超级终端上观察程序的运行情况,结果发现NKDbgPrintfW()中所要输出的调试信息超级终端没有收到,语句编译执行却没有问题。
这是什么原因呢?谁能告诉我NKDbgPrintfW()这个函数的用法?是否还需要在Pb中作一些设置? |
|
沙发#
发布于:2004-07-13 09:55
yun 没有人帮我啊 :(
|
|
板凳#
发布于:2004-07-13 09:55
自己再顶
|
|
论坛版主
|
地板#
发布于:2004-07-13 13:03
1.先确定一下你的串口连接是否正确,需不需要交叉?
2.然后用一台pc确定一下超级终端是否能正常接受对方来的信息,有时候会出问题,可能是由于同步不对,最好确定一切正常。 3.弄清楚两边串口的设置,波特率是否一致,最好一致,但相差不太大也能工作 4.再没有就用示波器看目标板有没有从串口送数据 5.还是没有就得看看原代码调试串口的初始化和操作了,oal有专用的调试接口函数,初始化在OEMInitDebugSerial试试使用它们:OEMWriteDebugString 或OEMWriteDebugByte 补充一点,最可能的问题是你用的那个宏嵌套定义不对 |
|
论坛版主
|
地下室#
发布于:2004-07-13 16:21
刚才找了半天,NKDbgPrintfW最后还是用的oEMWriteDebugByte,实在不行就用后面那个试试
|
|
5楼#
发布于:2004-07-13 18:43
宏嵌套??不太明白
望大侠指点 :) |
|
论坛版主
|
6楼#
发布于:2004-07-14 12:53
原先以为这是个宏,我查了一下,NKDbgPrintfW 是个win api,最终是调用OEMWriteDebugByte往串口送数据,你试试直接使用OEMWriteDebugByte能工作不,还是检查一下前面我说的那些
|
|
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这个宏是在那个地方定义?该怎么做呢? |
|
论坛版主
|
8楼#
发布于:2004-07-22 23:19
你直接使用这个函数发送数据不成功?
这个函数和平台相关,所以我无法知道具体的实现,你可以查一下bsp中的定义。 看这个定义,如果定义了PRODUCT_SERIAL_ENABLED 则函数什么都不做,这个变量可能是选择串口使用方式的(查询或中断) |
|
9楼#
发布于:2004-07-22 23:43
check the setting items
|
|
10楼#
发布于:2004-07-23 09:24
楼上的兄弟什么意思?
|
|
11楼#
发布于:2004-07-28 17:41
你的debug board 有透咿ethernet
|
|