カーネルパニック時のメッセージからエラーを推測する。
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!
この部分を見るとエンコーダの設定が間違ってる気がしないでもないな。