도와주세요!!
글 수 15,339
2008.12.23 09:12:23 (*.89.242.205)
6719
카메라 모듈을 구동하면서 LCD에 영상을 출력합니다.
동사에 영상 데이터를 압축해서 파일로 저장하는데
카메라 모듈이 구동되는 중에 파일을 write하면 아래와 같은 에러 메세지와 함께 커널이 죽어 버립니다.
이런 경우 디버깅을 어떻게 해야하나요?
커널 버전은 2.6.21입니다.
크로스 컴파일은 4.3.1-eabi-armv6 입니다.
현재 테스트는 NFS 환경 및 램디스크에서 해봤습니다.
저장 매체는 NFS 서버와 SD메모리에 해봤는데
NFS 환경이든 램디스크 환경이든 에러는 동일합니다.
데이터 저장을 NFS 서버에 할 경우에 좀더 빈도수가 적게 나타나더군요.
디버깅을 해봐야하는데 어디에서 부터 어떻게 할지 난감하군요.
Unable to handle kernel paging request at virtual address 89898888
pgd = c7ae4000
[89898888] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in: jpeg codec preview
CPU: 0
PC is at __block_prepare_write+0x2c8/0x554
LR is at cont_prepare_write+0x21c/0x2f0
pc : [<c00bc6d0>] lr : [<c00bcbd4>] Not tainted
sp : c7b0bc20 ip : 00000fe5 fp : c7b0bc84
r10: 00000fe5 r9 : 00001000 r8 : 00000200
r7 : 00000200 r6 : 00000fe5 r5 : c0480fe0 r4 : 00000200
r3 : 00000a2d r2 : 00000400 r1 : 89898888 r0 : 00000001
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C5387F
Table: 57AE4008 DAC: 00000015
Process camtest (pid: 848, stack limit = 0xc7b0a250)
Stack: (0xc7b0bc20 to 0xc7b0c000)
bc20: 00000fe5 c0510080 00000400 00002559 c7100c88 c7b0bc4c c7b0a000 fffffe00
bc40: fffff400 00000de5 c007b298 c7b0bc9c c7b0bcb4 89898888 c0510124 c00e2f9c
bc60: 00000000 00000fe5 c0480fe0 000004ac c0480fe0 00000fe5 c7b0bcf4 c7b0bc88
bc80: c00bcbd4 c00bc414 c00e2f9c c029e688 0000000e c0532128 00000000 00000000
bca0: 000001ff 00000000 000001ff c00e2f9c 00001000 00000fe5 c0510124 c0510080
bcc0: 00000200 c7b0a000 c00bc01c 000004ab 00001000 0000001b c0480fe0 00000000
bce0: 00000000 00000fe5 c7b0bd0c c7b0bcf8 c00e328c c00bc9c4 c0510058 00000000
bd00: c7b0bdac c7b0bd10 c007c9f0 c00e3264 00000001 c7b0be80 00001000 c05353c0
bd20: c0510124 c02a46c4 c0510080 0001f450 c7b0a000 c7b0bf10 c036cbe0 00000000
bd40: 00000000 245bdc80 c7b0bd90 c037db10 c037db00 00000000 c7b0bd8c c7b0bd68
bd60: c005cce0 c005cc20 0000008a 245bdc80 c005465c c0510080 00000000 004abfe5
bd80: c7b0bdac 004b17d2 00000000 004abfe5 00000000 000057ed 00000000 000057ed
bda0: c7b0be34 c7b0bdb0 c007d478 c007c7b0 004abfe5 00000000 c7b0bed0 000057ed
bdc0: 00000000 c00720a0 c7b0bde4 c7b0bed0 c7b0bf10 c7b0be80 c029f3a4 c0072048
bde0: c7b0bf04 c05353c0 c0510124 00000001 22222222 22222222 c029eb0c c05100ec
be00: c7b0be80 00000001 c0510080 c05100ec c7b0be80 00000001 c0510080 c7b0bf10
be20: 00000000 c05353c0 c7b0be74 c7b0be38 c007d548 c007d030 00000000 00000000
be40: 004abfe5 c0510124 c7b0be64 004abfe5 00000000 c0534660 c7b0be80 c05353c0
be60: c7b0bf10 c7b0bf70 c7b0bf44 c7b0be78 c009a158 c007d4d0 004abfe5 00000000
be80: c7b64680 c051011c 00000000 00000001 ffffffff c05353c0 00000000 00000000
bea0: 00000000 00000000 c0534660 c00a85e4 00000000 00000000 00000000 c0534660
bec0: c006d110 c7b0bec4 c7b0bec4 c05353c0 004abfe5 00000000 c7b0befc c7b0bee8
bee0: c00a864c c009666c c00a9038 000057ed c7b0bf64 c7b0bf00 c00a980c c00a85e4
bf00: 00000000 00000006 c7b6469c 00000018 0001f450 000057ed beec940c c05353c0
bf20: 0001f450 c7b0bf70 000057ed 000057ed c7b0a000 00000000 c7b0bf6c c7b0bf48
bf40: c009ab24 c009a0ac 00000006 c003adc8 004abfe5 00000000 c05353c0 0001f450
bf60: c7b0bfa4 c7b0bf70 c009ac78 c009aa7c 004abfe5 00000000 c7b0bfa4 00000000
bf80: c00a5be0 00000000 0000008a 00000001 00000004 c003adc8 00000000 c7b0bfa8
bfa0: c003ac20 c009ac40 00000000 0000008a 00000006 0001f450 000057ed 40041000
bfc0: 00000000 0000008a 00000001 00000004 00000004 0001f434 beec945c 00029008
bfe0: 00000005 beec9438 000147c0 40033c9c 40000010 00000006 08030034 053b0b3a
Backtrace:
[<c00bc408>] (__block_prepare_write+0x0/0x554) from [<c00bcbd4>] (cont_prepare_)
[<c00bc9b8>] (cont_prepare_write+0x0/0x2f0) from [<c00e328c>] (fat_prepare_writ)
[<c00e3258>] (fat_prepare_write+0x0/0x40) from [<c007c9f0>] (generic_file_buffe)
[<c007c7a4>] (generic_file_buffered_write+0x0/0x600) from [<c007d478>] (__gener)
[<c007d024>] (__generic_file_aio_write_nolock+0x0/0x4a0) from [<c007d548>] (gen)
[<c007d4c4>] (generic_file_aio_write+0x0/0xfc) from [<c009a158>] (do_sync_write)
[<c009a0a0>] (do_sync_write+0x0/0x108) from [<c009ab24>] (vfs_write+0xb4/0x144)
[<c009aa70>] (vfs_write+0x0/0x144) from [<c009ac78>] (sys_write+0x44/0x70)
r7 = 0001F450 r6 = C05353C0 r5 = 00000000 r4 = 004ABFE5
[<c009ac34>] (sys_write+0x0/0x70) from [<c003ac20>] (ret_fast_syscall+0x0/0x2c)
r8 = C003ADC8 r7 = 00000004 r6 = 00000001 r5 = 0000008A
r4 = 00000000
Code: e5953000 e51b1030 e3130008 0a000009 (e5913000)
동사에 영상 데이터를 압축해서 파일로 저장하는데
카메라 모듈이 구동되는 중에 파일을 write하면 아래와 같은 에러 메세지와 함께 커널이 죽어 버립니다.
이런 경우 디버깅을 어떻게 해야하나요?
커널 버전은 2.6.21입니다.
크로스 컴파일은 4.3.1-eabi-armv6 입니다.
현재 테스트는 NFS 환경 및 램디스크에서 해봤습니다.
저장 매체는 NFS 서버와 SD메모리에 해봤는데
NFS 환경이든 램디스크 환경이든 에러는 동일합니다.
데이터 저장을 NFS 서버에 할 경우에 좀더 빈도수가 적게 나타나더군요.
디버깅을 해봐야하는데 어디에서 부터 어떻게 할지 난감하군요.
Unable to handle kernel paging request at virtual address 89898888
pgd = c7ae4000
[89898888] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in: jpeg codec preview
CPU: 0
PC is at __block_prepare_write+0x2c8/0x554
LR is at cont_prepare_write+0x21c/0x2f0
pc : [<c00bc6d0>] lr : [<c00bcbd4>] Not tainted
sp : c7b0bc20 ip : 00000fe5 fp : c7b0bc84
r10: 00000fe5 r9 : 00001000 r8 : 00000200
r7 : 00000200 r6 : 00000fe5 r5 : c0480fe0 r4 : 00000200
r3 : 00000a2d r2 : 00000400 r1 : 89898888 r0 : 00000001
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C5387F
Table: 57AE4008 DAC: 00000015
Process camtest (pid: 848, stack limit = 0xc7b0a250)
Stack: (0xc7b0bc20 to 0xc7b0c000)
bc20: 00000fe5 c0510080 00000400 00002559 c7100c88 c7b0bc4c c7b0a000 fffffe00
bc40: fffff400 00000de5 c007b298 c7b0bc9c c7b0bcb4 89898888 c0510124 c00e2f9c
bc60: 00000000 00000fe5 c0480fe0 000004ac c0480fe0 00000fe5 c7b0bcf4 c7b0bc88
bc80: c00bcbd4 c00bc414 c00e2f9c c029e688 0000000e c0532128 00000000 00000000
bca0: 000001ff 00000000 000001ff c00e2f9c 00001000 00000fe5 c0510124 c0510080
bcc0: 00000200 c7b0a000 c00bc01c 000004ab 00001000 0000001b c0480fe0 00000000
bce0: 00000000 00000fe5 c7b0bd0c c7b0bcf8 c00e328c c00bc9c4 c0510058 00000000
bd00: c7b0bdac c7b0bd10 c007c9f0 c00e3264 00000001 c7b0be80 00001000 c05353c0
bd20: c0510124 c02a46c4 c0510080 0001f450 c7b0a000 c7b0bf10 c036cbe0 00000000
bd40: 00000000 245bdc80 c7b0bd90 c037db10 c037db00 00000000 c7b0bd8c c7b0bd68
bd60: c005cce0 c005cc20 0000008a 245bdc80 c005465c c0510080 00000000 004abfe5
bd80: c7b0bdac 004b17d2 00000000 004abfe5 00000000 000057ed 00000000 000057ed
bda0: c7b0be34 c7b0bdb0 c007d478 c007c7b0 004abfe5 00000000 c7b0bed0 000057ed
bdc0: 00000000 c00720a0 c7b0bde4 c7b0bed0 c7b0bf10 c7b0be80 c029f3a4 c0072048
bde0: c7b0bf04 c05353c0 c0510124 00000001 22222222 22222222 c029eb0c c05100ec
be00: c7b0be80 00000001 c0510080 c05100ec c7b0be80 00000001 c0510080 c7b0bf10
be20: 00000000 c05353c0 c7b0be74 c7b0be38 c007d548 c007d030 00000000 00000000
be40: 004abfe5 c0510124 c7b0be64 004abfe5 00000000 c0534660 c7b0be80 c05353c0
be60: c7b0bf10 c7b0bf70 c7b0bf44 c7b0be78 c009a158 c007d4d0 004abfe5 00000000
be80: c7b64680 c051011c 00000000 00000001 ffffffff c05353c0 00000000 00000000
bea0: 00000000 00000000 c0534660 c00a85e4 00000000 00000000 00000000 c0534660
bec0: c006d110 c7b0bec4 c7b0bec4 c05353c0 004abfe5 00000000 c7b0befc c7b0bee8
bee0: c00a864c c009666c c00a9038 000057ed c7b0bf64 c7b0bf00 c00a980c c00a85e4
bf00: 00000000 00000006 c7b6469c 00000018 0001f450 000057ed beec940c c05353c0
bf20: 0001f450 c7b0bf70 000057ed 000057ed c7b0a000 00000000 c7b0bf6c c7b0bf48
bf40: c009ab24 c009a0ac 00000006 c003adc8 004abfe5 00000000 c05353c0 0001f450
bf60: c7b0bfa4 c7b0bf70 c009ac78 c009aa7c 004abfe5 00000000 c7b0bfa4 00000000
bf80: c00a5be0 00000000 0000008a 00000001 00000004 c003adc8 00000000 c7b0bfa8
bfa0: c003ac20 c009ac40 00000000 0000008a 00000006 0001f450 000057ed 40041000
bfc0: 00000000 0000008a 00000001 00000004 00000004 0001f434 beec945c 00029008
bfe0: 00000005 beec9438 000147c0 40033c9c 40000010 00000006 08030034 053b0b3a
Backtrace:
[<c00bc408>] (__block_prepare_write+0x0/0x554) from [<c00bcbd4>] (cont_prepare_)
[<c00bc9b8>] (cont_prepare_write+0x0/0x2f0) from [<c00e328c>] (fat_prepare_writ)
[<c00e3258>] (fat_prepare_write+0x0/0x40) from [<c007c9f0>] (generic_file_buffe)
[<c007c7a4>] (generic_file_buffered_write+0x0/0x600) from [<c007d478>] (__gener)
[<c007d024>] (__generic_file_aio_write_nolock+0x0/0x4a0) from [<c007d548>] (gen)
[<c007d4c4>] (generic_file_aio_write+0x0/0xfc) from [<c009a158>] (do_sync_write)
[<c009a0a0>] (do_sync_write+0x0/0x108) from [<c009ab24>] (vfs_write+0xb4/0x144)
[<c009aa70>] (vfs_write+0x0/0x144) from [<c009ac78>] (sys_write+0x44/0x70)
r7 = 0001F450 r6 = C05353C0 r5 = 00000000 r4 = 004ABFE5
[<c009ac34>] (sys_write+0x0/0x70) from [<c003ac20>] (ret_fast_syscall+0x0/0x2c)
r8 = C003ADC8 r7 = 00000004 r6 = 00000001 r5 = 0000008A
r4 = 00000000
Code: e5953000 e51b1030 e3130008 0a000009 (e5913000)
이런 메세지 처음 접하는 참 어렵네요.