当前位置: 技术问答>linux和unix
2440 camera 中断问题 IRQ_S3C2440_CAM_P
来源: 互联网 发布时间:2016-04-28
本文导语: 小弟写了个camera驱动,用到了中断,具体如下: 在/include/asm/arch-s3c2410/irqs.h 中有定义 #define S3C2410_CPUIRQ_OFFSET (16) #define S3C2410_IRQ(x) ((x) + S3C2410_CPUIRQ_OFFSET) #define IRQ_S3C2440_CAM_P S3C2410_IRQ(66) 于是我就这样申请中...
小弟写了个camera驱动,用到了中断,具体如下:
在/include/asm/arch-s3c2410/irqs.h 中有定义
#define S3C2410_CPUIRQ_OFFSET (16)
#define S3C2410_IRQ(x) ((x) + S3C2410_CPUIRQ_OFFSET)
#define IRQ_S3C2440_CAM_P S3C2410_IRQ(66)
于是我就这样申请中断:
request_irq(82,Cam_Isr,SA_INTERRUPT,"DEMO",NULL); //camera_p的中断号码
但是运行应运程序时候出现如下错误:
Pid: 402, comm: camera
CPU: 0
PC is at __do_irq+0x34/0x88
LR is at do_edge_IRQ+0xb0/0x12c
pc : [] lr : [] Not tainted
sp : c3af3d90 ip : c3af3db4 fp : c3af3db0
r10: c02b55c8 r9 : c3af2000 r8 : c3af3e04
r7 : 00000035 r6 : 00000000 r5 : 00000035 r4 : c3e1dd40
r3 : 40000013 r2 : c3af3e04 r1 : c3e1dd40 r0 : 00000035
Flags: nZcv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000717F Table: 303A0000 DAC: 00000015
[] (report_bad_irq+0x0/0xcc) from [] (do_level_IRQ+0x80/0xbc)
r5 = 00000052 r4 = C02B6670
[] (do_level_IRQ+0x0/0xbc) from [] (s3c_irq_demux_cam+0x64/0x74)
r6 = 00000001 r5 = C3AF3D48 r4 = 00000002
[] (s3c_irq_demux_cam+0x0/0x74) from [] (asm_do_IRQ+0x50/0x138)
r5 = C3AF3D7C r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (__do_irq+0x0/0x88) from [] (do_edge_IRQ+0xb0/0x12c)
r8 = C3AF3E04 r7 = C3AF3E04 r6 = C3E1DD40 r5 = 00000035
r4 = C02B608C
[] (do_edge_IRQ+0x0/0x12c) from [] (asm_do_IRQ+0x50/0x138)
r7 = 0000000A r6 = 00000000 r5 = C3AF3E38 r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (__do_softirq+0x0/0xd0) from [] (asm_do_IRQ+0x120/0x138)
r8 = C3AF3EA0 r7 = BF004114 r6 = 00000001 r5 = C3AF3ED4
r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (Test_CamPreview+0x0/0x130 [camera_drv]) from [] (Camera_Test+0x60/0x8c [camera_drv])
r8 = C0024004 r7 = 00000000 r6 = 00000001 r5 = FFFFFFE7
r4 = BF0040EC
[] (Camera_Test+0x0/0x8c [camera_drv]) from [] (DEMO_ioctl+0x3c/0xc0 [camera_drv])
r4 = C3E32800
[] (DEMO_ioctl+0x0/0xc0 [camera_drv]) from [] (do_ioctl+0x74/0x84)
r4 = C3E32800
[] (do_ioctl+0x0/0x84) from [] (vfs_ioctl+0x2a4/0x2c4)
r6 = 00000003 r5 = 00000002 r4 = C3E32800
[] (vfs_ioctl+0x0/0x2c4) from [] (sys_ioctl+0x40/0x5c)
r7 = 00000036 r6 = 00000001 r5 = FFFFFFF7 r4 = C3E32800
[] (sys_ioctl+0x0/0x5c) from [] (ret_fast_syscall+0x0/0x2c)
r6 = 00008700 r5 = 4001BD80 r4 = FFFD8FF0
handlers:
[] (Cam_Isr+0x0/0xf4 [camera_drv])
irq82: nobody cared
已经困了好久了,请大家帮忙看看!急!!!
在/include/asm/arch-s3c2410/irqs.h 中有定义
#define S3C2410_CPUIRQ_OFFSET (16)
#define S3C2410_IRQ(x) ((x) + S3C2410_CPUIRQ_OFFSET)
#define IRQ_S3C2440_CAM_P S3C2410_IRQ(66)
于是我就这样申请中断:
request_irq(82,Cam_Isr,SA_INTERRUPT,"DEMO",NULL); //camera_p的中断号码
但是运行应运程序时候出现如下错误:
Pid: 402, comm: camera
CPU: 0
PC is at __do_irq+0x34/0x88
LR is at do_edge_IRQ+0xb0/0x12c
pc : [] lr : [] Not tainted
sp : c3af3d90 ip : c3af3db4 fp : c3af3db0
r10: c02b55c8 r9 : c3af2000 r8 : c3af3e04
r7 : 00000035 r6 : 00000000 r5 : 00000035 r4 : c3e1dd40
r3 : 40000013 r2 : c3af3e04 r1 : c3e1dd40 r0 : 00000035
Flags: nZcv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000717F Table: 303A0000 DAC: 00000015
[] (report_bad_irq+0x0/0xcc) from [] (do_level_IRQ+0x80/0xbc)
r5 = 00000052 r4 = C02B6670
[] (do_level_IRQ+0x0/0xbc) from [] (s3c_irq_demux_cam+0x64/0x74)
r6 = 00000001 r5 = C3AF3D48 r4 = 00000002
[] (s3c_irq_demux_cam+0x0/0x74) from [] (asm_do_IRQ+0x50/0x138)
r5 = C3AF3D7C r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (__do_irq+0x0/0x88) from [] (do_edge_IRQ+0xb0/0x12c)
r8 = C3AF3E04 r7 = C3AF3E04 r6 = C3E1DD40 r5 = 00000035
r4 = C02B608C
[] (do_edge_IRQ+0x0/0x12c) from [] (asm_do_IRQ+0x50/0x138)
r7 = 0000000A r6 = 00000000 r5 = C3AF3E38 r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (__do_softirq+0x0/0xd0) from [] (asm_do_IRQ+0x120/0x138)
r8 = C3AF3EA0 r7 = BF004114 r6 = 00000001 r5 = C3AF3ED4
r4 = FFFFFFFF
[] (asm_do_IRQ+0x0/0x138) from [] (__irq_svc+0x20/0x140)
[] (Test_CamPreview+0x0/0x130 [camera_drv]) from [] (Camera_Test+0x60/0x8c [camera_drv])
r8 = C0024004 r7 = 00000000 r6 = 00000001 r5 = FFFFFFE7
r4 = BF0040EC
[] (Camera_Test+0x0/0x8c [camera_drv]) from [] (DEMO_ioctl+0x3c/0xc0 [camera_drv])
r4 = C3E32800
[] (DEMO_ioctl+0x0/0xc0 [camera_drv]) from [] (do_ioctl+0x74/0x84)
r4 = C3E32800
[] (do_ioctl+0x0/0x84) from [] (vfs_ioctl+0x2a4/0x2c4)
r6 = 00000003 r5 = 00000002 r4 = C3E32800
[] (vfs_ioctl+0x0/0x2c4) from [] (sys_ioctl+0x40/0x5c)
r7 = 00000036 r6 = 00000001 r5 = FFFFFFF7 r4 = C3E32800
[] (sys_ioctl+0x0/0x5c) from [] (ret_fast_syscall+0x0/0x2c)
r6 = 00008700 r5 = 4001BD80 r4 = FFFD8FF0
handlers:
[] (Cam_Isr+0x0/0xf4 [camera_drv])
irq82: nobody cared
已经困了好久了,请大家帮忙看看!急!!!
|