帮忙找下汇编中红色标志(2734)对应的C语言是哪句????
C语言源码
static void camera_callback(u32 mask, void *dev)
{
struct mxc_v4l_frame *done_frame;
struct mxc_v4l_frame *ready_frame;
cam_data *cam = (cam_data *) dev;
if (cam == NULL)
return;
if (mask == 1) {
printk("oh no,mask is 1 set cam->overflow = 1 ######");
cam->overflow = 1;
}
if (list_empty(&cam->working_q)) {
if (empty_wq_cnt == 0) {
printk(KERN_ERR "camera_callback: working queue empty %d\n",empty_wq_cnt);
}
empty_wq_cnt++;
if (list_empty(&cam->ready_q)) {
cam->skip_frame++;
} else {
ready_frame =
list_entry(cam->ready_q.next, struct mxc_v4l_frame,
queue);
list_del(cam->ready_q.next);
list_add_tail(&ready_frame->queue, &cam->working_q);
cam->enc_update_eba(ready_frame->paddress,
&cam->ping_pong_csi);
}
return;
}
done_frame =
list_entry(cam->working_q.next, struct mxc_v4l_frame, queue);
if (done_frame->buffer.flags & V4L2_BUF_FLAG_QUEUED) {
done_frame->buffer.flags |= V4L2_BUF_FLAG_DONE;
done_frame->buffer.flags &= ~V4L2_BUF_FLAG_QUEUED;
if (list_empty(&cam->ready_q)) {
cam->skip_frame++;
} else {
ready_frame =
list_entry(cam->ready_q.next, struct mxc_v4l_frame,
queue);
list_del(cam->ready_q.next);
list_add_tail(&ready_frame->queue, &cam->working_q);
cam->enc_update_eba(ready_frame->paddress,
&cam->ping_pong_csi);
}
/* Added to the done queue */
list_del(cam->working_q.next);
list_add_tail(&done_frame->queue, &cam->done_q);
/* Wake up the queue */
cam->enc_counter++;
wake_up_interruptible(&cam->enc_queue);
} else {
printk(KERN_ERR "camera_callback :buffer not queued\n");
}
}
放汇编
000025cc <camera_callback>:
25cc:e1a0c00d movip, sp
25d0:e92dd870 stmdbsp!, {r4, r5, r6, fp, ip, lr, pc}
25d4:e24cb004 subfp, ip, #4; 0x4
25d8:e2515000 subsr5, r1, #0; 0x0
25dc:e1a04000 movr4, r0
25e0:089da870 ldmeqiasp, {r4, r5, r6, fp, sp, pc}
25e4:e3500001 cmpr0, #1; 0x1
25e8:1a000002 bne25f8 <camera_callback+0x2c>
25ec:e59f0174 ldrr0, [pc, #372]; 2768 <.text+0x2768>
25f0:ebfffffe bl0 <printk>
25f4:e585416c strr4, [r5, #364]
25f8:e5952030 ldrr2, [r5, #48]
25fc:e2854030 addr4, r5, #48; 0x30
2600:e1520004 cmpr2, r4
2604:1a00001f bne2688 <camera_callback+0xbc>
2608:e59f615c ldrr6, [pc, #348]; 276c <.text+0x276c>
260c:e5961000 ldrr1, [r6]
2610:e3510000 cmpr1, #0; 0x0
2614:1a000001 bne2620 <camera_callback+0x54>
2618:e59f0150 ldrr0, [pc, #336]; 2770 <.text+0x2770>
261c:ebfffffe bl0 <printk>
2620:e5963000 ldrr3, [r6]
2624:e2852020 addr2, r5, #32; 0x20
2628:e2833001 addr3, r3, #1; 0x1
262c:e5863000 strr3, [r6]
2630:e595c020 ldrip, [r5, #32]
2634:e15c0002 cmpip, r2
2638:05953168 ldreqr3, [r5, #360]
263c:02833001 addeqr3, r3, #1; 0x1
2640:05853168 streqr3, [r5, #360]
2644:089da870 ldmeqiasp, {r4, r5, r6, fp, sp, pc}
2648:e59c1004 ldrr1, [ip, #4]
264c:e59c2000 ldrr2, [ip]
2650:e59f311c ldrr3, [pc, #284]; 2774 <.text+0x2774>
2654:e5821004 strr1, [r2, #4]
2658:e58c3004 strr3, [ip, #4]
265c:e5943004 ldrr3, [r4, #4]
2660:e5812000 strr2, [r1]
2664:e584c004 strip, [r4, #4]
2668:e58c4000 strr4, [ip]
266c:e583c000 strip, [r3]
2670:e51c0058 ldrr0, [ip, #-88]
2674:e58c3004 strr3, [ip, #4]
2678:e2851038 addr1, r5, #56; 0x38
267c:e1a0e00f movlr, pc
2680:e595f47c ldrpc, [r5, #1148]
2684:e89da870 ldmiasp, {r4, r5, r6, fp, sp, pc}
2688:e5123038 ldrr3, [r2, #-56]
268c:e2426058 subr6, r2, #88; 0x58
2690:e3130002 tstr3, #2; 0x2
2694:0a000030 beq275c <camera_callback+0x190>
2698:e3833004 orrr3, r3, #4; 0x4
269c:e3c33002 bicr3, r3, #2; 0x2
26a0:e5023038 strr3, [r2, #-56]
26a4:e595c020 ldrip, [r5, #32]
26a8:e2853020 addr3, r5, #32; 0x20
26ac:e15c0003 cmpip, r3
26b0:05953168 ldreqr3, [r5, #360]
26b4:02833001 addeqr3, r3, #1; 0x1
26b8:05853168 streqr3, [r5, #360]
26bc:0a00000e beq26fc <camera_callback+0x130>
26c0:e59c1004 ldrr1, [ip, #4]
26c4:e59c2000 ldrr2, [ip]
26c8:e59f30a4 ldrr3, [pc, #164]; 2774 <.text+0x2774>
26cc:e5821004 strr1, [r2, #4]
26d0:e58c3004 strr3, [ip, #4]
26d4:e5943004 ldrr3, [r4, #4]
26d8:e5812000 strr2, [r1]
26dc:e584c004 strip, [r4, #4]
26e0:e58c4000 strr4, [ip]
26e4:e583c000 strip, [r3]
26e8:e51c0058 ldrr0, [ip, #-88]
26ec:e58c3004 strr3, [ip, #4]
26f0:e2851038 addr1, r5, #56; 0x38
26f4:e1a0e00f movlr, pc
26f8:e595f47c ldrpc, [r5, #1148]
26fc:e5951030 ldrr1, [r5, #48]
2700:e59f306c ldrr3, [pc, #108]; 2774 <.text+0x2774>
2704:e8915000 ldmiar1, {ip, lr}
2708:e2850028 addr0, r5, #40; 0x28
270c:e58ce004 strlr, [ip, #4]
2710:e5813004 strr3, [r1, #4]
2714:e5904004 ldrr4, [r0, #4]
2718:e59f3058 ldrr3, [pc, #88]; 2778 <.text+0x2778>
271c:e2862058 addr2, r6, #88; 0x58
2720:e58ec000 strip, [lr]
2724:e5802004 strr2, [r0, #4]
2728:e5813000 strr3, [r1]
272c:e5824004 strr4, [r2, #4]
2730:e5860058 strr0, [r6, #88]
2734:e5842000 strr2, [r4]
2738:e5953178 ldrr3, [r5, #376]
273c:e3a01001 movr1, #1; 0x1
2740:e0833001 addr3, r3, r1
2744:e5853178 strr3, [r5, #376]
2748:e2850e17 addr0, r5, #368; 0x170
274c:e1a02001 movr2, r1
2750:e3a03000 movr3, #0; 0x0
2754:ebfffffe bl0 <__wake_up>
2758:e89da870 ldmiasp, {r4, r5, r6, fp, sp, pc}
275c:e59f0018 ldrr0, [pc, #24]; 277c <.text+0x277c>
2760:ebfffffe bl0 <printk>
2764:e89da870 ldmiasp, {r4, r5, r6, fp, sp, pc}
2768:000000a0 andeqr0, r0, r0, lsr #1
276c:0000015c andeqr0, r0, ip, asr r1
2770:000000d0 ldreqdr0, [r0], -r0
2774:00200200 eoreqr0, r0, r0, lsl #4
2778:00100100 andeqsr0, r0, r0, lsl #2
277c:000000fc streqdr0, [r0], -ip
帮忙找下汇编语言中红色标志的(2734:e5842000 strr2,)对应的C语言是哪句????谢谢了....
[解决办法]
有源码还不简单,查查你的编译器命令,建立带源数据的asm文件就行了,或者lst也可以
[解决办法]
对这类汇编不熟悉。不过,一般是一条 c 语句对应于一组汇编指令;单个的汇编指令,一般只是 c 语句的一部分。应该是 list_add_tail(&done_frame->queue, &cam->done_q); 的最后一指令?再下面的应该是属于 cam->enc_counter++; 语句的了。