読者です 読者をやめる 読者になる 読者になる

カーネルパニック時のメッセージからエラーを推測する。

CPU: 0
PC is at camera_callback+0x8c/0x118
LR is at 0xc7fa1038
pc : [<c019a23c>]    lr : [<c7fa1038>]    Not tainted
sp : c0339e9c  ip : c7fa1038  fp : c0339ec4
r10: c7fa1000  r9 : c7fa1044  r8 : c0339f54
r7 : c0339f54  r6 : c03e0930  r5 : 00000000  r4 : c7fa1028
r3 : 00200200  r2 : c7fa1028  r1 : c7fa1040  r0 : c7fa109c
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: E5387F  Table: 8472C000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc0338248)
Stack: (0xc0339e9c to 0xc033a000)

camera_callbackが問題らしい。
objdumpで該当行を見る。うーむ。ストア命令だな。
Cとアセンブラの混合表示ができれば一番早いんだけど。
なんかできない。
基本てきにはリストの操作部分なんだけど。

[<c019a1b0>] (camera_callback+0x0/0x118) from [<c019c880>] (prp_enc_callback+0x1c/0x24)
[<c019c864>] (prp_enc_callback+0x0/0x24) from [<c020a300>] (ipu_irq_handler+0x58/0x230)
[<c020a2a8>] (ipu_irq_handler+0x0/0x230) from [<c006a16c>] (handle_IRQ_event+0x44/0x7c)
 r7 = 0000002A  r6 = 00000000  r5 = 00000000  r4 = C058BE80
[<c006a128>] (handle_IRQ_event+0x0/0x7c) from [<c006bbd4>] (handle_level_irq+0xf0/0x17c)
 r8 = C0339F54  r7 = C058BE80  r6 = 0000002A  r5 = C033AA80
 r4 = C0338000 
[<c006bae4>] (handle_level_irq+0x0/0x17c) from [<c0027580>] (asm_do_IRQ+0x40/0x50)
 r8 = 00000001  r7 = 00000002  r6 = 00000001  r5 = 0000FFFF
 r4 = C033AA80 
[<c0027540>] (asm_do_IRQ+0x0/0x50) from [<c00269b8>] (__irq_svc+0x38/0x74)
 r4 = FFFFFFFF 
[<c0028058>] (default_idle+0x0/0x48) from [<c0027d80>] (cpu_idle+0x30/0x64)
[<c0027d50>] (cpu_idle+0x0/0x64) from [<c00262dc>] (rest_init+0x48/0x50)
 r5 = C03CAF9C  r4 = C0338000 
[<c0026294>] (rest_init+0x0/0x50) from [<c0008890>] (start_kernel+0x1f4/0x254)
 r4 = C03D513C 
[<c000869c>] (start_kernel+0x0/0x254) from [<80008030>] (0x80008030)
Code: e5820000 e58ec004 e58ce000 e58c3004 (e583c000) 
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

この部分を見るとエンコーダの設定が間違ってる気がしないでもないな。