📄 xllp_ci.cod
字号:
00000 |$L35826|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M35824|
00004 e1a04001 mov r4, r1
00008 e1a02000 mov r2, r0
; 374 : P_XLLP_CLKMGR_T pclk;
; 375 :
; 376 : // clear all CI registers
; 377 : WRITE_REG(XLLP_CICR0, 0x3FF); // disable all interrupts
0000c e3a03fff mov r3, #0xFF, 30
00010 e3833003 orr r3, r3, #3
; 378 : WRITE_REG(XLLP_CICR1, 0);
; 379 : WRITE_REG(XLLP_CICR2, 0);
; 380 : WRITE_REG(XLLP_CICR3, 0);
; 381 : WRITE_REG(XLLP_CICR4, 0);
; 382 : WRITE_REG(XLLP_CISR, ~0);
00014 e3e01000 mvn r1, #0
00018 e3a0e000 mov lr, #0
; 383 : WRITE_REG(XLLP_CIFR, 0);
; 384 : WRITE_REG(XLLP_CITOR, 0);
; 385 :
; 386 : // enable CI clock
; 387 : XllpLock(CKEN);
0001c e3a00026 mov r0, #0x26
00020 e8824008 stmia r2, {r3, lr}
00024 e582e008 str lr, [r2, #8]
00028 e582e00c str lr, [r2, #0xC]
0002c e582e010 str lr, [r2, #0x10]
00030 e282c014 add r12, r2, #0x14
00034 e88c4002 stmia r12, {r1, lr}
00038 e582e01c str lr, [r2, #0x1C]
0003c eb000000 bl XllpLock
; 388 : pclk = (P_XLLP_CLKMGR_T)clk_regs_base;
; 389 : pclk->cken |= XLLP_CLKEN_CAMERA;
00040 e5943004 ldr r3, [r4, #4]
; 390 : XllpUnlock(CKEN);
00044 e3a00026 mov r0, #0x26
00048 e3833401 orr r3, r3, #1, 8
0004c e5843004 str r3, [r4, #4]
00050 eb000000 bl XllpUnlock
; 391 : }
00054 e8bd4010 ldmia sp!, {r4, lr}
00058 e12fff1e bx lr
0005c |$M35825|
ENDP ; |XllpCIInit|
EXPORT |XllpCIDeInit|
00000 AREA |.text| { |XllpCIDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIDeInit|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIDeInit| } ; comdat associative
|$T35835| DCD |$L35834|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIDeInit| PROC
; 394 : {
00000 |$L35834|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M35832|
00004 e1a04001 mov r4, r1
; 395 : P_XLLP_CLKMGR_T pclk;
; 396 :
; 397 : // disable CI clock
; 398 : XllpLock(CKEN);
00008 e3a00026 mov r0, #0x26
0000c eb000000 bl XllpLock
; 399 : pclk = (P_XLLP_CLKMGR_T)clk_regs_base;
; 400 : pclk->cken &= ~XLLP_CLKEN_CAMERA;
00010 e5943004 ldr r3, [r4, #4]
; 401 : XllpUnlock(CKEN);
00014 e3a00026 mov r0, #0x26
00018 e3c33401 bic r3, r3, #1, 8
0001c e5843004 str r3, [r4, #4]
00020 eb000000 bl XllpUnlock
; 402 : }
00024 e8bd4010 ldmia sp!, {r4, lr}
00028 e12fff1e bx lr
0002c |$M35833|
ENDP ; |XllpCIDeInit|
EXPORT |XllpCIEnable|
00000 AREA |.text| { |XllpCIEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIEnable|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIEnable| } ; comdat associative
|$T35845| DCD |$L35844|
DCD 0x40000600
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIEnable| PROC
; 405 : {
00000 |$L35844|
00000 |$M35842|
00000 e3510000 cmp r1, #0
; 406 : unsigned int value;
; 407 :
; 408 : // write mask in cicr0
; 409 : value = READ_REG(XLLP_CICR0);
; 410 : value |= XLLP_CI_CICR0_ENB;
00004 e5903000 ldr r3, [r0]
00008 e3833201 orr r3, r3, #1, 4
; 411 : if (dma_en) {
; 412 : value |= XLLP_CI_CICR0_DMA_EN;
0000c 13833102 orrne r3, r3, #2, 2
; 413 : }
; 414 : WRITE_REG(XLLP_CICR0, value);
00010 e5803000 str r3, [r0]
; 415 : return;
; 416 : }
00014 e12fff1e bx lr
00018 |$M35843|
ENDP ; |XllpCIEnable|
EXPORT |XllpCIDisableComplete|
00000 AREA |.text| { |XllpCIDisableComplete| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIDisableComplete|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIDisableComplete| } ; comdat associative
|$T35853| DCD |$L35852|
DCD 0x40000400
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIDisableComplete| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIDisableComplete| PROC
; 419 : {
00000 |$L35852|
00000 |$M35850|
; 420 : unsigned int value;
; 421 :
; 422 : // Clear the disable control bit.
; 423 : value = READ_REG(XLLP_CICR0);
; 424 : value &= ~XLLP_CI_CICR0_DIS;
00000 e5903000 ldr r3, [r0]
00004 e3c33302 bic r3, r3, #2, 6
; 425 : WRITE_REG( XLLP_CICR0, value );
00008 e5803000 str r3, [r0]
; 426 : }
0000c e12fff1e bx lr
00010 |$M35851|
ENDP ; |XllpCIDisableComplete|
EXPORT |??_C@_1EA@FJKJMIIM@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAC?$AAR?$AA0?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF@| [ DATA ] ; `string'
EXPORT |??_C@_1DO@GKAEEGBI@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAS?$AAR?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF?$AAx@| [ DATA ] ; `string'
EXPORT |XllpCIDisable|
IMPORT |NKDbgPrintfW|
IMPORT |XllpOstDelayMilliSeconds|
00000 AREA |.text| { |XllpCIDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIDisable|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIDisable| } ; comdat associative
|$T35871| DCD |$L35870|
DCD 0x40003902
00000 AREA |.rdata| { |??_C@_1DO@GKAEEGBI@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAS?$AAR?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF?$AAx@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DO@GKAEEGBI@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAS?$AAR?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF?$AAx@| DCB "Z"
DCB 0x0, "Q", 0x0, "S", 0x0, ":", 0x0, "[", 0x0, "X", 0x0, "L"
DCB 0x0, "L", 0x0, "P", 0x0, "_", 0x0, "C", 0x0, "I", 0x0, "S"
DCB 0x0, "R", 0x0, "=", 0x0, " ", 0x0, "0", 0x0, "x", 0x0, "%"
DCB 0x0, "x", 0x0, "]", 0x0, " ", 0x0, "!", 0x0, "!", 0x0, "!"
DCB 0x0, "!", 0x0, "!", 0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EA@FJKJMIIM@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAC?$AAR?$AA0?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EA@FJKJMIIM@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAC?$AAR?$AA0?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF@| DCB "Z"
DCB 0x0, "Q", 0x0, "S", 0x0, ":", 0x0, "[", 0x0, "X", 0x0, "L"
DCB 0x0, "L", 0x0, "P", 0x0, "_", 0x0, "C", 0x0, "I", 0x0, "C"
DCB 0x0, "R", 0x0, "0", 0x0, "=", 0x0, " ", 0x0, "0", 0x0, "x"
DCB 0x0, "%", 0x0, "x", 0x0, "]", 0x0, " ", 0x0, "!", 0x0, "!"
DCB 0x0, "!", 0x0, "!", 0x0, "!", 0x0, "!", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIDisable| PROC
; 429 : {
00000 |$L35870|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M35868|
00008 e1a06003 mov r6, r3
0000c e1a07001 mov r7, r1
00010 e1a05000 mov r5, r0
; 430 : volatile unsigned int value, mask;
; 431 : int retry;
; 432 :
; 433 : // write control bit in cicr0
; 434 : value = READ_REG(XLLP_CICR0);
00014 e595e000 ldr lr, [r5]
; 435 : if(dma_dis)
00018 e59d401c ldr r4, [sp, #0x1C]
; 436 : value&=~XLLP_CI_CICR0_DMA_EN;
; 437 : if (quick) {
; 438 : value &= ~XLLP_CI_CICR0_ENB;
; 439 : mask = XLLP_CI_CISR_CQD;
; 440 : }
; 441 : else {
; 442 : value |= XLLP_CI_CICR0_DIS;
; 443 : mask = XLLP_CI_CISR_CDD;
; 444 : }
; 445 : WRITE_REG(XLLP_CICR0, value);
; 446 : value = READ_REG(XLLP_CICR0);
; 447 :
; 448 : RETAILMSG(1,(TEXT("ZQS:[XLLP_CICR0= 0x%x] !!!!!!\r\n"), value));
0001c e59f00bc ldr r0, [pc, #0xBC]
00020 e58de000 str lr, [sp]
00024 e3540000 cmp r4, #0
00028 159de000 ldrne lr, [sp]
0002c 13cee102 bicne lr, lr, #2, 2
00030 158de000 strne lr, [sp]
00034 e3520000 cmp r2, #0
00038 159d2000 ldrne r2, [sp]
0003c 13a03040 movne r3, #0x40
00040 13c22201 bicne r2, r2, #1, 4
00044 158d2000 strne r2, [sp]
00048 158d3004 strne r3, [sp, #4]
0004c 059d3000 ldreq r3, [sp]
00050 03a02020 moveq r2, #0x20
00054 03833302 orreq r3, r3, #2, 6
00058 058d3000 streq r3, [sp]
0005c 058d2004 streq r2, [sp, #4]
00060 e59d3000 ldr r3, [sp]
00064 e58d3000 str r3, [sp]
00068 e5853000 str r3, [r5]
0006c e59d1000 ldr r1, [sp]
00070 eb000000 bl NKDbgPrintfW
; 449 :
; 450 : if( wait_for_disable_complete )
00074 e3560000 cmp r6, #0
00078 0a000013 beq |$L35465|
; 451 : {
; 452 : // wait shutdown complete
; 453 : retry = 100;
0007c e3a04064 mov r4, #0x64
00080 |$L35467|
; 454 : while ( retry-- > 0 ) {
; 455 : value = READ_REG(XLLP_CISR);
00080 e5953014 ldr r3, [r5, #0x14]
; 456 : RETAILMSG(1,(TEXT("ZQS:[XLLP_CISR= 0x%x] !!!!!!\r\n"), value));
00084 e59f0050 ldr r0, [pc, #0x50]
00088 e2444001 sub r4, r4, #1
0008c e58d3000 str r3, [sp]
00090 e59d1000 ldr r1, [sp]
00094 eb000000 bl NKDbgPrintfW
; 457 : if ( value & mask ) {
00098 e59d2004 ldr r2, [sp, #4]
0009c e59d3000 ldr r3, [sp]
000a0 e1120003 tst r2, r3
000a4 1a000006 bne |$L35858|
; 460 : }
; 461 : XllpOstDelayMilliSeconds((P_XLLP_OST_T)ost_reg_base, 10);
000a8 e3a0100a mov r1, #0xA
000ac e1a00007 mov r0, r7
000b0 eb000000 bl XllpOstDelayMilliSeconds
000b4 e3540000 cmp r4, #0
000b8 cafffff0 bgt |$L35467|
; 466 :
; 467 : return -1;
000bc e3e00000 mvn r0, #0
000c0 ea000002 b |$L35451|
000c4 |$L35858|
; 458 : WRITE_REG(XLLP_CISR, mask);
000c4 e59d3004 ldr r3, [sp, #4]
; 459 : return 0;
000c8 e5853014 str r3, [r5, #0x14]
000cc |$L35465|
; 462 : }
; 463 : }
; 464 : else
; 465 : return 0;
000cc e3a00000 mov r0, #0
000d0 |$L35451|
; 468 : }
000d0 e28dd008 add sp, sp, #8
000d4 e8bd40f0 ldmia sp!, {r4 - r7, lr}
000d8 e12fff1e bx lr
000dc |$L35873|
000dc 00000000 DCD |??_C@_1DO@GKAEEGBI@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAS?$AAR?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF?$AAx@|
000e0 00000000 DCD |??_C@_1EA@FJKJMIIM@?$AAZ?$AAQ?$AAS?$AA?3?$AA?$FL?$AAX?$AAL?$AAL?$AAP?$AA_?$AAC?$AAI?$AAC?$AAR?$AA0?$AA?$DN?$AA?5?$AA0?$AAx?$AA?$CF@|
000e4 |$M35869|
ENDP ; |XllpCIDisable|
EXPORT |XllpCISlaveCaptureEnable|
00000 AREA |.text| { |XllpCISlaveCaptureEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCISlaveCaptureEnable|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCISlaveCaptureEnable| } ; comdat associative
|$T35880| DCD |$L35879|
DCD 0x40000400
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCISlaveCaptureEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCISlaveCaptureEnable| PROC
; 471 : {
00000 |$L35879|
00000 |$M35877|
; 472 : unsigned int value;
; 473 :
; 474 : // write mask in cicr0
; 475 : value = READ_REG(XLLP_CICR0);
; 476 : value |= XLLP_CI_CICR0_SL_CAP_EN;
00000 e5903000 ldr r3, [r0]
00004 e3833202 orr r3, r3, #2, 4
; 477 : WRITE_REG(XLLP_CICR0, value);
00008 e5803000 str r3, [r0]
; 478 : return;
; 479 : }
0000c e12fff1e bx lr
00010 |$M35878|
ENDP ; |XllpCISlaveCaptureEnable|
EXPORT |XllpCISlaveCaptureDisable|
00000 AREA |.text| { |XllpCISlaveCaptureDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCISlaveCaptureDisable|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCISlaveCaptureDisable| } ; comdat associative
|$T35888| DCD |$L35887|
DCD 0x40000400
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCISlaveCaptureDisable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCISlaveCaptureDisable| PROC
; 482 : {
00000 |$L35887|
00000 |$M35885|
; 483 : unsigned int value;
; 484 :
; 485 : // write mask in cicr0
; 486 : value = READ_REG(XLLP_CICR0);
; 487 : value &= ~XLLP_CI_CICR0_SL_CAP_EN;
00000 e5903000 ldr r3, [r0]
00004 e3c33202 bic r3, r3, #2, 4
; 488 : WRITE_REG(XLLP_CICR0, value);
00008 e5803000 str r3, [r0]
; 489 : return;
; 490 : }
0000c e12fff1e bx lr
00010 |$M35886|
ENDP ; |XllpCISlaveCaptureDisable|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -