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

📄 xllp_ak2440.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 3 页
字号:
; 272  : 	case 22050:
; 273  : 		(pDeviceContext->pPCMReg)->SADIV = 0x1a; //appx  22.05 khz

  00068	e3a0201a	 mov         r2, #0x1A

; 274  : 		break;

  0006c	ea000004	 b           |$L1375|
  00070		 |$L1220|

; 269  : 	case 16000:
; 270  : 		(pDeviceContext->pPCMReg)->SADIV = 0x24; //appx 16 khz

  00070	e3a02024	 mov         r2, #0x24

; 271  : 		break;

  00074	ea000002	 b           |$L1375|
  00078		 |$L1219|

; 265  : 		break;
; 266  : 	case 11025:
; 267  : 		(pDeviceContext->pPCMReg)->SADIV = 0x34; //appx 11.025 khz

  00078	e3a02034	 mov         r2, #0x34

; 268  : 		break;

  0007c	ea000000	 b           |$L1375|
  00080		 |$L1218|

; 263  : 	case 8000:
; 264  : 		(pDeviceContext->pPCMReg)->SADIV = 0x48; //appx 8 khz //don't let the 48 confuse you, it's only 8k

  00080	e3a02048	 mov         r2, #0x48
  00084		 |$L1375|
  00084	e5903008	 ldr         r3, [r0, #8]

; 284  : 		break;
; 285  : 
; 286  : 	}
; 287  : 	return (XLLP_ACODEC_SUCCESS);

  00088	e3a00000	 mov         r0, #0
  0008c	e5832060	 str         r2, [r3, #0x60]

; 288  : 
; 289  : }

  00090	e12fff1e	 bx          lr
  00094		 |$M1377|

			 ENDP  ; |XllpAkSetOutSampleRate|

	EXPORT	|XllpAkEnableSspPath|

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

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

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

  00000		 |XllpAkEnableSspPath| PROC

; 291  : {

  00000		 |$L1387|
  00000		 |$M1385|

; 292  : 	//todo: specify control of PCM interface to save power (set the transmit path switchs (tx3, tx4, etc)
; 293  : 
; 294  : 	return (XLLP_ACODEC_SUCCESS);

  00000	e3a00000	 mov         r0, #0

; 295  : 
; 296  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1386|

			 ENDP  ; |XllpAkEnableSspPath|

	EXPORT	|XllpAkDisableSspPath|

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

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

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

  00000		 |XllpAkDisableSspPath| PROC

; 298  : {

  00000		 |$L1396|
  00000		 |$M1394|

; 299  : 	//todo: specify control of PCM interface to save power (set the transmit path switchs (tx3, tx4, etc)
; 300  : 
; 301  : 	return (XLLP_ACODEC_SUCCESS);

  00000	e3a00000	 mov         r0, #0

; 302  : 
; 303  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1395|

			 ENDP  ; |XllpAkDisableSspPath|

	EXPORT	|XllpAkCodecSpecificInit|

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

  00000			 AREA	 |.pdata$$XllpAkCodecSpecificInit|, PDATA, SELECTION=5, ASSOC=|.text| { |XllpAkCodecSpecificInit| } ; comdat associative
|$T1407| DCD	|$L1406|
	DCD	0x40005401
; Function compile flags: /Ogsy

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

  00000		 |XllpAkCodecSpecificInit| PROC

; 305  : {

  00000		 |$L1406|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M1404|
  00004	e1a04000	 mov         r4, r0

; 306  : 		
; 307  : 
; 308  : 		XllpAKCodecWrite(pDeviceContext, AK_CLKCNT, 0x87); // 13mhz external clock, 44.1KHZ sample rate, PLL1 off 0xD7

  00008	e3a02087	 mov         r2, #0x87
  0000c	e3a01018	 mov         r1, #0x18
  00010	eb000000	 bl          XllpAKCodecWrite

; 309  :         XllpAKCodecWrite(pDeviceContext, AK_CLKCNT2, 0xc); // Slave mode for PCM   0xC for Slave mode

  00014	e3a0200c	 mov         r2, #0xC
  00018	e3a0101b	 mov         r1, #0x1B
  0001c	e1a00004	 mov         r0, r4
  00020	eb000000	 bl          XllpAKCodecWrite

; 310  : 		XllpAKCodecWrite(pDeviceContext, AK_PDCNT1, 0xf); // turn off PLL1 and PLL3 and CLKO

  00024	e3a0200f	 mov         r2, #0xF
  00028	e3a01003	 mov         r1, #3
  0002c	e1a00004	 mov         r0, r4
  00030	eb000000	 bl          XllpAKCodecWrite

; 311  : 	    XllpAKCodecWrite(pDeviceContext, AK_PDCNT2,0x7f);

  00034	e3a0207f	 mov         r2, #0x7F
  00038	e3a01004	 mov         r1, #4
  0003c	e1a00004	 mov         r0, r4
  00040	eb000000	 bl          XllpAKCodecWrite

; 312  : 		XllpAKCodecWrite(pDeviceContext,AK_PDCNT3,	0x3f);   //before is 0x31

  00044	e3a0203f	 mov         r2, #0x3F
  00048	e3a01005	 mov         r1, #5
  0004c	e1a00004	 mov         r0, r4
  00050	eb000000	 bl          XllpAKCodecWrite

; 313  : 		XllpAKCodecWrite(pDeviceContext,AK_RXPTHCNT1,	0x7f);  //0x14

  00054	e3a0207f	 mov         r2, #0x7F
  00058	e3a01007	 mov         r1, #7
  0005c	e1a00004	 mov         r0, r4
  00060	eb000000	 bl          XllpAKCodecWrite

; 314  : 		XllpAKCodecWrite(pDeviceContext,AK_RXPTHCNT2,0x7f);  //0x18

  00064	e3a0207f	 mov         r2, #0x7F
  00068	e3a01008	 mov         r1, #8
  0006c	e1a00004	 mov         r0, r4
  00070	eb000000	 bl          XllpAKCodecWrite

; 315  : 		XllpAKCodecWrite(pDeviceContext,AK_STADDCNT, 0);

  00074	e3a02000	 mov         r2, #0
  00078	e3a0100a	 mov         r1, #0xA
  0007c	e1a00004	 mov         r0, r4
  00080	eb000000	 bl          XllpAKCodecWrite

; 316  : 		XllpAKCodecWrite(pDeviceContext,AK_TXPTHCNT,		0x17);   //original 0x15

  00084	e3a02017	 mov         r2, #0x17
  00088	e3a0100b	 mov         r1, #0xB
  0008c	e1a00004	 mov         r0, r4
  00090	eb000000	 bl          XllpAKCodecWrite

; 317  : 		XllpAKCodecWrite(pDeviceContext,AK_VR5SET,		0x15);

  00094	e3a02015	 mov         r2, #0x15
  00098	e3a01012	 mov         r1, #0x12
  0009c	e1a00004	 mov         r0, r4
  000a0	eb000000	 bl          XllpAKCodecWrite

; 318  : 		XllpAKCodecWrite(pDeviceContext,AK_VRSTSET,		0x06);

  000a4	e3a02006	 mov         r2, #6
  000a8	e3a01014	 mov         r1, #0x14
  000ac	e1a00004	 mov         r0, r4
  000b0	eb000000	 bl          XllpAKCodecWrite

; 319  : 		XllpAKCodecWrite(pDeviceContext,AK_LEFTVOL,		0xc);//max

  000b4	e3a0200c	 mov         r2, #0xC
  000b8	e3a01016	 mov         r1, #0x16
  000bc	e1a00004	 mov         r0, r4
  000c0	eb000000	 bl          XllpAKCodecWrite

; 320  : 		XllpAKCodecWrite(pDeviceContext,AK_RIGHTVOL,		0xc);

  000c4	e3a0200c	 mov         r2, #0xC
  000c8	e3a01017	 mov         r1, #0x17
  000cc	e1a00004	 mov         r0, r4
  000d0	eb000000	 bl          XllpAKCodecWrite

; 321  :         XllpAKCodecWrite(pDeviceContext,AK_MASTERVOL,		0x0);

  000d4	e3a02000	 mov         r2, #0
  000d8	e3a01015	 mov         r1, #0x15
  000dc	e1a00004	 mov         r0, r4
  000e0	eb000000	 bl          XllpAKCodecWrite

; 322  : 		XllpAKCodecWrite(pDeviceContext,AK_DACIFCNT,	0x12);//I2S compatible mode with MCLK1 output disable

  000e4	e3a02012	 mov         r2, #0x12
  000e8	e3a01019	 mov         r1, #0x19
  000ec	e1a00004	 mov         r0, r4
  000f0	eb000000	 bl          XllpAKCodecWrite

; 323  : 		XllpAKCodecWrite(pDeviceContext,AK_CODECSET,	0x80); // pcm -- high out, codec data shift =128khz

  000f4	e3a02080	 mov         r2, #0x80
  000f8	e3a0101e	 mov         r1, #0x1E
  000fc	e1a00004	 mov         r0, r4
  00100	eb000000	 bl          XllpAKCodecWrite

; 324  : 		XllpAKCodecWrite(pDeviceContext,AK_RXPTHCNT3,		0x14); // 0b 001 0100 // SPL output rx_sumleft, epl sum left

  00104	e3a02014	 mov         r2, #0x14
  00108	e3a01020	 mov         r1, #0x20
  0010c	e1a00004	 mov         r0, r4
  00110	eb000000	 bl          XllpAKCodecWrite

; 325  : 		XllpAKCodecWrite(pDeviceContext,AK_RXPTHCNT4,		0x14); // 0b 001 0100 // SPR output rx_sumright, epl sum right

  00114	e3a02014	 mov         r2, #0x14
  00118	e3a01021	 mov         r1, #0x21
  0011c	e1a00004	 mov         r0, r4
  00120	eb000000	 bl          XllpAKCodecWrite

; 326  : 		XllpAKCodecWrite(pDeviceContext,AK_DACGAIN,0xe); //bass boost 

  00124	e3a0200e	 mov         r2, #0xE
  00128	e3a0101a	 mov         r1, #0x1A
  0012c	e1a00004	 mov         r0, r4
  00130	eb000000	 bl          XllpAKCodecWrite

; 327  : 		XllpAKCodecWrite(pDeviceContext, AK_TXVRSET, 0xa); // -10db (louder and its distorted)

  00134	e3a0200a	 mov         r2, #0xA
  00138	e3a0100d	 mov         r1, #0xD
  0013c	e1a00004	 mov         r0, r4
  00140	eb000000	 bl          XllpAKCodecWrite

; 328  : 
; 329  : 
; 330  : 
; 331  : 
; 332  : 	return (XLLP_ACODEC_SUCCESS);

  00144	e3a00000	 mov         r0, #0

; 333  : }

  00148	e8bd4010	 ldmia       sp!, {r4, lr}
  0014c	e12fff1e	 bx          lr
  00150		 |$M1405|

			 ENDP  ; |XllpAkCodecSpecificInit|

	EXPORT	|XllpAkCodecSpecificDeinit|

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

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

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

  00000		 |XllpAkCodecSpecificDeinit| PROC

; 336  : {

  00000		 |$L1415|
  00000		 |$M1413|

; 337  :     return (XLLP_ACODEC_SUCCESS);

  00000	e3a00000	 mov         r0, #0

; 338  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1414|

			 ENDP  ; |XllpAkCodecSpecificDeinit|

	EXPORT	|XllpAKEnterEuipmentState|

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

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

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

  00000		 |XllpAKEnterEuipmentState| PROC

; 341  : {

  00000		 |$L1424|
  00000		 |$M1422|

; 342  :     return (XLLP_ACODEC_SUCCESS);

  00000	e3a00000	 mov         r0, #0

; 343  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1423|

			 ENDP  ; |XllpAKEnterEuipmentState|

	EXPORT	|XllpAKQueryEquipmentState|

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

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

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

  00000		 |XllpAKQueryEquipmentState| PROC

; 346  : {

  00000		 |$L1433|
  00000		 |$M1431|

; 347  :    return (XLLP_ACODEC_SUCCESS);

  00000	e3a00000	 mov         r0, #0

; 348  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M1432|

			 ENDP  ; |XllpAKQueryEquipmentState|

	END

⌨️ 快捷键说明

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