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

📄 vs1003b.txt

📁 mp3量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -ovs1003b.o --depend=vs1003b.d --device=DARMP --apcs=interwork -O3 -IC:\Keil\ARM\INC\Philips --omf_browse=vs1003b.crf VS1003B.c]
                          ARM

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  VS1003B_SPI_Low PROC
000000  e59f0478          LDR      r0,|L1.1152|
000004  e3a01064          MOV      r1,#0x64
000008  e5c0100c          STRB     r1,[r0,#0xc]
00000c  e3a01030          MOV      r1,#0x30
000010  e5c01000          STRB     r1,[r0,#0]
000014  e12fff1e          BX       lr
                          ENDP

                  VS1003B_SPI_High PROC
000018  e59f0460          LDR      r0,|L1.1152|
00001c  e3a01006          MOV      r1,#6
000020  e5c0100c          STRB     r1,[r0,#0xc]
000024  e3a01030          MOV      r1,#0x30
000028  e5c01000          STRB     r1,[r0,#0]
00002c  e12fff1e          BX       lr
                          ENDP

                  VS1003B_WriteByte PROC
000030  e59f1448          LDR      r1,|L1.1152|
000034  e5c10008          STRB     r0,[r1,#8]
                  |L1.56|
000038  e5d10004          LDRB     r0,[r1,#4]
00003c  e3100080          TST      r0,#0x80
000040  0afffffc          BEQ      |L1.56|
000044  e5d10008          LDRB     r0,[r1,#8]
000048  e12fff1e          BX       lr
                          ENDP

                  VS1003B_ReadByte PROC
00004c  e59f042c          LDR      r0,|L1.1152|
000050  e3a010ff          MOV      r1,#0xff
000054  e5c01008          STRB     r1,[r0,#8]
                  |L1.88|
000058  e5d01004          LDRB     r1,[r0,#4]
00005c  e3110080          TST      r1,#0x80
000060  0afffffc          BEQ      |L1.88|
000064  e5d00008          LDRB     r0,[r0,#8]
000068  e12fff1e          BX       lr
                          ENDP

                  VS1003B_WriteCMD PROC
;;;122    {
;;;123    	VS1003B_XDCS_H();
00006c  e59f2410          LDR      r2,|L1.1156|
000070  e1a0c000          MOV      r12,r0                ;122
000074  e52de004          PUSH     {lr}                  ;122
000078  e5920014          LDR      r0,[r2,#0x14]
00007c  e1a03001          MOV      r3,r1                 ;122
000080  e3800401          ORR      r0,r0,#0x1000000
000084  e5820014          STR      r0,[r2,#0x14]
;;;124    	VS1003B_XCS_L();
000088  e592000c          LDR      r0,[r2,#0xc]
00008c  e3800080          ORR      r0,r0,#0x80
000090  e582000c          STR      r0,[r2,#0xc]
;;;125    	VS1003B_WriteByte(0x02);
000094  e3a00002          MOV      r0,#2
000098  ebfffffe          BL       VS1003B_WriteByte
;;;126    	VS1003B_WriteByte(addr);
00009c  e1a0000c          MOV      r0,r12
0000a0  ebfffffe          BL       VS1003B_WriteByte
;;;127    	VS1003B_WriteByte(dat>>8);
0000a4  e1a00423          LSR      r0,r3,#8
0000a8  ebfffffe          BL       VS1003B_WriteByte
;;;128    	VS1003B_WriteByte(dat);
0000ac  e20300ff          AND      r0,r3,#0xff
0000b0  ebfffffe          BL       VS1003B_WriteByte
;;;129    	VS1003B_XCS_H();
0000b4  e5920004          LDR      r0,[r2,#4]
0000b8  e3800080          ORR      r0,r0,#0x80
0000bc  e5820004          STR      r0,[r2,#4]
;;;130    }
0000c0  e49de004          POP      {lr}
0000c4  e12fff1e          BX       lr
;;;131    
                          ENDP

                  VS1003B_ReadCMD PROC
;;;135    	unsigned short temp;
;;;136    	VS1003B_XDCS_H();
0000c8  e59f23b4          LDR      r2,|L1.1156|
0000cc  e1a03000          MOV      r3,r0
0000d0  e52de004          PUSH     {lr}
0000d4  e5920014          LDR      r0,[r2,#0x14]
0000d8  e3800401          ORR      r0,r0,#0x1000000
0000dc  e5820014          STR      r0,[r2,#0x14]
;;;137    	VS1003B_XCS_L();
0000e0  e592000c          LDR      r0,[r2,#0xc]
0000e4  e3800080          ORR      r0,r0,#0x80
0000e8  e582000c          STR      r0,[r2,#0xc]
;;;138    	VS1003B_WriteByte(0x03);
0000ec  e3a00003          MOV      r0,#3
0000f0  ebfffffe          BL       VS1003B_WriteByte
;;;139    	VS1003B_WriteByte(addr);
0000f4  e1a00003          MOV      r0,r3
0000f8  ebfffffe          BL       VS1003B_WriteByte
;;;140    	temp = VS1003B_ReadByte();
0000fc  ebfffffe          BL       VS1003B_ReadByte
;;;141    	temp <<= 8;
000100  e3a01cff          MOV      r1,#0xff00
000104  e0013400          AND      r3,r1,r0,LSL #8
;;;142    	temp += VS1003B_ReadByte();
000108  ebfffffe          BL       VS1003B_ReadByte
;;;143    	VS1003B_XCS_H();
00010c  e5921004          LDR      r1,[r2,#4]
000110  e0800003          ADD      r0,r0,r3              ;142
000114  e3c00801          BIC      r0,r0,#0x10000        ;142
000118  e3811080          ORR      r1,r1,#0x80
00011c  e5821004          STR      r1,[r2,#4]
;;;144    	return temp;
000120  e49de004          POP      {lr}
;;;145    }
000124  e12fff1e          BX       lr
;;;146    
                          ENDP

                  VS1003B_NeedData PROC
000128  e59f0354          LDR      r0,|L1.1156|
00012c  e5900010          LDR      r0,[r0,#0x10]         ;0
000130  e2100402          ANDS     r0,r0,#0x2000000      ;0
000134  13a00001          MOVNE    r0,#1                 ;0
000138  e12fff1e          BX       lr                    ;0
                          ENDP

                  VS1003B_Fill2048Zero PROC
;;;148    void VS1003B_Fill2048Zero()
;;;149    {
00013c  e52de004          PUSH     {lr}
;;;150    	unsigned char i,j;
;;;151    	VS1003B_SPI_High();
000140  ebfffffe          BL       VS1003B_SPI_High
;;;152    	for(i=0;i<64;i++)
000144  e59fc338          LDR      r12,|L1.1156|
000148  e3a03000          MOV      r3,#0
                  |L1.332|
;;;153    	{
;;;154    		VS1003B_XDCS_L();
00014c  e59c001c          LDR      r0,[r12,#0x1c]
000150  e3800401          ORR      r0,r0,#0x1000000
000154  e58c001c          STR      r0,[r12,#0x1c]
                  |L1.344|
;;;155    		while(VS1003B_NeedData()==0);
000158  ebfffffe          BL       VS1003B_NeedData
00015c  e3500000          CMP      r0,#0
000160  0afffffc          BEQ      |L1.344|
;;;156    		for(j=0;j<32;j++)
000164  e3a02000          MOV      r2,#0
                  |L1.360|
;;;157    		{
;;;158    			VS1003B_WriteByte(0x00);
000168  e3a00000          MOV      r0,#0
00016c  ebfffffe          BL       VS1003B_WriteByte
000170  e2820001          ADD      r0,r2,#1              ;156
000174  e20020ff          AND      r2,r0,#0xff           ;156
000178  e3520020          CMP      r2,#0x20              ;156
00017c  3afffff9          BCC      |L1.360|
;;;159    		}
;;;160    		VS1003B_XDCS_H();
000180  e59c0014          LDR      r0,[r12,#0x14]
000184  e2831001          ADD      r1,r3,#1              ;152
000188  e3800401          ORR      r0,r0,#0x1000000
00018c  e58c0014          STR      r0,[r12,#0x14]
000190  e20130ff          AND      r3,r1,#0xff           ;152
000194  e3530040          CMP      r3,#0x40              ;152
000198  3affffeb          BCC      |L1.332|
;;;161    	}
;;;162    }
00019c  e49de004          POP      {lr}
0001a0  e12fff1e          BX       lr
;;;163    
                          ENDP

                  VS1003B_Write32B PROC
;;;165    void VS1003B_Write32B(unsigned char * buf)
;;;166    {
0001a4  e1a03000          MOV      r3,r0
;;;167    	unsigned char n = 32;
0001a8  e3a02020          MOV      r2,#0x20
0001ac  e52de004          PUSH     {lr}                  ;166
;;;168    	VS1003B_SPI_High();
0001b0  ebfffffe          BL       VS1003B_SPI_High
;;;169    	VS1003B_XDCS_L();
0001b4  e59fc2c8          LDR      r12,|L1.1156|
0001b8  e59c001c          LDR      r0,[r12,#0x1c]
0001bc  e3800401          ORR      r0,r0,#0x1000000
0001c0  e58c001c          STR      r0,[r12,#0x1c]
;;;170    	while(n--)
0001c4  ea000001          B        |L1.464|
                  |L1.456|
;;;171    	{
;;;172    		VS1003B_WriteByte(*buf++);
0001c8  e4d30001          LDRB     r0,[r3],#1
0001cc  ebfffffe          BL       VS1003B_WriteByte
                  |L1.464|
0001d0  e1b00002          MOVS     r0,r2                 ;170
0001d4  e2421001          SUB      r1,r2,#1              ;170
0001d8  e20120ff          AND      r2,r1,#0xff           ;170
0001dc  1afffff9          BNE      |L1.456|
;;;173    	}
;;;174    	VS1003B_XDCS_H();
0001e0  e59c0014          LDR      r0,[r12,#0x14]
0001e4  e3800401          ORR      r0,r0,#0x1000000
0001e8  e58c0014          STR      r0,[r12,#0x14]
;;;175    }
0001ec  e49de004          POP      {lr}
0001f0  e12fff1e          BX       lr
;;;176    
                          ENDP

                  VS1003B_SoftReset PROC
0001f4  e92d4010          PUSH     {r4,lr}               ;0
0001f8  ebfffffe          BL       VS1003B_SPI_High
0001fc  e59f1284          LDR      r1,|L1.1160|
000200  e3a00000          MOV      r0,#0                 ;0
000204  ebfffffe          BL       VS1003B_WriteCMD
000208  e8bd4010          POP      {r4,lr}               ;0
00020c  e3a00014          MOV      r0,#0x14              ;0
000210  eafffffe          B        soft_delay_ms
                          ENDP

                  VS1003B_Init PROC
;;;178    unsigned char VS1003B_Init(void)
;;;179    {
000214  e92d4070          PUSH     {r4-r6,lr}
;;;180    	unsigned char retry;
;;;181    #if 0
;;;182    	AT91PS_SPI pSPI      = AT91C_BASE_SPI;
;;;183    	AT91PS_PMC pPMC      = AT91C_BASE_PMC;
;;;184    #endif	
;;;185    	PORT_INI();			/* Prot Initialize */
000218  e59f026c          LDR      r0,|L1.1164|
00021c  e5901000          LDR      r1,[r0,#0]
000220  e3c11903          BIC      r1,r1,#0xc000
000224  e5801000          STR      r1,[r0,#0]
000228  e2404901          SUB      r4,r0,#0x4000
00022c  e5941008          LDR      r1,[r4,#8]
000230  e3811080          ORR      r1,r1,#0x80
000234  e5841008          STR      r1,[r4,#8]
000238  e5941004          LDR      r1,[r4,#4]
00023c  e3811080          ORR      r1,r1,#0x80
000240  e5841004          STR      r1,[r4,#4]
000244  e5901014          LDR      r1,[r0,#0x14]
000248  e3c11020          BIC      r1,r1,#0x20
00024c  e5801014          STR      r1,[r0,#0x14]
000250  e5941018          LDR      r1,[r4,#0x18]
000254  e3811401          ORR      r1,r1,#0x1000000
000258  e5841018          STR      r1,[r4,#0x18]
00025c  e5941014          LDR      r1,[r4,#0x14]
000260  e3811401          ORR      r1,r1,#0x1000000
000264  e5841014          STR      r1,[r4,#0x14]
000268  e5901000          LDR      r1,[r0,#0]
00026c  e3c110c0          BIC      r1,r1,#0xc0
000270  e5801000          STR      r1,[r0,#0]
000274  e5941008          LDR      r1,[r4,#8]
000278  e3811008          ORR      r1,r1,#8
00027c  e5841008          STR      r1,[r4,#8]
000280  e3a05008          MOV      r5,#8

⌨️ 快捷键说明

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