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

📄 xllp_ucb1400.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 2 页
字号:

; 161  :             break;
; 162  :     }
; 163  :     
; 164  :     return status;

  00094	e3a00000	 mov         r0, #0
  00098		 |$L1226|

; 165  : }

  00098	e28dd004	 add         sp, sp, #4
  0009c	e8bd4010	 ldmia       sp!, {r4, lr}
  000a0	e12fff1e	 bx          lr
  000a4		 |$M1380|

			 ENDP  ; |XllpUCBGetOutSampleRate|

	EXPORT	|XllpUCBSetInSampleRate|

  00000			 AREA	 |.text| { |XllpUCBSetInSampleRate| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBSetInSampleRate|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBSetInSampleRate| } ; comdat associative
|$T1395| DCD	|$L1394|
	DCD	0x40002c01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBSetInSampleRate| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBSetInSampleRate| PROC

; 168  : {

  00000		 |$L1394|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M1392|
  00004	e1a03001	 mov         r3, r1
  00008	e1a05000	 mov         r5, r0

; 169  :     XLLP_ACODEC_ERROR_T	status = XLLP_ACODEC_SUCCESS;
; 170  :     XLLP_UINT16_T value;
; 171  :     
; 172  :     switch (RateInHz)

  0000c	e3530d7d	 cmp         r3, #0x7D, 26
  00010	0a00001a	 beq         |$L1252|
  00014	e3a02c2b	 mov         r2, #0x2B, 24
  00018	e3822011	 orr         r2, r2, #0x11
  0001c	e1530002	 cmp         r3, r2
  00020	0a000010	 beq         |$L1258|
  00024	e3530dfa	 cmp         r3, #0xFA, 26
  00028	0a000012	 beq         |$L1254|
  0002c	e3a02c56	 mov         r2, #0x56, 24
  00030	e3822022	 orr         r2, r2, #0x22
  00034	e1530002	 cmp         r3, r2
  00038	0a00000a	 beq         |$L1258|
  0003c	e3530c7d	 cmp         r3, #0x7D, 24
  00040	0a00000a	 beq         |$L1256|
  00044	e3a02b2b	 mov         r2, #0x2B, 22
  00048	e3822044	 orr         r2, r2, #0x44
  0004c	e1530002	 cmp         r3, r2
  00050	13a02cbb	 movne       r2, #0xBB, 24
  00054	13822080	 orrne       r2, r2, #0x80
  00058	11530002	 cmpne       r3, r2

; 195  :         default:
; 196  :             return XLLP_ACODEC_SAMPLERATE_INVALID;        

  0005c	13a00007	 movne       r0, #7

; 206  :     return status;
; 207  : }

  00060	18bd4030	 ldmneia     sp!, {r4, r5, lr}
  00064	112fff1e	 bxne        lr
  00068		 |$L1258|

; 189  :         case 44100:
; 190  :             value = XLLP_AC97_U14_DR_44100;
; 191  :             break;
; 192  :         case 48000:
; 193  :             value = XLLP_AC97_U14_DR_48000;

  00068	e1a04002	 mov         r4, r2

; 194  :             break;

  0006c	ea000004	 b           |$L1249|
  00070		 |$L1256|

; 183  :         case 22050:
; 184  :             value = XLLP_AC97_U14_DR_22050;
; 185  :             break;
; 186  :         case 32000:
; 187  :             value = XLLP_AC97_U14_DR_32000;

  00070	e3a04c7d	 mov         r4, #0x7D, 24

; 188  :             break;

  00074	ea000002	 b           |$L1249|
  00078		 |$L1254|

; 176  :             break;
; 177  :         case 11025:
; 178  :             value = XLLP_AC97_U14_DR_11025;
; 179  :             break;
; 180  :         case 16000:
; 181  :             value = XLLP_AC97_U14_DR_16000;

  00078	e3a04dfa	 mov         r4, #0xFA, 26

; 182  :             break;

  0007c	ea000000	 b           |$L1249|
  00080		 |$L1252|

; 173  :     {
; 174  :         case 8000:
; 175  :             value = XLLP_AC97_U14_DR_8000;

  00080	e3a04d7d	 mov         r4, #0x7D, 26
  00084		 |$L1249|

; 197  :     }
; 198  :     //enable VRA mode
; 199  :     status = XllpAc97ACodecWrite(pDeviceContext, XLLP_AC97_CR_E_AUDIO_CTRL_STAT, XLLP_AC97_U14_EASCR_VRA);     

  00084	e3a02001	 mov         r2, #1
  00088	e3a0102a	 mov         r1, #0x2A
  0008c	e1a00005	 mov         r0, r5
  00090	eb000000	 bl          XllpAc97ACodecWrite
  00094	e3500000	 cmp         r0, #0

; 200  :     if (XLLP_ACODEC_SUCCESS != status)
; 201  :     {
; 202  :         return status;
; 203  :     }
; 204  :     
; 205  :     status = XllpAc97ACodecWrite(pDeviceContext, XLLP_AC97_CR_E_ASR_PCM_LR_ADC_RT, value);             				 

  00098	01a02004	 moveq       r2, r4
  0009c	03a01032	 moveq       r1, #0x32
  000a0	01a00005	 moveq       r0, r5
  000a4	0b000000	 bleq        XllpAc97ACodecWrite

; 206  :     return status;
; 207  : }

  000a8	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000ac	e12fff1e	 bx          lr
  000b0		 |$M1393|

			 ENDP  ; |XllpUCBSetInSampleRate|

	EXPORT	|XllpUCBSetOutSampleRate|

  00000			 AREA	 |.text| { |XllpUCBSetOutSampleRate| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBSetOutSampleRate|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBSetOutSampleRate| } ; comdat associative
|$T1408| DCD	|$L1407|
	DCD	0x40002c01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBSetOutSampleRate| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBSetOutSampleRate| PROC

; 210  : {

  00000		 |$L1407|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M1405|
  00004	e1a03001	 mov         r3, r1
  00008	e1a05000	 mov         r5, r0

; 211  :     XLLP_ACODEC_ERROR_T	status = XLLP_ACODEC_SUCCESS;
; 212  :     XLLP_UINT16_T value;
; 213  :     
; 214  :     switch (RateInHz)

  0000c	e3530d7d	 cmp         r3, #0x7D, 26
  00010	0a00001a	 beq         |$L1272|
  00014	e3a02c2b	 mov         r2, #0x2B, 24
  00018	e3822011	 orr         r2, r2, #0x11
  0001c	e1530002	 cmp         r3, r2
  00020	0a000010	 beq         |$L1278|
  00024	e3530dfa	 cmp         r3, #0xFA, 26
  00028	0a000012	 beq         |$L1274|
  0002c	e3a02c56	 mov         r2, #0x56, 24
  00030	e3822022	 orr         r2, r2, #0x22
  00034	e1530002	 cmp         r3, r2
  00038	0a00000a	 beq         |$L1278|
  0003c	e3530c7d	 cmp         r3, #0x7D, 24
  00040	0a00000a	 beq         |$L1276|
  00044	e3a02b2b	 mov         r2, #0x2B, 22
  00048	e3822044	 orr         r2, r2, #0x44
  0004c	e1530002	 cmp         r3, r2
  00050	13a02cbb	 movne       r2, #0xBB, 24
  00054	13822080	 orrne       r2, r2, #0x80
  00058	11530002	 cmpne       r3, r2

; 237  :         default:
; 238  :             return XLLP_ACODEC_SAMPLERATE_INVALID;        

  0005c	13a00007	 movne       r0, #7

; 248  :     return status;
; 249  : }

  00060	18bd4030	 ldmneia     sp!, {r4, r5, lr}
  00064	112fff1e	 bxne        lr
  00068		 |$L1278|

; 231  :         case 44100:
; 232  :             value = XLLP_AC97_U14_DR_44100;
; 233  :             break;
; 234  :         case 48000:
; 235  :             value = XLLP_AC97_U14_DR_48000;

  00068	e1a04002	 mov         r4, r2

; 236  :             break;

  0006c	ea000004	 b           |$L1269|
  00070		 |$L1276|

; 225  :         case 22050:
; 226  :             value = XLLP_AC97_U14_DR_22050;
; 227  :             break;
; 228  :         case 32000:
; 229  :             value = XLLP_AC97_U14_DR_32000;

  00070	e3a04c7d	 mov         r4, #0x7D, 24

; 230  :             break;

  00074	ea000002	 b           |$L1269|
  00078		 |$L1274|

; 218  :             break;
; 219  :         case 11025:
; 220  :             value = XLLP_AC97_U14_DR_11025;
; 221  :             break;
; 222  :         case 16000:
; 223  :             value = XLLP_AC97_U14_DR_16000;

  00078	e3a04dfa	 mov         r4, #0xFA, 26

; 224  :             break;

  0007c	ea000000	 b           |$L1269|
  00080		 |$L1272|

; 215  :     {
; 216  :         case 8000:
; 217  :             value = XLLP_AC97_U14_DR_8000;

  00080	e3a04d7d	 mov         r4, #0x7D, 26
  00084		 |$L1269|

; 239  :     }
; 240  :     //enable VRA mode
; 241  :     status = XllpAc97ACodecWrite(pDeviceContext, XLLP_AC97_CR_E_AUDIO_CTRL_STAT, XLLP_AC97_U14_EASCR_VRA);     

  00084	e3a02001	 mov         r2, #1
  00088	e3a0102a	 mov         r1, #0x2A
  0008c	e1a00005	 mov         r0, r5
  00090	eb000000	 bl          XllpAc97ACodecWrite
  00094	e3500000	 cmp         r0, #0

; 242  :     if (XLLP_ACODEC_SUCCESS != status)
; 243  :     {
; 244  :         return status;
; 245  :     }
; 246  :     
; 247  :     status = XllpAc97ACodecWrite(pDeviceContext, XLLP_AC97_CR_E_ASR_PCM_FRNT_DAC_RT, value);             				 

  00098	01a02004	 moveq       r2, r4
  0009c	03a0102c	 moveq       r1, #0x2C
  000a0	01a00005	 moveq       r0, r5
  000a4	0b000000	 bleq        XllpAc97ACodecWrite

; 248  :     return status;
; 249  : }

  000a8	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000ac	e12fff1e	 bx          lr
  000b0		 |$M1406|

			 ENDP  ; |XllpUCBSetOutSampleRate|

	EXPORT	|XllpUCBEnterEquipmentState|

  00000			 AREA	 |.text| { |XllpUCBEnterEquipmentState| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBEnterEquipmentState|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBEnterEquipmentState| } ; comdat associative
|$T1417| DCD	|$L1416|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBEnterEquipmentState| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBEnterEquipmentState| PROC

; 252  : {

  00000		 |$L1416|
  00000		 |$M1414|

; 253  :     return XLLP_ACODEC_CODEC_FEATURE_NOT_SUPPORTED;

  00000	e3a0000c	 mov         r0, #0xC

; 254  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1415|

			 ENDP  ; |XllpUCBEnterEquipmentState|

	EXPORT	|XllpUCBGetEquipmentState|

  00000			 AREA	 |.text| { |XllpUCBGetEquipmentState| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBGetEquipmentState|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBGetEquipmentState| } ; comdat associative
|$T1426| DCD	|$L1425|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBGetEquipmentState| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBGetEquipmentState| PROC

; 257  : {

  00000		 |$L1425|
  00000		 |$M1423|

; 258  :     return XLLP_ACODEC_CODEC_FEATURE_NOT_SUPPORTED;    

  00000	e3a0000c	 mov         r0, #0xC

; 259  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1424|

			 ENDP  ; |XllpUCBGetEquipmentState|

	EXPORT	|XllpUCBSpecificInit|

  00000			 AREA	 |.text| { |XllpUCBSpecificInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBSpecificInit|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBSpecificInit| } ; comdat associative
|$T1435| DCD	|$L1434|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBSpecificInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBSpecificInit| PROC

; 262  : {

  00000		 |$L1434|
  00000		 |$M1432|

; 263  :     return XLLP_ACODEC_SUCCESS;

  00000	e3a00000	 mov         r0, #0

; 264  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1433|

			 ENDP  ; |XllpUCBSpecificInit|

	EXPORT	|XllpUCBSpecificDeInit|

  00000			 AREA	 |.text| { |XllpUCBSpecificDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$XllpUCBSpecificDeInit|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpUCBSpecificDeInit| } ; comdat associative
|$T1444| DCD	|$L1443|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |XllpUCBSpecificDeInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |XllpUCBSpecificDeInit| PROC

; 267  : {

  00000		 |$L1443|
  00000		 |$M1441|

; 268  :     return XLLP_ACODEC_SUCCESS;

  00000	e3a00000	 mov         r0, #0

; 269  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1442|

			 ENDP  ; |XllpUCBSpecificDeInit|

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -