📄 xllp_camera.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345
TTL F:\wm520\PLATFORM\intel_dbpxa27x\Public\CSP\ARM\INTEL\PXA27X\XLLP\SOURCE\.\xllp_camera.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.rdata|, DATA, READONLY
|?outpins@?2??XllpCameraInit@@9@9| DCD 0x1 ; `XllpCameraInit'::`3'::outpins
DCD 0x17
|CAMERA_DMA_DEVICE| DCD 0x44
DCD 0x45
DCD 0x46
|?inpins@?2??XllpCameraInit@@9@9| DCD 0xb ; `XllpCameraInit'::`3'::inpins
DCD 0x1b
DCD 0x72
DCD 0x74
DCD 0x73
DCD 0x5a
DCD 0x5b
DCD 0x11
DCD 0xc
DCD 0x1a
DCD 0x19
DCD 0x18
|?altfunc@?2??XllpCameraInit@@9@9| DCD 0xc ; `XllpCameraInit'::`3'::altfunc
DCD 0x3
DCD 0x1
DCD 0x1
DCD 0x2
DCD 0x3
DCD 0x3
DCD 0x2
DCD 0x2
DCD 0x1
DCD 0x2
DCD 0x1
DCD 0x1
|?altpins@?2??XllpCameraInit@@9@9| DCD 0xc ; `XllpCameraInit'::`3'::altpins
DCD 0x1b
DCD 0x72
DCD 0x74
DCD 0x73
DCD 0x5a
DCD 0x5b
DCD 0x11
DCD 0xc
DCD 0x17
DCD 0x1a
DCD 0x19
DCD 0x18
|?lowpins@?2??XllpCameraInit@@9@9| DCD 0xc ; `XllpCameraInit'::`3'::lowpins
DCD 0x1b
DCD 0x72
DCD 0x74
DCD 0x73
DCD 0x5a
DCD 0x5b
DCD 0x11
DCD 0xc
DCD 0x17
DCD 0x1a
DCD 0x18
DCD 0x19
|FORMAT_MAPPINGS| DCD 0x0
DCD 0x1
DCD 0x2
DCD 0x5
DCD 0x6
DCD 0x7
DCD 0xe
DCD 0x8
DCD 0xf
DCD 0x9
DCD 0xa
DCD 0xb
DCD 0xc
DCD 0xd
DCD 0xff
DCD 0x3
DCD 0x4
DCD 0xff
DCD 0xff
IMPORT |OS_DmaCfgChannelDescTransfer|
IMPORT |OS_DmaStartTransfer|
; File f:\wm520\platform\intel_dbpxa27x\public\csp\arm\intel\pxa27x\xllp\source\xllp_camera.c
00000 AREA |.text| { |PrvStartDMATransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PrvStartDMATransfer|, PDATA, SELECTION=5, ASSOC=|.text| { |PrvStartDMATransfer| } ; comdat associative
|$T2238| DCD |$L2237|
DCD 0x40002e02
; Function compile flags: /Ogsy
00000 AREA |.text| { |PrvStartDMATransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |PrvStartDMATransfer| PROC
; 78 : {
00000 |$L2237|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M2235|
00008 e1a04000 mov r4, r0
; 79 : XLLP_DMAC_DESCRIPTOR_T *des_virtual, *des_physical;
; 80 :
; 81 : /*
; 82 : NKDbgPrintfW(TEXT("capture_width %d\r\n"),camera_context->capture_width);
; 83 : NKDbgPrintfW(TEXT("capture_height %d\r\n"),camera_context->capture_height);
; 84 : NKDbgPrintfW(TEXT("Video_capture_width %d\r\n"),camera_context->Video_capture_width);
; 85 : NKDbgPrintfW(TEXT("Video_capture_height %d\r\n"),camera_context->Video_capture_height);
; 86 : NKDbgPrintfW(TEXT("dma_channels %d %d %d\r\n"),camera_context->dma_channels[0], camera_context->dma_channels[1], camera_context->dma_channels[2]);
; 87 : NKDbgPrintfW(TEXT("fifo0_transfer_size %d\r\n"),camera_context->fifo0_transfer_size);
; 88 : NKDbgPrintfW(TEXT("fifo1_transfer_size %d\r\n"),camera_context->fifo1_transfer_size);
; 89 : NKDbgPrintfW(TEXT("fifo2_transfer_size %d\r\n"),camera_context->fifo2_transfer_size);
; 90 : */
; 91 :
; 92 : des_virtual = (P_XLLP_DMAC_DESCRIPTOR_T)NULL;
; 93 : des_physical = (P_XLLP_DMAC_DESCRIPTOR_T)camera_context->fifo0_descriptors_physical;
; 94 : /*
; 95 : NKDbgPrintfW(TEXT("camera_context->fifo0_descriptors_physical 0x%x\r\n"),(DWORD)camera_context->fifo0_descriptors_physical);
; 96 : NKDbgPrintfW(TEXT("des_physical 0x%x\r\n"),(DWORD)des_physical);
; 97 : */
; 98 : OS_DmaCfgChannelDescTransfer( des_virtual,
; 99 : des_physical,
; 100 : camera_context->dma_channels[0],
; 101 : CAMERA_DMA_DEVICE[0],
; 102 : XLLP_DMAC_ALIGNMENT_OFF
; 103 : );
0000c e5942068 ldr r2, [r4, #0x68]
00010 e594108c ldr r1, [r4, #0x8C]
00014 e3a05000 mov r5, #0
00018 e3a03044 mov r3, #0x44
0001c e3a00000 mov r0, #0
00020 e58d5000 str r5, [sp]
00024 eb000000 bl OS_DmaCfgChannelDescTransfer
; 104 :
; 105 : if ( camera_context->fifo1_transfer_size ) {
00028 e59430a4 ldr r3, [r4, #0xA4]
0002c e3530000 cmp r3, #0
; 106 : des_virtual = (P_XLLP_DMAC_DESCRIPTOR_T)NULL;
; 107 : des_physical = (P_XLLP_DMAC_DESCRIPTOR_T)camera_context->fifo1_descriptors_physical;
; 108 : OS_DmaCfgChannelDescTransfer( des_virtual,
; 109 : des_physical,
; 110 : camera_context->dma_channels[1],
; 111 : CAMERA_DMA_DEVICE[1],
; 112 : XLLP_DMAC_ALIGNMENT_OFF
; 113 : );
00030 1594206c ldrne r2, [r4, #0x6C]
00034 15941094 ldrne r1, [r4, #0x94]
00038 13a03045 movne r3, #0x45
0003c 13a00000 movne r0, #0
00040 158d5000 strne r5, [sp]
00044 1b000000 blne OS_DmaCfgChannelDescTransfer
; 114 : }
; 115 :
; 116 : if ( camera_context->fifo2_transfer_size ) {
00048 e59430a8 ldr r3, [r4, #0xA8]
0004c e3530000 cmp r3, #0
; 117 : des_virtual = (P_XLLP_DMAC_DESCRIPTOR_T)NULL;
; 118 : des_physical = (P_XLLP_DMAC_DESCRIPTOR_T)camera_context->fifo2_descriptors_physical;
; 119 : OS_DmaCfgChannelDescTransfer( des_virtual,
; 120 : des_physical,
; 121 : camera_context->dma_channels[2],
; 122 : CAMERA_DMA_DEVICE[2],
; 123 : XLLP_DMAC_ALIGNMENT_OFF
; 124 : );
00050 15942070 ldrne r2, [r4, #0x70]
00054 1594109c ldrne r1, [r4, #0x9C]
00058 13a03046 movne r3, #0x46
0005c 13a00000 movne r0, #0
00060 158d5000 strne r5, [sp]
00064 1b000000 blne OS_DmaCfgChannelDescTransfer
; 125 : }
; 126 :
; 127 : if ( camera_context->fifo0_transfer_size && camera_context->fifo1_transfer_size && camera_context->fifo2_transfer_size )
00068 e59430a0 ldr r3, [r4, #0xA0]
0006c e3530000 cmp r3, #0
00070 0a00000b beq |$L2072|
00074 e59430a4 ldr r3, [r4, #0xA4]
00078 e3530000 cmp r3, #0
0007c 0a000008 beq |$L2072|
00080 e59430a8 ldr r3, [r4, #0xA8]
00084 e3530000 cmp r3, #0
00088 0a000005 beq |$L2072|
; 128 : {
; 129 : OS_DmaStartTransfer( camera_context->dma_channels[0] );
0008c e5940068 ldr r0, [r4, #0x68]
00090 eb000000 bl OS_DmaStartTransfer
; 130 : OS_DmaStartTransfer( camera_context->dma_channels[1] );
00094 e594006c ldr r0, [r4, #0x6C]
00098 eb000000 bl OS_DmaStartTransfer
; 131 : OS_DmaStartTransfer( camera_context->dma_channels[2] );
0009c e5940070 ldr r0, [r4, #0x70]
; 132 : } else
000a0 ea000000 b |$L2234|
000a4 |$L2072|
; 133 : {
; 134 : OS_DmaStartTransfer( camera_context->dma_channels[0] );
000a4 e5940068 ldr r0, [r4, #0x68]
000a8 |$L2234|
000a8 eb000000 bl OS_DmaStartTransfer
; 135 : }
; 136 :
; 137 : }
000ac e28dd004 add sp, sp, #4
000b0 e8bd4030 ldmia sp!, {r4, r5, lr}
000b4 e12fff1e bx lr
000b8 |$M2236|
ENDP ; |PrvStartDMATransfer|
IMPORT |OS_DmaStopTransfer|
00000 AREA |.text| { |PrvStopDMATransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PrvStopDMATransfer|, PDATA, SELECTION=5, ASSOC=|.text| { |PrvStopDMATransfer| } ; comdat associative
|$T2246| DCD |$L2245|
DCD 0x40000d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |PrvStopDMATransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |PrvStopDMATransfer| PROC
; 140 : {
00000 |$L2245|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M2243|
00004 e1a04000 mov r4, r0
; 141 : // stop channel 0
; 142 : OS_DmaStopTransfer( camera_context->dma_channels[0] );
00008 e5940068 ldr r0, [r4, #0x68]
0000c eb000000 bl OS_DmaStopTransfer
; 143 :
; 144 : // stop channel 1 and 2
; 145 : if ( camera_context->capture_output_format == XLLP_CAMERA_IMAGE_FORMAT_YCBCR422_PLANAR)
00010 e5943020 ldr r3, [r4, #0x20]
00014 e3530010 cmp r3, #0x10
00018 1a000003 bne |$L2077|
; 146 : {
; 147 : OS_DmaStopTransfer( camera_context->dma_channels[1] );
0001c e594006c ldr r0, [r4, #0x6C]
00020 eb000000 bl OS_DmaStopTransfer
; 148 : OS_DmaStopTransfer( camera_context->dma_channels[2] );
00024 e5940070 ldr r0, [r4, #0x70]
00028 eb000000 bl OS_DmaStopTransfer
0002c |$L2077|
; 149 : }
; 150 : }
0002c e8bd4010 ldmia sp!, {r4, lr}
00030 e12fff1e bx lr
00034 |$M2244|
ENDP ; |PrvStopDMATransfer|
IMPORT |XllpCIResetFIFO|
IMPORT |XllpCIClearInterruptStatus|
00000 AREA |.text| { |PrvStartCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$PrvStartCapture|, PDATA, SELECTION=5, ASSOC=|.text| { |PrvStartCapture| } ; comdat associative
|$T2267| DCD |$L2266|
DCD 0x40003a02
; Function compile flags: /Ogsy
00000 AREA |.text| { |PrvStartCapture| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |PrvStartCapture| PROC
; 153 : {
00000 |$L2266|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M2264|
00008 e1a05002 mov r5, r2
0000c e1a04000 mov r4, r0
; 154 : XLLP_STATUS_T status;
; 155 :
; 156 : // clear ci fifo
; 157 : XllpCIResetFIFO(camera_context->ci_reg_base);
00010 e594005c ldr r0, [r4, #0x5C]
00014 eb000000 bl XllpCIResetFIFO
; 158 : XllpCIClearInterruptStatus(camera_context->ci_reg_base, 0xFFFFFFFF);
00018 e594005c ldr r0, [r4, #0x5C]
0001c e3e01000 mvn r1, #0
00020 eb000000 bl XllpCIClearInterruptStatus
; 159 :
; 160 : // start dma
; 161 : PrvStartDMATransfer(camera_context, block_id);
00024 e5942068 ldr r2, [r4, #0x68]
00028 e594108c ldr r1, [r4, #0x8C]
0002c e3a06000 mov r6, #0
00030 e3a03044 mov r3, #0x44
00034 e3a00000 mov r0, #0
00038 e58d6000 str r6, [sp]
0003c eb000000 bl OS_DmaCfgChannelDescTransfer
00040 e59430a4 ldr r3, [r4, #0xA4]
00044 e3530000 cmp r3, #0
00048 1594206c ldrne r2, [r4, #0x6C]
0004c 15941094 ldrne r1, [r4, #0x94]
00050 13a03045 movne r3, #0x45
00054 13a00000 movne r0, #0
00058 158d6000 strne r6, [sp]
0005c 1b000000 blne OS_DmaCfgChannelDescTransfer
00060 e59430a8 ldr r3, [r4, #0xA8]
00064 e3530000 cmp r3, #0
00068 15942070 ldrne r2, [r4, #0x70]
0006c 1594109c ldrne r1, [r4, #0x9C]
00070 13a03046 movne r3, #0x46
00074 13a00000 movne r0, #0
00078 158d6000 strne r6, [sp]
0007c 1b000000 blne OS_DmaCfgChannelDescTransfer
00080 e59430a0 ldr r3, [r4, #0xA0]
00084 e3530000 cmp r3, #0
00088 0a00000b beq |$L2256|
0008c e59430a4 ldr r3, [r4, #0xA4]
00090 e3530000 cmp r3, #0
00094 0a000008 beq |$L2256|
00098 e59430a8 ldr r3, [r4, #0xA8]
0009c e3530000 cmp r3, #0
000a0 0a000005 beq |$L2256|
000a4 e5940068 ldr r0, [r4, #0x68]
000a8 eb000000 bl OS_DmaStartTransfer
000ac e594006c ldr r0, [r4, #0x6C]
000b0 eb000000 bl OS_DmaStartTransfer
000b4 e5940070 ldr r0, [r4, #0x70]
000b8 ea000000 b |$L2263|
000bc |$L2256|
000bc e5940068 ldr r0, [r4, #0x68]
000c0 |$L2263|
000c0 eb000000 bl OS_DmaStartTransfer
; 162 :
; 163 : // start capture
; 164 : status = camera_context->camera_functions->start_capture(camera_context, frames);
; 165 : return status;
000c4 e5943064 ldr r3, [r4, #0x64]
000c8 e1a01005 mov r1, r5
000cc e1a00004 mov r0, r4
000d0 e593300c ldr r3, [r3, #0xC]
000d4 e1a0e00f mov lr, pc
000d8 e12fff13 bx r3
; 166 : }
000dc e28dd004 add sp, sp, #4
000e0 e8bd4070 ldmia sp!, {r4 - r6, lr}
000e4 e12fff1e bx lr
000e8 |$M2265|
ENDP ; |PrvStartCapture|
EXPORT |XllpCameraDeInit|
IMPORT |OS_DmaFreeChannel|
IMPORT |XllpCIDeInit|
00000 AREA |.text| { |XllpCameraDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCameraDeInit|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCameraDeInit| } ; comdat associative
|$T2280| DCD |$L2279|
DCD 0x40001d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCameraDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -