ARM问题

请教comquter大侠,下面两个输出是什么含义?
第一个:
Shutdown[0,0] S/C/F=10/1/5 C/D=fe006950/fe057170 state(c0)= now lock
QNX Version 6.3.2 Release 2006/03/16-14:15:43EST
[0]PID-TID=1-4? P/T FL=00019001/05820000 “proc/boot/procnto”
[0]ASPACE PID=102419 PF=00000000 “bin/ifconfig”
armle context[fc45ef34]:
0000: ffffffff fc48cfc0 fc404990 00000000 000000fe fc4380f0 fc5a7ee4 000000ff
0020: fc5a7ec0 000000fe 000000ff fc48ce1c fc48cd54 fc48cdf0 fe04be64 fe01beb4
0040: 2000001f
instruction[fe01beb4]:
04 40 80 e5 08 30 90 e5 03 40 84 e0 00 30 a0 e1 00 00 93 e5 00 00 50 e3 f8 ff
stack[fc48cdf0]:
0000: 00000000 000fe000 00000000 fc5a7ec0 00000001 000fe000 000fffff 000fefff
0020: fc48ce48 fc48ce20 fe01bfd0 fe01bdf8 fe01bef4 fc48ce28 00000000 00000000
0040: fc454f98 00000000 fc5a8290 fc48cec0 fc48ce4c fe025f74 fe01bf40 01081382
0060: fc468c50 fc48ce9c fc48ce64 fc48ced4 000fe000 00000000 000fefff 00000000


第二个:
Shutdown[0,0] S/C/F=11/1/11 C/D=fe006950/fe057170 state(c0)= now lock
QNX Version 6.3.2 Release 2006/03/16-14:15:43EST
[0]PID-TID=1-6? P/T FL=00019001/05020000 “proc/boot/procnto”
[0]ASPACE PID=28690 PF=00401010 “devb-eide”
armle context[fc45e904]:
0000: fc4429e0 00000001 fc4429e0 00000000 00000926 fc583e2c fc4429e0 0070e000
0020: 00000000 fc59d290 fc448020 fc583da8 fc583dac fc583d9c fe022538 fe01c9e0
0040: 8000001f
instruction[fe01c9e0]:
14 00 93 e5 02 00 60 e0 40 02 a0 e1 00 30 93 e5 00 06 83 e0 00 a8 1b e9 10 00
stack[fc583d9c]:
0000: fc583dd4 fc583dac fe022538 fe01c9c4 fc583db8 00000926 fc43cb60 00000000
0020: 0000070e 0000070e fc448020 fc583e14 fc583dd8 fe01c258 fe022520 00000001
0040: fc583e2c 00000001 fc43cb60 00000006 fc59d290 fc583e2c fc5a20f0 0070e000
0060: 00000000 fc583eac fc5a1c60 fc583e90 fc583e18 fe022788 fe01c0ac 0070e000

这是kernel dump的输出.在QNX的文档里 (OS Technotes), 有专门的描述怎样理解这个输出.

http://www.qnx.com/developers/docs/6.3.2/neutrino/technotes/proc_dump.html

看了文档,S/C/F=10/1/5 是bus error/Invalid address alignment/Memory access的问题。
还不太明白是ifconfig程序有问题还是procnto出的问题?这两个程序都是QNX提供的,不是自己编写的。与此相关的的部分是网络驱动和procnto的callout是我编写的。从提示信息能推断出可能是哪个部分出的问题吗?

callout有问题的话很容易引起procnto shutdown,callout代码不多,应该好查.

callout实在看不出有什么问题。后来修改了devb-eide的运行参数,增加了 blk cache=0命令,减少内存的使用后,系统稳定很多,反复进行文件拷贝,还没有发现死机情况。请教comquter和xtang,可能是什么原因造成系统不稳定呢?

板子上有多少内存?在ARM上,一个PROCESS所用的内存不能超过32M,io-blk缺省缓寸是15%,若内存很多的话会有问题.

去掉bootloader所用的RAM,有62M RAM。62x15%=9.3M,应该没有问题吧。
用pidin mem显示站用的内存(eide没有设置 blk cache)。

pidin -p 36878 mem

pid tid name prio STATE code data stack
36878 1 devb-eide 22r SIGWAITINFO 76K 9M 8192(132K)*
36878 2 devb-eide 21r RECEIVE 76K 9M 4096(12K)
36878 3 devb-eide 22r RECEIVE 76K 9M 16K(20K)
36878 4 devb-eide 22r RECEIVE 76K 9M 16K(20K)
36878 5 devb-eide 22r RECEIVE 76K 9M 16K(20K)
36878 6 devb-eide 22r RECEIVE 76K 9M 16K(20K)
libc.so.2 @ 1000000 408K 12K
libcam.so.2 @ 106a000 56K 8192
io-blk.so @ 107a000 128K 8192
cam-disk.so @ 109c000 16K 4096
fs-qnx4.so @ 10a1000 52K 4096
devb-eide @ fe000 ( 0) 8192
devb-eide @ 1069000 ( 0) 4096

内存没有问题,原因不得其解.
你这devb-eide的优先级怎么这么高呢?

ksh的优先级高,所以命令行启动的devb-eide的优先级也高了。
高优先级的驱动会有问题吗?我降低一下试试。

只是好奇,不会造成崩溃.