LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 729|回复: 1

uClinux内核启动以后打印字符变乱

[复制链接]
发表于 2005-7-4 14:20:24 | 显示全部楼层 |阅读模式
我用uClinux-dist-20040408做了简单修改,config,编译后(没有改动程序),下在到目标板卡(S3C4510)上,运行时出现打印错误
(主要是在"main.c"->init()中,运行到run_init_process("/sbin/init");
        run_init_process("/etc/init");
        run_init_process("/bin/init");
        run_init_process("/bin/sh");就会出现问题,之前使用printk()打印函数没有问题,在这文件执行过程中和以后串口输出都有问题,就是字符可以打印出来,但是只能打印其中几个字符,还没有规律。)
使用的是uClibc库,谁能帮忙分析一下问题可能处在哪啊?打印信息如下:
Linux version 2.4.24-uc0 (root@localhost) (gcc version 2.95.3 20010315 (re
lease)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP
and shared lib patches from http://www.snapgear.com/)) #191 五 7月 1 10:24:45 C
ST 2005
Processor: Samsung S3C4510B revision 6
Architecture: SNDS100
On node 0 totalpages: 1024
zone(0): 0 pages.
zone(1): 1024 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/rom0
Calibrating delay loop... 6.93 BogoMIPS
Memory: 4MB = 4MB total
Memory: 3324KB available (475K code, 141K data, 32K init)
Dentry cache hash table entries: 512 (order: 0, 4096 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 1024 (order: 0, 4096 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Starting kswapd
Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en
abled
ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
ttyS01 at 0x3ffe000 (irq = 7) is a S3C4510B
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: 74360-8EF5F [VIRTUAL 74360-8EF5F] (RO)
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 32K
S c
C g
Cpg0
/ ne
C c
mfd: Ne
Ct/r
md: Ne
Cag
/g: Rsm
Cvp
/p: Rym
Cvg
/g: Rym
Can
/n: Rsm
Cvk
/k: Rym
Cay
/y: Rym
C/d
Wo
  _
|
|_
|\/
|  |//
|
|



For:
hu/



C 1
ime
Cdn5o
rde
C&
dne



sed
[]
Eeg



Sl 1)
/
 楼主| 发表于 2005-7-12 14:52:34 | 显示全部楼层
已解决问题,主要是缓冲区的问题,当open("dev/console")以后,每次串口中断只能打印一个字符,而我设定的缓冲区有128byte,所以总能打印每行第一个字符,然后间隔16-17个字符后打印第二个.....修改uartconfig[]将其缓冲区大小变为1,错误就没有了,但是为什么open("dev/console")以后只能一个一个字符去打印,不清楚,不会只是因为它是字符设备吧,希望高手解释一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表