⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xllp_ci.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 4 页
字号:
; 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 + -