📄 basei2s.cod
字号:
DCD 0x40008e01
00000 AREA |.rdata| { |??_C@_1GE@GMDDECGJ@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GE@GMDDECGJ@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| DCB "A"
DCB 0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
DCB 0x0, "!", 0x0, " ", 0x0, "M", 0x0, "F", 0x0, "P", 0x0, "_"
DCB 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "R"
DCB 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "B", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " "
DCB 0x0, "m", 0x0, "_", 0x0, "d", 0x0, "m", 0x0, "a", 0x0, "_"
DCB 0x0, "r", 0x0, "e", 0x0, "c", 0x0, " ", 0x0, "F", 0x0, "A"
DCB 0x0, "I", 0x0, "L", 0x0, "E", 0x0, "D", 0x0, 0x9, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GG@BNDIIIOO@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GG@BNDIIIOO@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| DCB "A"
DCB 0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
DCB 0x0, "!", 0x0, " ", 0x0, "M", 0x0, "F", 0x0, "P", 0x0, "_"
DCB 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "R"
DCB 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "B", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " "
DCB 0x0, "m", 0x0, "_", 0x0, "d", 0x0, "m", 0x0, "a", 0x0, "_"
DCB 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "y", 0x0, " ", 0x0, "F"
DCB 0x0, "A", 0x0, "I", 0x0, "L", 0x0, "E", 0x0, "D", 0x0, 0x9
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GA@PIKEJFKP@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GA@PIKEJFKP@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAM?$AAF?$AAP?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAR?$AAe@| DCB "A"
DCB 0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
DCB 0x0, "!", 0x0, " ", 0x0, "M", 0x0, "F", 0x0, "P", 0x0, "_"
DCB 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "R"
DCB 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "B", 0x0, "a", 0x0, "s", 0x0, "e", 0x0, " "
DCB 0x0, "m", 0x0, "_", 0x0, "a", 0x0, "u", 0x0, "d", 0x0, "i"
DCB 0x0, "o", 0x0, " ", 0x0, "F", 0x0, "A", 0x0, "I", 0x0, "L"
DCB 0x0, "E", 0x0, "D", 0x0, 0x9, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DC@MEKBLJDN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAB?$AAA?$AAS?$AAE?$AAI?$AA2?$AAS?$AA?3?$AA?3?$AAo?$AAp@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DC@MEKBLJDN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAB?$AAA?$AAS?$AAE?$AAI?$AA2?$AAS?$AA?3?$AA?3?$AAo?$AAp@| DCB "A"
DCB 0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
DCB 0x0, "!", 0x0, " ", 0x0, "B", 0x0, "A", 0x0, "S", 0x0, "E"
DCB 0x0, "I", 0x0, "2", 0x0, "S", 0x0, ":", 0x0, ":", 0x0, "o"
DCB 0x0, "p", 0x0, "e", 0x0, "n", 0x0, 0x9, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Open@BASEI2S@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?Open@BASEI2S@@QAAHXZ| PROC ; BASEI2S::Open
; 280 : {
00000 |$L37303|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M37301|
00004 e1a04000 mov r4, r0
; 281 : RETAILMSG(1, (TEXT("Andrew!! BASEI2S::open\t\n")));
00008 e59f0224 ldr r0, [pc, #0x224]
0000c eb000000 bl NKDbgPrintfW
; 282 :
; 283 :
; 284 :
; 285 : if(!MFP_AllocRegisterBase(&m_audio, PHY_BASEADDR_AUDIO ))
00010 e3a01103 mov r1, #3, 2
00014 e3811b36 orr r1, r1, #0x36, 22
00018 e2840048 add r0, r4, #0x48
0001c eb000000 bl |?MFP_AllocRegisterBase@@YAHPAVMES_IModule@@K@Z|
00020 e3500000 cmp r0, #0
; 286 : {
; 287 : RETAILMSG(1, (TEXT("Andrew!! MFP_AllocRegisterBase m_audio FAILED\t\n")));
00024 059f0204 ldreq r0, [pc, #0x204]
00028 0a00000d beq |$L37300|
; 288 : return FALSE;
; 289 : }
; 290 : // if (MapRegisters()==FALSE) return FALSE;
; 291 : if(!MFP_AllocRegisterBase(&m_dma_play, PHY_BASEADDR_DMA + (DMA_AUDIO_PLAY * DMA_CHANNEL_OFFSET) ))
0002c e3a01103 mov r1, #3, 2
00030 e3811c03 orr r1, r1, #3, 24
00034 e2840020 add r0, r4, #0x20
00038 eb000000 bl |?MFP_AllocRegisterBase@@YAHPAVMES_IModule@@K@Z|
0003c e3500000 cmp r0, #0
; 292 : {
; 293 : RETAILMSG(1, (TEXT("Andrew!! MFP_AllocRegisterBase m_dma_play FAILED\t\n")));
00040 059f01e4 ldreq r0, [pc, #0x1E4]
00044 0a000006 beq |$L37300|
; 294 : return FALSE;
; 295 : }
; 296 :
; 297 : if(!MFP_AllocRegisterBase(&m_dma_rec, PHY_BASEADDR_DMA + (DMA_AUDIO_REC * DMA_CHANNEL_OFFSET) ))
00048 e3a01103 mov r1, #3, 2
0004c e3811d12 orr r1, r1, #0x12, 26
00050 e2840034 add r0, r4, #0x34
00054 eb000000 bl |?MFP_AllocRegisterBase@@YAHPAVMES_IModule@@K@Z|
00058 e3500000 cmp r0, #0
0005c 1a000004 bne |$L36268|
; 298 : {
; 299 : RETAILMSG(1, (TEXT("Andrew!! MFP_AllocRegisterBase m_dma_rec FAILED\t\n")));
00060 e59f01c0 ldr r0, [pc, #0x1C0]
00064 |$L37300|
00064 eb000000 bl NKDbgPrintfW
; 300 : return FALSE;
00068 e3a00000 mov r0, #0
; 465 : }
0006c e8bd4010 ldmia sp!, {r4, lr}
00070 e12fff1e bx lr
00074 |$L36268|
; 301 : }
; 302 :
; 303 :
; 304 : //MES_SetOutputValueBit(OEM_GPIO_I2S_RST, OEM_GPIO_I2S_RST_AL);
; 305 :
; 306 :
; 307 :
; 308 : //--------------------------------------------------------------------------
; 309 : // Initialize Prototype
; 310 : //--------------------------------------------------------------------------
; 311 : /*
; 312 : m_dma_play.SetPhysicalAddress(PHY_BASEADDR_DMA);
; 313 :
; 314 : m_dma_play.SetVirtualAddressOfRegisterSet(
; 315 : 0,
; 316 : (U32)m_pDMAregs+(OEM_DMA_CHANNEL_AUDIO_PLAY * DMA_CHANNEL_OFFSET));
; 317 :
; 318 : m_dma_play.SetAttribute(MES_DMA03::OPMODE_MEM_TO_IO,16,CTRUE,CTRUE);
; 319 :
; 320 : m_dma_rec.SetPhysicalAddress(PHY_BASEADDR_DMA);
; 321 :
; 322 : m_dma_rec.SetVirtualAddressOfRegisterSet(
; 323 : 0,
; 324 : (U32)m_pDMAregs+(OEM_DMA_CHANNEL_AUDIO_REC * DMA_CHANNEL_OFFSET));
; 325 :
; 326 :
; 327 :
; 328 : // I2S Initialize
; 329 : m_audio.SetPhysicalAddress(VIR_BASEADDR_AUDIO);
; 330 : */
; 331 : //------------------------------------------------------------------------------
; 332 : // Set Audio Clock Register
; 333 : //------------------------------------------------------------------------------
; 334 :
; 335 : /*
; 336 :
; 337 : // setting CLKGEN0
; 338 : m_audio.SetClockSource( 0, 2 ); // PLL2
; 339 : m_audio.SetClockDivisor( 0, 8 ); // div 8
; 340 : m_audio.SetClockOutInv( 0, CFALSE );
; 341 :
; 342 : m_audio.SetClockSource( 1, 7 ); // Bit Clock
; 343 : m_audio.SetClockDivisor( 1, 4 ); // div 1
; 344 : m_audio.SetClockOutInv( 1, CFALSE );
; 345 : m_audio.SetClockOutEnb( 1, CTRUE ); // Input
; 346 :
; 347 : */
; 348 :
; 349 : #if 1
; 350 : m_audio.SetClockDivisorEnable( CFALSE );
00074 e2840050 add r0, r4, #0x50
00078 e3a01000 mov r1, #0
0007c eb000000 bl |?SetClockDivisorEnable@MES_IClockControl@@QAAXH@Z|
; 351 : // setting CLKGEN0
; 352 : m_audio.SetClockSource( 0, 2 ); // PLL2
00080 e3a02002 mov r2, #2
00084 e3a01000 mov r1, #0
00088 e2840050 add r0, r4, #0x50
0008c eb000000 bl |?SetClockSource@MES_IClockControl@@QAAXKK@Z|
; 353 : m_audio.SetClockDivisor( 0, 8 ); // div 8
00090 e3a02008 mov r2, #8
00094 e3a01000 mov r1, #0
00098 e2840050 add r0, r4, #0x50
0009c eb000000 bl |?SetClockDivisor@MES_IClockControl@@QAAXKK@Z|
; 354 : m_audio.SetClockOutInv( 0, CFALSE );
000a0 e3a02000 mov r2, #0
000a4 e3a01000 mov r1, #0
000a8 e2840050 add r0, r4, #0x50
000ac eb000000 bl |?SetClockOutInv@MES_IClockControl@@QAAXKH@Z|
; 355 :
; 356 : m_audio.SetClockSource( 1, 7 ); // Bit Clock
000b0 e3a02007 mov r2, #7
000b4 e3a01001 mov r1, #1
000b8 e2840050 add r0, r4, #0x50
000bc eb000000 bl |?SetClockSource@MES_IClockControl@@QAAXKK@Z|
; 357 : m_audio.SetClockDivisor( 1, 4 ); // div 1
000c0 e3a02004 mov r2, #4
000c4 e3a01001 mov r1, #1
000c8 e2840050 add r0, r4, #0x50
000cc eb000000 bl |?SetClockDivisor@MES_IClockControl@@QAAXKK@Z|
; 358 : m_audio.SetClockOutInv( 1, CFALSE );
000d0 e3a02000 mov r2, #0
000d4 e3a01001 mov r1, #1
000d8 e2840050 add r0, r4, #0x50
000dc eb000000 bl |?SetClockOutInv@MES_IClockControl@@QAAXKH@Z|
; 359 : m_audio.SetClockOutEnb( 1, CTRUE ); // Input
000e0 e3a02001 mov r2, #1
000e4 e3a01001 mov r1, #1
000e8 e2840050 add r0, r4, #0x50
000ec eb000000 bl |?SetClockOutEnb@MES_IClockControl@@QAAXKH@Z|
; 360 :
; 361 : #else
; 362 :
; 363 : m_audio.SetClockDivisorEnable( CFALSE );
; 364 :
; 365 : // setting CLKGEN0
; 366 : m_audio.SetClockSource( 0, 7 ); // None
; 367 : m_audio.SetClockDivisor( 0, 1 ); // div 1
; 368 : m_audio.SetClockOutInv( 0, CFALSE );
; 369 :
; 370 : // setting CLKGEN1
; 371 : m_audio.SetClockSource( 1, 3 ); // Bit Clk
; 372 : m_audio.SetClockDivisor( 1, 1 ); // div 1
; 373 : m_audio.SetClockOutInv( 1, CFALSE );
; 374 : m_audio.SetClockOutEnb( 1, CFALSE ); // output
; 375 :
; 376 : // setting CLKENB
; 377 : m_audio.SetClockPClkMode( MES_IClockControl::PCLKMODE_ALWAYS ); // Always
; 378 : // m_audio.SetClockBClkMode( MES_IClockControl::BCLKMODE_ALWAYS ); // Always
; 379 :
; 380 :
; 381 : #endif
; 382 :
; 383 :
; 384 :
; 385 : // setting CLKENB
; 386 : m_audio.SetClockPClkMode( MES_IClockControl::PCLKMODE_ALWAYS ); // Always
000f0 e3a01001 mov r1, #1
000f4 e2840050 add r0, r4, #0x50
000f8 eb000000 bl |?SetClockPClkMode@MES_IClockControl@@QAAXW4PCLKMODE@1@@Z|
; 387 : m_audio.SetClockBClkMode( MES_IClockControl::BCLKMODE_DISABLE ); // Disable
000fc e3a01000 mov r1, #0
00100 e2840050 add r0, r4, #0x50
00104 eb000000 bl |?SetClockBClkMode@MES_IClockControl@@QAAXW4BCLKMODE@1@@Z|
; 388 : m_audio.SetClockDivisorEnable( CTRUE);
00108 e3a01001 mov r1, #1
0010c e2840050 add r0, r4, #0x50
00110 eb000000 bl |?SetClockDivisorEnable@MES_IClockControl@@QAAXH@Z|
; 389 :
; 390 :
; 391 :
; 392 : // m_audio.SetVirtualAddressOfRegisterSet(0, (U32)m_pAUDIOregs);
; 393 :
; 394 : m_audio.SetAC97ColdReset(CTRUE);
00114 e3a01001 mov r1, #1
00118 e2840048 add r0, r4, #0x48
0011c eb000000 bl |?SetAC97ColdReset@MES_AUDIO03@@QAAXH@Z|
; 395 : Sleep(10);
00120 e3a0000a mov r0, #0xA
00124 eb000000 bl Sleep
; 396 :
; 397 : m_audio.SetAC97ColdReset(CFALSE);
00128 e3a01000 mov r1, #0
0012c e2840048 add r0, r4, #0x48
00130 eb000000 bl |?SetAC97ColdReset@MES_AUDIO03@@QAAXH@Z|
; 398 :
; 399 : // AC97 Off
; 400 : m_audio.SetAC97ControllerReset( CTRUE );
00134 e3a01001 mov r1, #1
00138 e2840048 add r0, r4, #0x48
0013c eb000000 bl |?SetAC97ControllerReset@MES_AUDIO03@@QAAXH@Z|
; 401 : m_audio.SetAC97LinkOn( CFALSE );
00140 e3a01000 mov r1, #0
00144 e2840048 add r0, r4, #0x48
00148 eb000000 bl |?SetAC97LinkOn@MES_AUDIO03@@QAAXH@Z|
; 402 :
; 403 : // I2S Setting to FALSE
; 404 : m_audio.SetI2SControllerReset( CTRUE );
0014c e3a01001 mov r1, #1
00150 e2840048 add r0, r4, #0x48
00154 eb000000 bl |?SetI2SControllerReset@MES_AUDIO03@@QAAXH@Z|
; 405 : m_audio.SetI2SLinkOn( CFALSE );
00158 e3a01000 mov r1, #0
0015c e2840048 add r0, r4, #0x48
00160 eb000000 bl |?SetI2SLinkOn@MES_AUDIO03@@QAAXH@Z|
; 406 :
; 407 : // AC97 Off
; 408 : m_audio.SetAC97ControllerReset( CTRUE );
00164 e3a01001 mov r1, #1
00168 e2840048 add r0, r4, #0x48
0016c eb000000 bl |?SetAC97ControllerReset@MES_AUDIO03@@QAAXH@Z|
; 409 : m_audio.SetAC97LinkOn( CFALSE );
00170 e3a01000 mov r1, #0
00174 e2840048 add r0, r4, #0x48
00178 eb000000 bl |?SetAC97LinkOn@MES_AUDIO03@@QAAXH@Z|
; 410 :
; 411 : // I2S Setting to TRUE
; 412 : m_audio.SetI2SControllerReset( CFALSE );
0017c e3a01000 mov r1, #0
00180 e2840048 add r0, r4, #0x48
00184 eb000000 bl |?SetI2SControllerReset@MES_AUDIO03@@QAAXH@Z|
; 413 : m_audio.SetI2SLinkOn( CTRUE );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -