📄 dac_codec.txt
字号:
000016 f7ffbffe B.W DAC_CODEC_Pause
|L22.26|
00001a bd10 POP {r4,pc}
ENDP
|L22.28|
00001c 00000000 DCD ||.data||
AREA ||i.GetVar_DataStartAddr||, CODE, READONLY, ALIGN=2
GetVar_DataStartAddr PROC
;;;370 {
;;;371 return DataStartAddr;
000000 4801 LDR r0,|L23.8|
000002 6900 LDR r0,[r0,#0x10] ; DataStartAddr
;;;372 }
000004 4770 BX lr
;;;373
ENDP
000006 0000 DCW 0x0000
|L23.8|
000008 00000000 DCD ||.data||
AREA ||i.GetVar_CurrentVolume||, CODE, READONLY, ALIGN=2
GetVar_CurrentVolume PROC
;;;383 {
;;;384 return CurrentVolume;
000000 4801 LDR r0,|L24.8|
000002 7840 LDRB r0,[r0,#1] ; CurrentVolume
;;;385 }
000004 4770 BX lr
;;;386
ENDP
000006 0000 DCW 0x0000
|L24.8|
000008 00000000 DCD ||.data||
AREA ||i.SetVar_AudioDataIndex||, CODE, READONLY, ALIGN=2
SetVar_AudioDataIndex PROC
;;;532 {
;;;533 AudioDataIndex = value;
000000 4901 LDR r1,|L25.8|
000002 6148 STR r0,[r1,#0x14] ; AudioDataIndex
;;;534 }
000004 4770 BX lr
;;;535
ENDP
000006 0000 DCW 0x0000
|L25.8|
000008 00000000 DCD ||.data||
AREA ||i.GetVar_SendDummyData||, CODE, READONLY, ALIGN=2
GetVar_SendDummyData PROC
;;;596 {
;;;597 return SendDummyData;
000000 4801 LDR r0,|L26.8|
000002 6a00 LDR r0,[r0,#0x20] ; SendDummyData
;;;598 }
000004 4770 BX lr
;;;599
ENDP
000006 0000 DCW 0x0000
|L26.8|
000008 00000000 DCD ||.data||
AREA ||i.SetVar_SendDummyData||, CODE, READONLY, ALIGN=2
SetVar_SendDummyData PROC
;;;608 {
;;;609 SendDummyData = (u32)0x1;
000000 4802 LDR r0,|L27.12|
000002 2101 MOVS r1,#1
000004 6201 STR r1,[r0,#0x20] ; SendDummyData
;;;610
;;;611 return SendDummyData;
000006 6a00 LDR r0,[r0,#0x20] ; SendDummyData
;;;612 }
000008 4770 BX lr
;;;613
ENDP
00000a 0000 DCW 0x0000
|L27.12|
00000c 00000000 DCD ||.data||
AREA ||i.ResetVar_SendDummyData||, CODE, READONLY, ALIGN=2
ResetVar_SendDummyData PROC
;;;622 {
;;;623 SendDummyData = (u32)0;
000000 4802 LDR r0,|L28.12|
000002 2100 MOVS r1,#0
000004 6201 STR r1,[r0,#0x20] ; SendDummyData
;;;624
;;;625 return SendDummyData;
000006 6a00 LDR r0,[r0,#0x20] ; SendDummyData
;;;626 }
000008 4770 BX lr
;;;627
ENDP
00000a 0000 DCW 0x0000
|L28.12|
00000c 00000000 DCD ||.data||
AREA ||i.GetVar_AudioReplay||, CODE, READONLY, ALIGN=2
GetVar_AudioReplay PROC
;;;663 {
;;;664 return AudioReplay;
000000 4801 LDR r0,|L29.8|
000002 6980 LDR r0,[r0,#0x18] ; AudioReplay
;;;665 }
000004 4770 BX lr
;;;666
ENDP
000006 0000 DCW 0x0000
|L29.8|
000008 00000000 DCD ||.data||
AREA ||i.GetVar_AudioDataLength||, CODE, READONLY, ALIGN=2
GetVar_AudioDataLength PROC
;;;700 {
;;;701 return AudioDataLength;
000000 4801 LDR r0,|L30.8|
000002 68c0 LDR r0,[r0,#0xc] ; AudioDataLength
;;;702 }
000004 4770 BX lr
;;;703
ENDP
000006 0000 DCW 0x0000
|L30.8|
000008 00000000 DCD ||.data||
AREA ||i.GetVar_i2saudiofreq||, CODE, READONLY, ALIGN=2
GetVar_i2saudiofreq PROC
;;;712 {
;;;713 return dacaudiofreq;
000000 4801 LDR r0,|L31.8|
000002 8880 LDRH r0,[r0,#4] ; dacaudiofreq
;;;714 }
000004 4770 BX lr
;;;715
ENDP
000006 0000 DCW 0x0000
|L31.8|
000008 00000000 DCD ||.data||
AREA ||i.Media_ReadHalfWord||, CODE, READONLY, ALIGN=2
Media_ReadHalfWord PROC
;;;904 u16 Media_ReadHalfWord(u32 Offset)
;;;905 {
000000 b508 PUSH {r3,lr}
;;;906 vu16 tmp;
;;;907 Offset <<= 1;
;;;908
;;;909 Media_BufferRead((u8*)(&tmp), AudioFileAddress + Offset, 2);
000002 4905 LDR r1,|L32.24|
000004 6889 LDR r1,[r1,#8] ; AudioFileAddress
000006 2202 MOVS r2,#2
000008 eb010140 ADD r1,r1,r0,LSL #1
00000c 4668 MOV r0,sp
00000e f7fffffe BL SPI_FLASH_BufferRead
;;;910
;;;911 /* Return the read value */
;;;912 return tmp;
000012 f8bd0000 LDRH r0,[sp,#0]
;;;913 }
000016 bd08 POP {r3,pc}
;;;914
ENDP
|L32.24|
000018 00000000 DCD ||.data||
AREA ||i.DAC_CODEC_DataTransfer||, CODE, READONLY, ALIGN=2
DAC_CODEC_DataTransfer PROC
;;;969 void DAC_CODEC_DataTransfer(void)
;;;970 {
000000 b510 PUSH {r4,lr}
;;;971 static int data = 0;
;;;972
;;;973 DAC_SetChannel1Data (DAC_Align_12b_L, data);
000002 4c0d LDR r4,|L33.56|
000004 6b60 LDR r0,[r4,#0x34] ; data@DAC_CODEC_DataTransfer_0
000006 b281 UXTH r1,r0
000008 2004 MOVS r0,#4
00000a f7fffffe BL DAC_SetChannel1Data
;;;974
;;;975 /* Increment the index */
;;;976 IncrementVar_AudioDataIndex(WAVE_Format.NumChannels << 1);
00000e 480b LDR r0,|L33.60|
000010 88c0 LDRH r0,[r0,#6] ; WAVE_Format
000012 0040 LSLS r0,r0,#1
000014 f7fffffe BL IncrementVar_AudioDataIndex
;;;977
;;;978 Media_BufferRead((u8*)(&data), AudioFileAddress + AudioDataIndex, 2);
000018 68a0 LDR r0,[r4,#8] ; AudioFileAddress
00001a 6961 LDR r1,[r4,#0x14] ; AudioDataIndex
00001c 2202 MOVS r2,#2
00001e 4401 ADD r1,r1,r0
000020 f1040034 ADD r0,r4,#0x34
000024 f7fffffe BL SPI_FLASH_BufferRead
;;;979
;;;980 /* Offset data for half of DAC area */
;;;981 data += 1 << 15;
000028 6b60 LDR r0,[r4,#0x34] ; data@DAC_CODEC_DataTransfer_0
00002a f5004000 ADD r0,r0,#0x8000
;;;982
;;;983 /* Check and update the stream playing status */
;;;984 DAC_CODEC_UpdateStatus();
00002e 6360 STR r0,[r4,#0x34] ; data@DAC_CODEC_DataTransfer_0
000030 e8bd4010 POP {r4,lr}
000034 f7ffbffe B.W DAC_CODEC_UpdateStatus
;;;985 }
;;;986
ENDP
|L33.56|
000038 00000000 DCD ||.data||
|L33.60|
00003c 00000064 DCD ||.bss||+0x64
AREA ||i.DAC_Config||, CODE, READONLY, ALIGN=2
DAC_Config PROC
000000 b530 PUSH {r4,r5,lr}
000002 2101 MOVS r1,#1
000004 b08b SUB sp,sp,#0x2c
000006 0748 LSLS r0,r1,#29
000008 f7fffffe BL RCC_APB1PeriphClockCmd
00000c a807 ADD r0,sp,#0x1c
00000e f7fffffe BL DAC_StructInit
000012 2400 MOVS r4,#0
000014 2002 MOVS r0,#2
000016 900a STR r0,[sp,#0x28]
000018 9407 STR r4,[sp,#0x1c]
00001a a907 ADD r1,sp,#0x1c
00001c 9408 STR r4,[sp,#0x20]
00001e 4620 MOV r0,r4
000020 f7fffffe BL DAC_Init
000024 2101 MOVS r1,#1
000026 2000 MOVS r0,#0
000028 f7fffffe BL DAC_Cmd
00002c 2101 MOVS r1,#1
00002e 4608 MOV r0,r1
000030 f7fffffe BL RCC_APB1PeriphClockCmd
000034 4668 MOV r0,sp
000036 f7fffffe BL TIM_OCStructInit
00003a 480f LDR r0,|L34.120|
00003c f8ad4010 STRH r4,[sp,#0x10]
000040 88c0 LDRH r0,[r0,#6] ; TIM2ARRValue
000042 f8ad0014 STRH r0,[sp,#0x14]
000046 f04f4580 MOV r5,#0x40000000
00004a f8ad4016 STRH r4,[sp,#0x16]
00004e f8ad4012 STRH r4,[sp,#0x12]
000052 a904 ADD r1,sp,#0x10
000054 4628 MOV r0,r5
000056 f7fffffe BL TIM_TimeBaseInit
00005a f8ad4000 STRH r4,[sp,#0]
00005e 2001 MOVS r0,#1
000060 f8ad0002 STRH r0,[sp,#2]
000064 f8ad4004 STRH r4,[sp,#4]
000068 f8ad4006 STRH r4,[sp,#6]
00006c 4669 MOV r1,sp
00006e 4628 MOV r0,r5
000070 f7fffffe BL TIM_OC1Init
000074 b00b ADD sp,sp,#0x2c
000076 bd30 POP {r4,r5,pc}
ENDP
|L34.120|
000078 00000000 DCD ||.data||
AREA ||.data||, DATA, ALIGN=2
HeaderTabIndex
000000 00 DCB 0x00
CurrentVolume
000001 18 DCB 0x18
WaveFileStatus
000002 0100 DCB 0x01,0x00
dacaudiofreq
000004 1f40 DCW 0x1f40
TIM2ARRValue
000006 0000 DCW 0x0000
AudioFileAddress
000008 00000000 DCD 0x00000000
AudioDataLength
00000c 00000000 DCD 0x00000000
DataStartAddr
000010 00000000 DCD 0x00000000
AudioDataIndex
000014 00000000 DCD 0x00000000
AudioReplay
000018 0000ffff DCD 0x0000ffff
AudioReplayCount
00001c 0000ffff DCD 0x0000ffff
SendDummyData
000020 00000000 DCD 0x00000000
AudioPlayStatus
000024 00000000 DCD 0x00000000
errorcode
000028 000000ff DCD 0x000000ff
monovar
00002c 00000000 DCD 0x00000000
tmpvar
000030 00000000 DCD 0x00000000
||data@DAC_CODEC_DataTransfer_0||
000034 00000000 DCD 0x00000000
AREA ||.bss||, DATA, NOINIT, ALIGN=2
AudioFileHeader
% 100
WAVE_Format
% 24
AREA |area_number.37|, DATA, NOINIT, ALIGN=0
EXPORTAS |area_number.37|, ||.bss||
AudioDataBuffer
% 32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -