您的位置:首页 > 其它

串口回显问题分析及解决

2008-03-03 10:10 204 查看
问题:

在uClinux底下使用串口来做DTU,在DTU进程没有起来之前串口有回显

分析:

1.查驱动发现串口的硬件自动回显在初始化的时候并没有被打开

2.每次DTU程序在关闭了之后串口还是有自动回显,且在DTU程序中并没有将串口的参数设置为自动回显的功能

3.将串口的内核打印级别设为7同时将串口的调试信息打开,发现如下日志:

.......

Freeing unused kernel memory: 28k freed (0x1f6000 - 0x1fc000)

mcfrs_open ttyS0, count = 0

starting up ttyS0 (irq 73)...

mcfrs_open ttyS0 successful...

BINFMT_FLAT: Loading file: /etc/config/fw.sh

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2

mcfrs_open ttyS0, count = 1

mcfrs_open ttyS0 successful...

mcfrs_close ttyS0, count = 2
注意到红色的部分发现串口在某个地方被打开了,且肯定是在应用层被打开,并且在调用脚本fw.sh之前。

4.查看rc脚本发现,在调用fw.sh之前调用的程序主要有
klogd

syslogd

initsy

# ps

PID TTY Uid Size State Command

1 adm 0 S init

2 adm 0 S [keventd]

3 adm 0 R [ksoftirqd_CPU0]

4 adm 0 R [kswapd]

5 adm 0 S [bdflush]

6 adm 0 S [kupdated]

17 adm 0 S klogd

37 adm 0 S syslogd

70 adm 0 S /bin/syslogd -n

71 adm 0 S /bin/inetd

72 adm 0 S /bin/boa -c /etc/httpd

73 adm 0 S /bin/telnetd

74 ttyp0 adm 0 S console 192.168.2.73

84 ttyp0 adm 0 S sh -c sh

85 ttyp0 adm 0 S sh

88 ttyp0 adm 0 R ps
解决办法:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐