📄 xllp_ak2440.cod
字号:
; 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 + -