4105|16

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

定制的win ce 5.0 COM1不能输出调试信息,请问这是怎么回事。 [复制链接]

我也使用RETAILMSG函数在驱动中添加调试信息,但同样没有调试信息输出。
我修改过WINCE500\PLATFORM\smdk2440\KERNEL\HAL目录下的debug.c文件中的“NODEBUG”我也修改为0了。
#define                NODEBUG 0                //close UART1 used as dbug ouput.         add by lyc 2007/1/12

我使用的是sysgen编译,请问是否是编译有问题。

最新回复

我现在遇到的问题和你的一样,但我的代码里面却都是volatile UART10reg  *s2440UART0…… 我的mini2440+winCE,在板子启动时,屏幕出现欢迎界面时串口能打印debug信息,但进入桌面后就不打印了,有的正在打印的函数名,只打印了一半就停了,不知道怎么回事。 在代码里表现就是:对于smdk2440\drivers\,只有serial\目录下的文件里的debug信息能打印出来,别的目录里的就打印不出来。 我甚至把NKDbgPrintfW的原型都加到某一个文件里然后用它,还是不行。 请高手指教!  详情 回复 发表于 2009-3-6 14:17
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
rebuild first
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我不会写驱动,不过,
我认为你首先应该确认串口1肯定是好用的,
然后再看看串口1的配置对不对,如波特率等;
最后再怀疑程序等问题。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
呵呵,启动时有调试信息输出,但是进入winCE的桌面以后对流接口的读写就没有输出调试信息。很多驱动我都看到是有使用到RETAILMSG函数。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

5
 
进入WINCE后,是所有驱动的信息都不再打印了?还是只有你写的驱动的信息没有输出?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
是所有驱动的信息都不能打印输出。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
除了RETAILMSG函数以外,你可以使用另外一个函数,也是输出信息的,具体函数名我忘记了。因为有时候在不同的设置下,RETAILMSG函数会被屏蔽掉。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 
RETAILMSG函数你是怎么用的?是RETAILMSG(1,(TEXT("")))还是RETAIL(0,(TEXT("")))?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

9
 
既然是所有的驱动信息都无输出,那肯定不会是RETAILMSG函数用错。

NODEBUG你确信是BSP中原来自带的?你自己改成0,依据是什么?是否是一个环境变量,而不是一个宏?也就是说是否还有别的地方需要用到这个判断?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
谢谢各位的关注。

WINCE500\PLATFORM\smdk2440\KERNEL\HAL目录下的debug.c文件下是这样的

#define                NODEBUG 0                //close UART1 used as dbug ouput.         add by lyc 2007/1/12
void OEMInitDebugSerial(void)
{
volatile UART1reg   *s2440UART1        = (UART1reg *)UART1_BASE;
    volatile IOPreg     *s2440IOP        = (IOPreg *)IOP_BASE;

#if NODEBUG                // add by lyc 2007/1/12
        return;
#endif   
        // UART1 (TXD1 & RXD1) used for debug serial.
        //

        // Configure port H for UART.
        //440IOP->rGPHCON &= ~((3 << 8) | (3 << 10));        // Configure GPH2 and GHP3 for UART1 Tx and Rx, respectively.
        s2440IOP->rGPHCON |=  ((2 << 8) | (2 << 10));        //
        s2440IOP->rGPHUP  |=   (1 << 4) | (1 << 5);                // Disable pull-up on TXD1 and RXD1.

        // Configure UART.
        //
        s2440UART1->rUFCON  = 0x0;                // Disable the FIFO (TODO: do we need to enable the FIFO?)
        s2440UART1->rUMCON  = 0x0;                // Disable AFC.
        s2440UART1->rULCON  = 0x3;                // Normal mode, N81.
        s2440UART1->rUCON   = 0x245;        // Rx pulse interrupt, Tx level interrupt, Rx error status interrupt enabled.
        s2440UART1->rUBRDIV = ( (int)(S2440PCLK/16.0/UART1BaudRate + 0.5) -1 );                // Set up baudrate (38400).

}
刚刚发现volatile UART1reg   *s2440UART1        = (UART1reg *)UART1_BASE;中的“UART1_BASE”应为“UART0_BASE”,但我改为“UART0_BASE”重新编译后既然没有办法进入桌面。现在更加郁闷了。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
为什么将“#define NODEBUG 0 ”定义为0呢?
那是因为“OEMInitDebugSerial”函数中有
#if NODEBUG // add by lyc 2007/1/12
return;
#endif   
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
在“s2440.h”文件中有下面的定义,
#define UART0_BASE      0xB1000000 // 0x50000000
#define UART1_BASE      0xB1004000
#define UART2_BASE      0xB1008000

将volatile UART1reg  *s2440UART1 = (UART1reg *)UART1_BASE;中的“UART1_BASE”改为“UART0_BASE”应该可以才对,但郁闷的是修改后进入不了桌面。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 
UART0_BASE和UART1_BASE的值各是多少?
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

14
 
你尝试把UART1_BASE的值改为0x50004000~~然后用回UART1_BASE
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

15
 
呵呵,原来还有几个地方的volatile UART1reg  *s2440UART1 = (UART1reg *)UART1_BASE;中的“UART1_BASE”需要改为“UART0_BASE”。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

16
 
问题已经解决,谢谢各位的关注及回复。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

17
 
我现在遇到的问题和你的一样,但我的代码里面却都是volatile UART10reg  *s2440UART0……
我的mini2440+winCE,在板子启动时,屏幕出现欢迎界面时串口能打印debug信息,但进入桌面后就不打印了,有的正在打印的函数名,只打印了一半就停了,不知道怎么回事。
在代码里表现就是:对于smdk2440\drivers\,只有serial\目录下的文件里的debug信息能打印出来,别的目录里的就打印不出来。
我甚至把NKDbgPrintfW的原型都加到某一个文件里然后用它,还是不行。
请高手指教!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表