📄 xllp_ci.cod
字号:
; 145 : default:
; 146 : break;
; 147 : }
; 148 : value |= (tbit==1) ? XLLP_CI_CICR1_TBIT : 0;
00170 eaffffb8 b |$L35597|
00174 |$L35599|
; 151 : value |= (rgb_f==1) ? XLLP_CI_CICR1_RBG_F : 0;
00174 e3a03000 mov r3, #0
00178 |$L35600|
00178 e1831002 orr r1, r3, r2
; 152 : value |= (ycbcr_f==1) ? XLLP_CI_CICR1_YCBCR_F : 0;
0017c e3590001 cmp r9, #1
; 153 : value |= rgb_bpp << XLLP_CI_CICR1_RGB_BPP_SHIFT;
; 154 : value |= raw_bpp << XLLP_CI_CICR1_RAW_BPP_SHIFT;
; 155 : value |= cspace << XLLP_CI_CICR1_COLOR_SP_SHIFT;
; 156 : WRITE_REG(XLLP_CICR1, value);
00180 e188310e orr r3, r8, lr, lsl #2
00184 03a02b01 moveq r2, #1, 22
00188 13a02000 movne r2, #0
0018c e1843103 orr r3, r4, r3, lsl #2
00190 e1823183 orr r3, r2, r3, lsl #3
00194 e1833001 orr r3, r3, r1
00198 e5803004 str r3, [r0, #4]
; 157 :
; 158 : return;
; 159 : }
0019c e8bd47f0 ldmia sp!, {r4 - r10, lr}
001a0 e12fff1e bx lr
001a4 |$L35626|
001a4 03ff8007 DCD 0x3ff8007
001a8 |$M35622|
ENDP ; |XllpCISetImageFormat|
EXPORT |XllpCISetMode|
00000 AREA |.text| { |XllpCISetMode| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCISetMode|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCISetMode| } ; comdat associative
|$T35635| DCD |$L35634|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCISetMode| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCISetMode| PROC
; 162 : {
00000 |$L35634|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35632|
; 163 : unsigned int value;
; 164 :
; 165 : // write mode field in cicr0
; 166 : value = READ_REG(XLLP_CICR0);
; 167 : value &= ~(XLLP_CI_CICR0_SIM_SMASK << XLLP_CI_CICR0_SIM_SHIFT);
00004 e5903000 ldr r3, [r0]
; 168 : value |= (unsigned int)mode << XLLP_CI_CICR0_SIM_SHIFT;
; 169 : WRITE_REG(XLLP_CICR0, value);
; 170 :
; 171 : // write data width cicr1
; 172 : value = READ_REG(XLLP_CICR1);
; 173 : value &= ~(XLLP_CI_CICR1_DW_SMASK << XLLP_CI_CICR1_DW_SHIFT);
00008 e590e004 ldr lr, [r0, #4]
0000c e3c33407 bic r3, r3, #7, 8
00010 e3cee007 bic lr, lr, #7
00014 e1833c01 orr r3, r3, r1, lsl #24
; 174 : value |= ((unsigned)data_width) << XLLP_CI_CICR1_DW_SHIFT;
00018 e18e2002 orr r2, lr, r2
0001c e5803000 str r3, [r0]
; 175 : WRITE_REG(XLLP_CICR1, value);
00020 e5802004 str r2, [r0, #4]
; 176 : return;
; 177 : }
00024 e49de004 ldr lr, [sp], #4
00028 e12fff1e bx lr
0002c |$M35633|
ENDP ; |XllpCISetMode|
EXPORT |XllpCIConfigureMP|
00000 AREA |.text| { |XllpCIConfigureMP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIConfigureMP|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIConfigureMP| } ; comdat associative
|$T35646| DCD |$L35645|
DCD 0x40001d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIConfigureMP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIConfigureMP| PROC
; 180 : {
00000 |$L35645|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M35643|
; 181 : unsigned int value;
; 182 :
; 183 : // write ppl field in cicr1
; 184 : value = READ_REG(XLLP_CICR1);
; 185 : value &= ~(XLLP_CI_CICR1_PPL_SMASK << XLLP_CI_CICR1_PPL_SHIFT);
; 186 : value |= (PPL & XLLP_CI_CICR1_PPL_SMASK) << XLLP_CI_CICR1_PPL_SHIFT;
; 187 : WRITE_REG(XLLP_CICR1, value);
00004 e590e004 ldr lr, [r0, #4]
00008 e3a047ff mov r4, #0xFF, 14
0000c e384490e orr r4, r4, #0xE, 18
00010 e02e1781 eor r1, lr, r1, lsl #15
00014 e0011004 and r1, r1, r4
00018 e1a0500e mov r5, lr
0001c e0211005 eor r1, r1, r5
; 188 :
; 189 : // write BLW, ELW in cicr2
; 190 : value = READ_REG(XLLP_CICR2);
; 191 : value &= ~(XLLP_CI_CICR2_BLW_SMASK << XLLP_CI_CICR2_BLW_SHIFT | XLLP_CI_CICR2_ELW_SMASK << XLLP_CI_CICR2_ELW_SHIFT );
00020 e5904008 ldr r4, [r0, #8]
00024 e5801004 str r1, [r0, #4]
00028 e3a01cff mov r1, #0xFF, 24
; 192 : value |= (timing->BLW & XLLP_CI_CICR2_BLW_SMASK) << XLLP_CI_CICR2_BLW_SHIFT;
0002c e593e004 ldr lr, [r3, #4]
00030 e38110ff orr r1, r1, #0xFF
; 193 : WRITE_REG(XLLP_CICR2, value);
; 194 :
; 195 : // write BFW, LPF in cicr3
; 196 : value = READ_REG(XLLP_CICR3);
; 197 : value &= ~(XLLP_CI_CICR3_BFW_SMASK << XLLP_CI_CICR3_BFW_SHIFT | XLLP_CI_CICR3_LPF_SMASK << XLLP_CI_CICR3_LPF_SHIFT );
00034 e0041001 and r1, r4, r1
00038 e1811c0e orr r1, r1, lr, lsl #24
0003c e590500c ldr r5, [r0, #0xC]
00040 e5801008 str r1, [r0, #8]
00044 e3a018ff mov r1, #0xFF, 16
; 198 : value |= (timing->BFW & XLLP_CI_CICR3_BFW_SMASK) << XLLP_CI_CICR3_BFW_SHIFT;
00048 e593e000 ldr lr, [r3]
0004c e3811b3e orr r1, r1, #0x3E, 22
; 199 : value |= (LPF & XLLP_CI_CICR3_LPF_SMASK) << XLLP_CI_CICR3_LPF_SHIFT;
00050 e3a04e7f mov r4, #0x7F, 28
00054 e0053001 and r3, r5, r1
00058 e384400f orr r4, r4, #0xF
0005c e1831c0e orr r1, r3, lr, lsl #24
00060 e0023004 and r3, r2, r4
; 200 : WRITE_REG(XLLP_CICR3, value);
00064 e1813003 orr r3, r1, r3
00068 e580300c str r3, [r0, #0xC]
; 201 : return;
; 202 : }
0006c e8bd4030 ldmia sp!, {r4, r5, lr}
00070 e12fff1e bx lr
00074 |$M35644|
ENDP ; |XllpCIConfigureMP|
EXPORT |XllpCIConfigureSP|
00000 AREA |.text| { |XllpCIConfigureSP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIConfigureSP|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIConfigureSP| } ; comdat associative
|$T35659| DCD |$L35658|
DCD 0x40002a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIConfigureSP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIConfigureSP| PROC
; 205 : {
00000 |$L35658|
00000 e92d47f0 stmdb sp!, {r4 - r10, lr}
00004 |$M35656|
00004 e1a08003 mov r8, r3
00008 e1a09002 mov r9, r2
0000c e1a0a000 mov r10, r0
; 206 : unsigned int value;
; 207 :
; 208 : // write ppl field in cicr1
; 209 : value = READ_REG(XLLP_CICR1);
; 210 : value &= ~(XLLP_CI_CICR1_PPL_SMASK << XLLP_CI_CICR1_PPL_SHIFT);
; 211 : value |= (PPL & XLLP_CI_CICR1_PPL_SMASK) << XLLP_CI_CICR1_PPL_SHIFT;
00010 e59ae004 ldr lr, [r10, #4]
00014 e3a047ff mov r4, #0xFF, 14
00018 e384490e orr r4, r4, #0xE, 18
0001c e02e1781 eor r1, lr, r1, lsl #15
00020 e0011004 and r1, r1, r4
00024 e1a0500e mov r5, lr
00028 e0217005 eor r7, r1, r5
; 212 : WRITE_REG(XLLP_CICR1, value);
0002c e58a7004 str r7, [r10, #4]
; 213 :
; 214 : // write cicr2
; 215 : value |= (timing->BLW & XLLP_CI_CICR2_BLW_SMASK) << XLLP_CI_CICR2_BLW_SHIFT;
; 216 : value |= (timing->ELW & XLLP_CI_CICR2_ELW_SMASK) << XLLP_CI_CICR2_ELW_SHIFT;
; 217 : value |= (timing->HSW & XLLP_CI_CICR2_HSW_SMASK) << XLLP_CI_CICR2_HSW_SHIFT;
; 218 : value |= (timing->BFPW & XLLP_CI_CICR2_BFPW_SMASK) << XLLP_CI_CICR2_BFPW_SHIFT;
; 219 : value |= (timing->FSW & XLLP_CI_CICR2_FSW_SMASK) << XLLP_CI_CICR2_FSW_SHIFT;
00030 e5981004 ldr r1, [r8, #4]
00034 e598e000 ldr lr, [r8]
00038 e5984008 ldr r4, [r8, #8]
0003c e20110ff and r1, r1, #0xFF
00040 e598500c ldr r5, [r8, #0xC]
00044 e181e40e orr lr, r1, lr, lsl #8
00048 e204103f and r1, r4, #0x3F
0004c e5986010 ldr r6, [r8, #0x10]
00050 e181e30e orr lr, r1, lr, lsl #6
00054 e205103f and r1, r5, #0x3F
00058 e181e38e orr lr, r1, lr, lsl #7
0005c e2061003 and r1, r6, #3
00060 e181118e orr r1, r1, lr, lsl #3
00064 e181e007 orr lr, r1, r7
; 220 : WRITE_REG(XLLP_CICR2, value);
00068 e58ae008 str lr, [r10, #8]
; 221 :
; 222 : // write cicr3
; 223 : value |= (timing->BFW & XLLP_CI_CICR3_BFW_SMASK) << XLLP_CI_CICR3_BFW_SHIFT;
; 224 : value |= (timing->EFW & XLLP_CI_CICR3_EFW_SMASK) << XLLP_CI_CICR3_EFW_SHIFT;
; 225 : value |= (timing->VSW & XLLP_CI_CICR3_VSW_SMASK) << XLLP_CI_CICR3_VSW_SHIFT;
; 226 : value |= (LPF & XLLP_CI_CICR3_LPF_SMASK) << XLLP_CI_CICR3_LPF_SHIFT;
; 227 : WRITE_REG(XLLP_CICR3, value);
0006c e5983018 ldr r3, [r8, #0x18]
00070 e5982014 ldr r2, [r8, #0x14]
00074 e598101c ldr r1, [r8, #0x1C]
00078 e20330ff and r3, r3, #0xFF
0007c e1832402 orr r2, r3, r2, lsl #8
00080 e3a00e7f mov r0, #0x7F, 28
00084 e201301f and r3, r1, #0x1F
00088 e380000f orr r0, r0, #0xF
0008c e1832282 orr r2, r3, r2, lsl #5
00090 e0093000 and r3, r9, r0
00094 e1833582 orr r3, r3, r2, lsl #11
00098 e183300e orr r3, r3, lr
0009c e58a300c str r3, [r10, #0xC]
; 228 : return;
; 229 : }
000a0 e8bd47f0 ldmia sp!, {r4 - r10, lr}
000a4 e12fff1e bx lr
000a8 |$M35657|
ENDP ; |XllpCIConfigureSP|
EXPORT |XllpCIConfigureMS|
00000 AREA |.text| { |XllpCIConfigureMS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIConfigureMS|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIConfigureMS| } ; comdat associative
|$T35670| DCD |$L35669|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIConfigureMS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIConfigureMS| PROC
; 232 : {
00000 |$L35669|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35667|
; 233 : // the operation is same as Master-Parallel
; 234 : XllpCIConfigureMP(ci_reg_base, PPL, LPF, (XLLP_CI_MP_TIMING*)timing);
00004 eb000000 bl XllpCIConfigureMP
; 235 : }
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M35668|
ENDP ; |XllpCIConfigureMS|
EXPORT |XllpCIConfigureEP|
00000 AREA |.text| { |XllpCIConfigureEP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIConfigureEP|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIConfigureEP| } ; comdat associative
|$T35681| DCD |$L35680|
DCD 0x40000700
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIConfigureEP| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIConfigureEP| PROC
; 238 : {
00000 |$L35680|
00000 |$M35678|
00000 e3510000 cmp r1, #0
; 239 : unsigned int value;
; 240 :
; 241 : // write parity_enable field in cicr0
; 242 : value = READ_REG(XLLP_CICR0);
00004 e5903000 ldr r3, [r0]
; 243 : if (parity_check) {
; 244 : value |= XLLP_CI_CICR0_PAR_EN;
00008 13833101 orrne r3, r3, #1, 2
; 248 : }
; 249 : WRITE_REG(XLLP_CICR0, value);
0000c 15803000 strne r3, [r0]
; 245 : }
; 246 : else {
; 247 : value &= ~XLLP_CI_CICR0_PAR_EN;
00010 03c33101 biceq r3, r3, #1, 2
; 248 : }
; 249 : WRITE_REG(XLLP_CICR0, value);
00014 05803000 streq r3, [r0]
; 250 : return;
; 251 : }
00018 e12fff1e bx lr
0001c |$M35679|
ENDP ; |XllpCIConfigureEP|
EXPORT |XllpCIConfigureES|
00000 AREA |.text| { |XllpCIConfigureES| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCIConfigureES|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCIConfigureES| } ; comdat associative
|$T35698| DCD |$L35697|
DCD 0x40000700
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCIConfigureES| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCIConfigureES| PROC
; 254 : {
00000 |$L35697|
00000 |$M35695|
00000 e3510000 cmp r1, #0
; 255 : // the operationi is same as Embedded-Parallel
; 256 : XllpCIConfigureEP(ci_reg_base, parity_check);
00004 e5903000 ldr r3, [r0]
00008 13833101 orrne r3, r3, #1, 2
0000c 15803000 strne r3, [r0]
00010 03c33101 biceq r3, r3, #1, 2
00014 05803000 streq r3, [r0]
; 257 : }
00018 e12fff1e bx lr
0001c |$M35696|
ENDP ; |XllpCIConfigureES|
EXPORT |XllpCISetClock|
IMPORT |__dtou|
IMPORT |ceil|
IMPORT |__stod|
IMPORT |__muls|
IMPORT |__utos|
IMPORT |__rt_udiv|
00000 AREA |.text| { |XllpCISetClock| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$XllpCISetClock|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpCISetClock| } ; comdat associative
|$T35725| DCD |$L35724|
DCD 0x40003202
; Function compile flags: /Ogsy
00000 AREA |.text| { |XllpCISetClock| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |XllpCISetClock| PROC
; 260 : {
00000 |$L35724|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M35722|
00008 e1a05003 mov r5, r3
0000c e1a06002 mov r6, r2
00010 e1a04000 mov r4, r0
; 261 : unsigned int ciclk, value, div, cccr_l;
; 262 : P_XLLP_CLKMGR_T pclk;
; 263 : float p;
; 264 :
; 265 : // determine the LCLK frequency programmed into the CCCR.
; 266 : pclk = (P_XLLP_CLKMGR_T)clk_regs_base;
; 267 : cccr_l = (pclk->cccr & 0x0000001F);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -