专家:
我们使用appro V2.0的代码,在新板子上烧写kernel、rootfs后。程序启动时总是发生阻塞现象。
具体现象如下:在红色字体位置,程序就不走了。
Starting kernel …
Linux version 2.6.18_pro500-davinci_IPNC_DM368_2.0.0 (root@localhost.localdomain
) (gcc セ 4.2.0 20070126 (prerelease) (MontaVista 4.2.0-3.0.0.0702771 2007-03-
10)) #1 PREEMPT Thu Sep 30 20:26:23 CST 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: DaVinci DM368 IPNC
Memory policy: ECC disabled, Data cache writeback
DaVinci DM0365 variant 0x8
PLL0: fixedrate: 24000000, commonrate: 170000000, vpssrate: 340000000
PLL0: vencrate_sd: 75555555, ddrrate: 340000000 mmcsdrate: 48571428
PLL1: armrate: 432000000, voicerate: 20571428, vencrate_hd: 27000000
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
Built 1 zonelists. Total pages: 12288
Kernel command line: mem=48M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0x8
2000000,16M ip=192.168.1.101:192.168.1.100:192.168.1.1:255.255.255.0:::off eth=0
0:0C:0C:A0:06:be
PID hash table entries: 256 (order: 8, 1024 bytes)
Clock event device timer0_0 configured with caps set: 07
Console: colour dummy device 80×30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 48MB = 48MB total
Memory: 28288KB available (3121K code, 647K data, 180K init)
Security Framework v1.0.0 initialized
Capability LSM initialized
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs…it isn't (bad gzip magic numbers); looks like a
n initrd
Freeing initrd memory: 16384K
NET: Registered protocol family 16
DaVinci: 104 gpio irqs
MUX: initialized GPIO20
MUX: initialized I2C_SCL
Generic PHY: Registered new driver
ch0 default output "COMPOSITE", mode "NTSC"
VPBE Encoder Initialized
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
***davinci_spi_board_init()!<6>
***davinci_spi_board_init_End(0)!<5>VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
squashfs: version 3.1 (2006/08/19) Phillip Lougher
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
yaffs Sep 30 2010 20:23:19 Installing.
SGI XFS with no debug enabled
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered (default)
LTT : ltt-facilities init
LTT : ltt-facility-core init in kernel
DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfbc20000 (irq = 40) is a 16550A
serial8250.0: ttyS1 at MMIO map 0x1d06000 mem 0xfbd06000 (irq = 41) is a 16550A
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
Linux video capture interface: v2.00
Trying to register davinci display video device.
layer=c2e04a00,layer->video_dev=c2e04b60
Trying to register davinci display video device.
layer=c2e04800,layer->video_dev=c2e04960
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
i2c /dev entries driver
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bi
t)
Creating 7 MTD partitions on "nand_davinci.0":
0x00000000-0x00300000 : "bootloader"
0x00300000-0x00500000 : "params"
0x00500000-0x00700000 : "kernel"
0x00700000-0x02700000 : "filesystem"
0x02700000-0x02900000 : "data1"
0x02900000-0x02d00000 : "Calibration"
0x02d00000-0x08000000 : "data2"
nand_davinci nand_davinci.0: hardware revision: 2.3
MUX: initialized SPI0_SCLK
MUX: initialized SPI0_SDO)
dm_spi.0: davinci SPI Controller driver at 0xc3866000 (irq = 42) use_dma=0
rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: proc
rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: dev (254:0)
rtc_davinci_dm365 rtc_davinci_dm365.0: rtc core: registered rtc_davinci_dm365 as
rtc0
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50
2006 UTC).
ASoC version 0.13.1
CQ0093 Voice Codec 0.1
asoc: cq93vc <-> davinci-vcif mapping ok
ALSA device list:
#0: On-chip voice codec (cq93vc)
IPv4 over IPv4 tunneling driver
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
rtc_davinci_dm365 rtc_davinci_dm365.0: setting the system clock to 2000-01-01 01
:02:07 (946688527)
Time: timer0_1 clocksource has been installed.
Clock event device timer0_0 configured with caps set: 08
Switched to high resolution mode on CPU 0
IP-Config: No network devices available.
RAMDISK: cramfs filesystem found at block 0
RAMDISK: Loading 12836KiB [1 disk] into ram disk… done.
VFS: Mounted root (cramfs filesystem) readonly.
Freeing init memory: 180K
INIT: version 2.86 booting
0
mkdir: Cannot create directory `/dev/.test': Read-only file system
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events…done.
Waiting for /dev to be fully populated…done.
0
CSL: Module install successful, device major num = 253
CSL: Module version 0.10.00, built on Sep 30 2010 22:13:54
I2C: Module install successful, device major num = 252
DMA: Module install successful, device major num = 251
DRV: Module install successful
DRV: Module built on Sep 30 2010 22:13:55
DRV: EDMACC.QUEPRI = 00000777
DRV: SYSTEM.MSTPRI0 = 00550011
DRV: SYSTEM.MSTPRI1 = 00000444
DRV: ISP.BCR = 00000002
DRV: SYSTEM.MISC = 00000391
CMEMK module: built on Oct 4 2010 at 16:10:12
Reference Linux version 2.6.18
File /home/user/workdir2/dvsdk/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti
/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc4000000 of size 0x4e00000
CMEM Range Overlaps Kernel Physical – allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
cmemk initialized
EDMAK module: built on Oct 4 2010 at 16:10:15
Reference Linux version 2.6.18
File /home/user/workdir2/dvsdk/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti
/sdo/linuxutils/edma/src/module/edmak.c
IRQK module: built on Oct 4 2010 at 16:10:16
Reference Linux version 2.6.18
File /home/user/workdir2/dvsdk/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti
/sdo/linuxutils/irq/src/module/irqk.c
irqk initialized
Creat queue id:0
queue id:0
————————————阻塞—————————————
FileMngThread created
Creat queue id:32769
queue id:32769
AlramThread created
Share memory init success
queue id:32769
Creat queue id:65538
queue id:65538
IPNC_DM368_2.0.0 (root@localhost.localdomain) (gcc セ 4.2.0 2
queue id:65538
Starting mounting local filesystems:
CPU is DM368
DEMOCFG Value : 0
Videocodecmode : 0
Videocodecres : 1
./av_server.out FD OSD DM368 AEWB APPRO2A AUDIO 8000 D1 H264 5000000 VBR AUTO ME
NUOFF &
Check_device_version : DEVICE VER = 1 !!
CPU CurrentStatus is = 1
mount none on /dev/shm type tmpfs (rw,size=5M)
none on /var/run type tmpfs (rw)
none on /tmp type tmpfs (rw,sync)
AVSERVER UI: Initializing.
DRV_SyncRst: module = 47, domain = 0, state = 0
DRV_SyncRst: module = 47, domain = 0, state = 3
Setting up networking …rm: unable to remove `/etc/network/run': Read-only file
system
ApproDrvInit: 7
Creat queue id:98307
queue id:98307
CLK Hz,
ARM Hz = 432000000
DDR Hz = 340000000
VPSS Hz = 340000000
IMCOP Hz = 340000000
DRV LDC: GetConfig 0003 0x0
[OSA_FILE ] Reading file [/mnt/nand/IMG_Paramset.bin] … ERROR
IMAGE TUNE: Paramset File is not available….. Setting DEFAULT parameter
Starting hotplug subsystem:
CONFIGURING AVSERVER FOR DM368 …..
############OPEN###########
Sensor Mode Info,
Width = 1736
Height = 1140
fps = 30
Bin Enable = 1
Sensor Frame Timing Info,
fps = 30
t_frame (ns) = 33333334.000000
t_row (ns) = 27458.333984
t_pclk (ns) = 10.416667
W = 1736
H = 1140
SW = 1125
SD = 0
HB = 450
VB = 73
HBmin = 450
VBmin = 9
f_pclk = 96000000
shutterOverhead (ns) = 4437.500000
col_size = 1736
row_size = 1140
col_bin = 0
row_bin = 0
col_start = 232
row_start = 276
pll_M = 16
pll_N = 1
pll_DIV = 1
############reset###########
pci
pci [success]
############SPI OPEN###########
spi mode: 16
bits per word: 8
max speed: 12000000 Hz (12000 KHz)
############SET REG###########
############OPEN END###########
================> 1023, 0, 1607
APPRO Setting Applied
DavinciDisplay DavinciDisplay.1: Before finishing with S_FMT:
layer.pix_fmt.bytesperline = 640,
layer.pix_fmt.width = 640,
layer.pix_fmt.height = 480,
layer.pix_fmt.sizeimage =460800
queue id:98307
DavinciDisplay DavinciDisplay.1: pixfmt->width = 640,
layer->layer_info.config.line_length= 640
FR : 0 users registered from exsiting face album
IPNC_DM368_2.0.0 (root@localhost.localdomain) (gcc セ 4.2.0 2
IPNC AUTO_IRIS = 1 (0:Manual,1:Auto)#####################
APPRO 2A Created
XXXXX IAE_CMD_SET_CONFIG XXXXX
usb
222 Aew_Cal_LoadParam: dfc check sum success
(nand offset: 0x00500010, size: 0x0000181c, checksum: 0x00010261)
################DFC ret=0##################
DFC number:255
GBCE in EVAL MODE
queue id:65538
***************************************
APPROPHO AEW TRIAL VERSION(V2.01) !!!
APPROPHO AEW DATE LINE 2011/6
***************************************
XXXXX DRV_imgsSetAgain() Error(0)
Enable APPRO_DBG Function @@@@@@@@@@@@@@@@@@@@@
ND Init
ND:Day
~~~ fn: Aew_Cal_LoadAutoIrisParam, start ~~~
~~~ fn: Aew_Cal_LoadAutoIrisParam, nand_addr 0x220000 ~~~
!!! FAIL, Checksum error, Aew_Cal_LoadAutoIrisParam !!!
!!!!!! FAIL, autoiris default value 0 !!!!!!
—>Chip init PASS
Mode:0,F:2(MAX:7),Q:-1
usb [success]
isapnp
isapnp [success]
ide
ide [success]
input
input [success]
scsi
scsi [success]
done.
Starting portmap daemon: portmap.
Starting internet superserver: inetd.
io scheduler deadline registered
io scheduler cfq registered
TI DaVinci EMAC: kernel boot params Ethernet address: 00:0C:0C:A0:06:be
sbulla: unknown partition table
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
loop: loaded (max 8 devices)
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
CSLIP: code copyright 1989 Regents of the University of California
netconsole: not configured, aborting
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
Davinci EMAC MII Bus: probed
MAC address is 00:0C:0C:A0:06:be
TI DaVinci EMAC Linux version updated 4.0
Simple mixer control 'PGA',0
Capabilities: cvolume
Capture channels: Mono
Limits: Capture 0 – 3
Mono: Capture 2 [67%]
Simple mixer control 'Mono DAC',0
Capabilities: pvolume pvoludavinci-mmc davinci-mmc.0: Supporting 4-bit mode
me-joined
Pladavinci-mmc davinci-mmc.0: Using DMA mode
yback channels: Mono
Limits: Playback 0 – 63
Mono: Playback 47 [75%]
killall: wis-streamer: no process killed
SystemInit success
Schedule manager init success
usbcore: registered new driver usbfs
usbcore: registered new driver hub
musb_hdrc: version 6.0, cppi-dma, peripheral, debug=0
musb_hdrc musb_hdrc: No DMA interrupt line
musb_hdrc: USB Peripheral mode controller at c38fa000 using DMA, IRQ 12
Loading iSCSI transport class v1.1-646.<5>iscsi: registered transport (tcp)
sbulla: unknown partition table
mkdosfs 3.0.6 (04 Oct 2009)
unable to get drive geometry, using default 255/63
/dev/sbulla has 255 heads and 63 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 1024 sectors;
file system has 2 12-bit FATs and 4 sectors per cluster.
FAT size is 1 sector, and provides 247 clusters.
Root directory contains 512 slots.
Volume ID is 21c99f97, no volume label.
queue id:0
umount: /mnt/mmc: not mounted
killall: dhcpcd: no process killed
rm: cannot remove `/var/run/dhcpcd-eth0.pid': No such file or directory
net_search_gateway:eth0, 1A8C0, 0, 1
dns=192.168.1.1
net_search_gateway:eth0, 1A8C0, 0, 1
net_search_gateway:eth0, 0, FE01A8C0, 3
dns=192.168.1.1
g_file_storage gadget: File-backed Storage Gadget, version: 28 November 2005
ERROR: Module g_g_file_storage gadget: Number of LUNs=1
file_storage doeg_file_storage gadget-lun0: ro=0, file: /dev/sbulla
s not exist in /proc/modules
system_server/542[CPU#0]: BUG in local_bh_enable at kernel/softirq.c:196
ApproDrvInit: 6
queue id:98307
Initializing…
…done initializing
Play this stream using the URL:
rtsp://192.168.1.168:8554/PSIA/Streaming/channels/1?videoCodecType=MPEG4
ApproDrvInit: 8
queue id:98307
Initializing…
…done initializing
Play this stream using the URL:
rtsp://192.168.1.168:8555/PSIA/Streaming/channels/0?videoCodecType=MJPEG
ApproDrvInit: 9
queue id:98307
Initializing…
ApproDrvInit: 10
queue id:98307
Initializing…
…done initializing
Play this stream using the URL:
rtsp://192.168.1.168:8557/PSIA/Streaming/channels/2?videoCodecType=H.264
ApproDrvInit: 2
queue id:98307
Initializing…
…done initializing
Play this stream using the URL:
rtsp://192.168.1.168/PSIA/Streaming/channels/1?videoCodecType=MPEG4
…done initializing
Play this stream using the URL:
rtsp://192.168.1.168:8556/PSIA/Streaming/channels/2?videoCodecType=H.264
ApproDrvInit: 3
queue id:98307
queue id:0
queue id:32769
queue id:0
[01/Jan/2000:01:02:22 +0000] boa: server version Boa/0.94.13
[01/Jan/2000:01:02:22 +0000] boa: server built Oct 1 2010 at 23:24:26.
[01/Jan/2000:01:02:22 +0000] boa: starting server pid=811, port 80
GreenTi liu:
我查到程序在执行到sys_server\src\main.c 红色字体位置时阻塞,
程序既没有执行printf("FileMngThread created\n");,也没有printf("******************IN FileMngThread*****************\n");
int main(int argc,char *argv[]) {int qid, mid,bThreadStatus = 0;struct shmid_ds buf;pthread_t tFileMngThread,tAlarmThread;/* System message queue initial */qid = Msg_Init(SYS_MSG_KEY);SetSysMsgId(qid);if(pthread_create(&tFileMngThread, NULL, FileMngThread, NULL)){ IsSysQuit = 1;ERR("FileMngThread create fail\n");}printf("FileMngThread created\n");......}void *FileMngThread(void *arg){int ret;printf("******************IN FileMngThread*****************\n");ret = SetupEnv();if(ret == 0){/* Processing all messages that was sent to file manager */ret = FileMsgThread();CleanupFileEnv(NO_ERROR);}return (void *)ret;}这是我的启动参数:setenv bootcmd 'nand read 0x82000000 0x700000 0xD00000;nboot 0x80700000 0 0x500000;bootm 0x80700000'setenv bootargs 'mem=48M console=ttyS1,115200n8 root=/dev/ram0 rw initrd=0x82000000,16M ip=dhcp eth=$(ethaddr)'整个flash有4个坏块:0x07f80000、0x07c0000、0x07fc0000、0x07fe0000 ,不知道有没有影响
这是可能是什么原因?软件或硬件原因???谢谢大家