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

📄 spi01.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;371    	tx1Str=(char *)spi1TxStr;
000c34  e51f0710          LDR      r0,|L1.1324|
000c38  e5907000          LDR      r7,[r0,#0]  ; spi1TxStr
;;;372    	rx1Str=(char *)spi1RxStr;
000c3c  e51f071c          LDR      r0,|L1.1320|
000c40  e5905000          LDR      r5,[r0,#0]  ; spi1RxStr
;;;373    
;;;374    	rSPPRE0=0xff;	//if PCLK=50Mhz,SPICLK=12.5Mhz
000c44  e3a000ff          MOV      r0,#0xff
000c48  e51f1a58          LDR      r1,|L1.504|
000c4c  e581000c          STR      r0,[r1,#0xc]
;;;375    		rSPPIN0=(0<<2)|(1<<1)|(0<<0);//dis-ENMUL,SBO,release
000c50  e3a00002          MOV      r0,#2
000c54  e1c11000          BIC      r1,r1,r0
000c58  e5810008          STR      r0,[r1,#8]
;;;376       #if FORMAT0_A
;;;377    		rSPCON0=(1<<5)|(0<<4)|(0<<3)|(1<<2)|(0<<1)|(0<<0);//SPI0 :int,dis-SCK,slave,low,A,normal
000c5c  e3a00024          MOV      r0,#0x24
000c60  e1c11000          BIC      r1,r1,r0
000c64  e5810000          STR      r0,[r1,#0]
;;;378       #else
;;;379    		rSPCON0=(1<<5)|(0<<4)|(0<<3)|(1<<2)|(1<<1)|(0<<0);//SPI0 :int,dis-SCK,slave,low,B,normal
;;;380       #endif
;;;381       
;;;382       Uart_Printf("Slave setting end...Press enter\n");
000c68  e24f0f9d          ADR      r0,|L1.2556|
000c6c  ebfffffe          BL       _printf
;;;383       Uart_Getch();
000c70  ebfffffe          BL       Uart_Getch
;;;384       
;;;385    	rSPPRE1=0xff;	//if PCLK=50Mhz,SPICLK=12.5Mhz
000c74  e3a000ff          MOV      r0,#0xff
000c78  e51f1a88          LDR      r1,|L1.504|
000c7c  e581002c          STR      r0,[r1,#0x2c]
;;;386    	rSPPIN1=(0<<2)|(1<<1)|(0<<0);//dis-ENMUL,SBO,release
000c80  e3a00002          MOV      r0,#2
000c84  e1c11000          BIC      r1,r1,r0
000c88  e5810028          STR      r0,[r1,#0x28]
;;;387    	
;;;388    	#if FORMAT1_A
;;;389    	rSPCON1=(1<<5)|(1<<4)|(1<<3)|(1<<2)|(0<<1)|(0<<0);//SPI1 :int,en-SCK,master,low,A,normal
000c8c  e3a0003c          MOV      r0,#0x3c
000c90  e1c11000          BIC      r1,r1,r0
000c94  e5810020          STR      r0,[r1,#0x20]
;;;390    	#else
;;;391    	rSPCON1=(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(0<<0);//SPI1 :int,en-SCK,master,low,B,normal
;;;392    	#endif
;;;393    	
;;;394    	//Master_nSS_Con(0); // Activate nSS 
;;;395    	Uart_Printf("nSS is asserted\n");
000c98  e24f0fa0          ADR      r0,|L1.2592|
000c9c  ebfffffe          BL       _printf
;;;396    	rGPDAT&=~(1<<8);
000ca0  e51f0774          LDR      r0,|L1.1332|
000ca4  e590000c          LDR      r0,[r0,#0xc]
000ca8  e3c00f40          BIC      r0,r0,#0x100
000cac  e51f1780          LDR      r1,|L1.1332|
000cb0  e581000c          STR      r0,[r1,#0xc]
;;;397    	rINTMSK&=~(BIT_VLX_SPI1);
000cb4  e2410646          SUB      r0,r1,#0x4600000
000cb8  e5900008          LDR      r0,[r0,#8]
000cbc  e3c00580          BIC      r0,r0,#0x20000000
000cc0  e2411646          SUB      r1,r1,#0x4600000
000cc4  e5810008          STR      r0,[r1,#8]
;;;398    	rINTSUBMSK&=~(BIT_SUB_SPI1);
000cc8  e1a00001          MOV      r0,r1
000ccc  e590001c          LDR      r0,[r0,#0x1c]
000cd0  e3c00880          BIC      r0,r0,#0x800000
000cd4  e581001c          STR      r0,[r1,#0x1c]
;;;399    	rINTMSK&=~(BIT_SPI0);
000cd8  e1a00001          MOV      r0,r1
000cdc  e5900008          LDR      r0,[r0,#8]
000ce0  e3c00840          BIC      r0,r0,#0x400000
000ce4  e5810008          STR      r0,[r1,#8]
;;;400    		
;;;401    	while((endSpi1Tx==0)||(end0SpiTx==0))
000ce8  e1a00000          NOP      
                  |L1.3308|
000cec  e51f07c4          LDR      r0,|L1.1328|
000cf0  e5900000          LDR      r0,[r0,#0]  ; endSpi1Tx
000cf4  e3500000          CMP      r0,#0
000cf8  0a000003          BEQ      |L1.3340|
000cfc  e51f0b00          LDR      r0,|L1.516|
000d00  e5900000          LDR      r0,[r0,#0]  ; end0SpiTx
000d04  e3500000          CMP      r0,#0
000d08  1a000004          BNE      |L1.3360|
;;;402    		{
;;;403    		//Uart_Printf("#");
;;;404    		if(Uart_GetKey())
                  |L1.3340|
000d0c  ebfffffe          BL       Uart_GetKey
000d10  e3500000          CMP      r0,#0
000d14  0a000000          BEQ      |L1.3356|
;;;405    			return;
;;;406    		}
;;;407    	
;;;408    	Master_nSS_Con(1);
;;;409    	
;;;410    	Uart_Printf("ISR0 count :%d, ISR1 count :%d\n\n",c0,c1);
;;;411    	
;;;412       #if FORMAT0_A
;;;413    	rSPCON0=(0<<5)|(0<<4)|(1<<3)|(1<<2)|(0<<1)|(0<<0);//Poll,dis-SCK,master,low,A,normal
;;;414    	rSPCON1=(0<<5)|(0<<4)|(0<<3)|(1<<2)|(0<<1)|(0<<0);//Poll,dis-SCK,slave,low,A,normal
;;;415       #else
;;;416    	rSPCON0=(0<<5)|(0<<4)|(1<<3)|(1<<2)|(1<<1)|(0<<0);//Poll,dis-SCK,master,low,B,normal
;;;417    	rSPCON1=(0<<5)|(0<<4)|(0<<3)|(1<<2)|(1<<1)|(0<<0);//Poll,dis-SCK,slave,low,B,normal
;;;418       #endif
;;;419    	
;;;420    	*spi0RxStr='\0';//attach End of String(Null)
;;;421    	*spi1RxStr='\0';//attach End of String(Null)
;;;422    	Uart_Printf("SPI0Tx Strings:%s\n",tx0Str);
;;;423    	Uart_Printf("SPI0Rx Strings:%s\n",rx0Str+1);//remove first dummy data
;;;424    
;;;425    	Uart_Printf("SPI1Tx Strings:%s\n",tx1Str);
;;;426    	Uart_Printf("SPI1Rx Strings:%s\n",rx1Str+1);//remove first dummy data
;;;427    
;;;428    	if(strcmp((rx1Str+1),tx0Str)==0)
;;;429    		Uart_Printf("SPI0 test O.K !!!\n");
;;;430    	if(strcmp((rx0Str+1),tx1Str)==0)
;;;431    		Uart_Printf("SPI1 test O.K !!!\n");
;;;432    	else 
;;;433    		Uart_Printf("ERROR!!!\n");
;;;434    
;;;435    	SPI0_Port_Return();
;;;436    }
                  |L1.3352|
000d18  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.3356|
000d1c  eafffff2          B        |L1.3308|             ;406
                  |L1.3360|
000d20  e3a00001          MOV      r0,#1                 ;408
000d24  ebfffffe          BL       Master_nSS_Con        ;408
000d28  e51f080c          LDR      r0,|L1.1316|          ;410
000d2c  e5902000          LDR      r2,[r0,#0]            ;410  ; c1
000d30  e51f0b74          LDR      r0,|L1.452|           ;410
000d34  e5901000          LDR      r1,[r0,#0]            ;410  ; c0
000d38  e24f0f8d          ADR      r0,|L1.2828|          ;410
000d3c  ebfffffe          BL       _printf               ;410
000d40  e3a0000c          MOV      r0,#0xc               ;413
000d44  e51f1b54          LDR      r1,|L1.504|           ;413
000d48  e5810000          STR      r0,[r1,#0]            ;413
000d4c  e3a00004          MOV      r0,#4                 ;414
000d50  e1c11000          BIC      r1,r1,r0              ;414
000d54  e5810020          STR      r0,[r1,#0x20]         ;414
000d58  e3a00000          MOV      r0,#0                 ;420
000d5c  e51f1b68          LDR      r1,|L1.508|           ;420
000d60  e5911000          LDR      r1,[r1,#0]            ;420  ; spi0RxStr
000d64  e5c10000          STRB     r0,[r1,#0]            ;420
000d68  e3a00000          MOV      r0,#0                 ;421
000d6c  e51f184c          LDR      r1,|L1.1320|          ;421
000d70  e5911000          LDR      r1,[r1,#0]            ;421  ; spi1RxStr
000d74  e5c10000          STRB     r0,[r1,#0]            ;421
000d78  e1a01006          MOV      r1,r6                 ;422
000d7c  e24f0f95          ADR      r0,|L1.2864|          ;422
000d80  ebfffffe          BL       _printf               ;422
000d84  e2841001          ADD      r1,r4,#1              ;423
000d88  e24f0f93          ADR      r0,|L1.2884|          ;423
000d8c  ebfffffe          BL       _printf               ;423
000d90  e1a01007          MOV      r1,r7                 ;425
000d94  e24f0f91          ADR      r0,|L1.2904|          ;425
000d98  ebfffffe          BL       _printf               ;425
000d9c  e2851001          ADD      r1,r5,#1              ;426
000da0  e24f0f8f          ADR      r0,|L1.2924|          ;426
000da4  ebfffffe          BL       _printf               ;426
000da8  e1a01006          MOV      r1,r6                 ;428
000dac  e2850001          ADD      r0,r5,#1              ;428
000db0  ebfffffe          BL       strcmp                ;428
000db4  e3500000          CMP      r0,#0                 ;428
000db8  1a000001          BNE      |L1.3524|             ;428
000dbc  e24f0f91          ADR      r0,|L1.2944|          ;429
000dc0  ebfffffe          BL       _printf               ;429
                  |L1.3524|
000dc4  e1a01007          MOV      r1,r7                 ;430
000dc8  e2840001          ADD      r0,r4,#1              ;430
000dcc  ebfffffe          BL       strcmp                ;430
000dd0  e3500000          CMP      r0,#0                 ;430
000dd4  1a000002          BNE      |L1.3556|             ;430
000dd8  e24f0f93          ADR      r0,|L1.2964|          ;431
000ddc  ebfffffe          BL       _printf               ;431
000de0  ea000001          B        |L1.3564|             ;431
                  |L1.3556|
000de4  e51f0244          LDR      r0,|L1.2984|          ;433
000de8  ebfffffe          BL       _printf               ;433
                  |L1.3564|
000dec  ebfffffe          BL       SPI0_Port_Return      ;435
000df0  eaffffc8          B        |L1.3352|
                  |L1.3572|
000df4  4950535b          DCB      "[SPI"
000df8  6c532830          DCB      "0(Sl"
000dfc  29657661          DCB      "ave)"
000e00  5053202c          DCB      ", SP"
000e04  4d283149          DCB      "I1(M"
000e08  65747361          DCB      "aste"
000e0c  49202972          DCB      "r) I"
000e10  7265746e          DCB      "nter"
000e14  74707572          DCB      "rupt"
000e18  2f785220          DCB      " Rx/"
000e1c  74207854          DCB      "Tx t"
000e20  5d747365          DCB      "est]"
000e24  0000000a          DCB      "\n\0\0\0"
                  |L1.3624|
000e28  6e6e6f43          DCB      "Conn"
000e2c  20746365          DCB      "ect "
000e30  3a36334a          DCB      "J36:"
000e34  2d312820          DCB      " (1-"
000e38  61202932          DCB      "2) a"
000e3c  4320646e          DCB      "nd C"
000e40  31324e4f          DCB      "ON21"
000e44  3128203a          DCB      ": (1"
000e48  2930322d          DCB      "-20)"
000e4c  2d32282c          DCB      ",(2-"
000e50  2c293931          DCB      "19),"
000e54  312d3328          DCB      "(3-1"
000e58  282c2938          DCB      "8),("
000e5c  37312d34          DCB      "4-17"
000e60  00000a29          DCB      ")\n\0\0"
                          ENDP

                  Dma1Tx_Int PROC
;;;928    void __irq Dma1Tx_Int(void)
;;;929    {
000e64  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;930    	Uart_Printf("Entered ISR_1\n");
000e68  e28f00e4          ADR      r0,|L1.3924|
000e6c  ebfffffe          BL       _printf
;;;931    	rINTSUBMSK|=(BIT_SUB_DMA1|BIT_SUB_DMA3);
000e70  e51f0cb8          LDR      r0,|L1.448|
000e74  e590001c          LDR      r0,[r0,#0x1c]
000e78  e3800550          ORR      r0,r0,#0x14000000
000e7c  e51f1cc4          LDR      r1,|L1.448|
000e80  e581001c          STR      r0,[r1,#0x1c]
;;;932    	rINTMSK|=(BIT_DMA);
000e84  e1a00001          MOV      r0,r1
000e88  e5900008          LDR      r0,[r0,#8]
000e8c  e3800940          ORR      r0,r0,#0x100000
000e90  e5810008          STR      r0,[r1,#8]
;;;933    	if(rSUBSRCPND&(1<<26))
000e94  e1a00001          MOV      r0,r1
000e98  e5900018          LDR      r0,[r0,#0x18]
000e9c  e3100640          TST      r0,#0x4000000
000ea0  0a000009          BEQ      |L1.3788|
;;;934    		{
;;;935    		rx_dma1Done=1;
000ea4  e3a00001          MOV      r0,#1
000ea8  e59f10b4          LDR      r1,|L1.3940|
000eac  e5810000          STR      r0,[r1,#0]  ; rx_dma1Done
;;;936    		tx_dma1Done=1;
000eb0  e3a00001          MOV      r0,#1
000eb4  e59f10ac          LDR      r1,|L1.3944|
000eb8  e5810000          STR      r0,[r1,#0]  ; tx_dma1Done
;;;937    		rSUBSRCPND=BIT_SUB_DMA1;
000ebc  e3a00640          MOV      r0,#0x4000000
000ec0  e51f1d08          LDR      r1,|L1.448|
000ec4  e5810018          STR      r0,[r1,#0x18]
000ec8  ea00000f          B        |L1.3852|
;;;938    	    //Uart_Printf("##Tx DMA1 is done##\n");
;;;939    		}
;;;940    	else if(rSUBSRCPND&(1<<28))
                  |L1.3788|
000ecc  e51f0d14          LDR      r0,|L1.448|
000ed0  e5900018          LDR      r0,[r0,#0x18]
000ed4  e3100540          TST      r0,#0x10000000
000ed8  0a000009          BEQ      |L1.3844|
;;;941    		{
;;;942    		rx_dma3Done=1;
000edc  e3a00001          MOV      r0,#1
000ee0  e59f1084          LDR      r1,|L1.3948|
000ee4  e5810000          STR      r0,[r1,#0]  ; rx_dma3Done
;;;943    		tx_dma3Done=1;
000ee8  e3a00001          MOV      r0,#1
000eec  e59f107c          LDR      r1,|L1.3952|
000ef0  e5810000          STR      r0,[r1,#0]  ; tx_dma3Done
;;;944    		rSUBSRCPND=BIT_SUB_DMA3;
000ef4  e3a00540          MOV      r0,#0x10000000
000ef8  e51f1d40          LDR      r1,|L1.448|
000efc  e5810018          STR      r0,[r1,#0x18]
000f00  ea000001          B        |L1.3852|
;;;945    		//Uart_Printf("##Rx DMA3 is done##\n");
;;;946    		}
;;;947    	else
;;;948        	{
;;;949        	Uart_Printf("DMA SUB INT Fail\n");
                  |L1.3844|
000f04  e28f0068          ADR      r0,|L1.3956|
000f08  ebfffffe          BL       _printf
;;;950        	}
;;;951    	ClearPending(BIT_DMA);
                  |L1.3852|
000f0c  e3a00940          MOV      r0,#0x100000
000f10  e51f1d58          LDR      r1,|L1.448|
000f14  e5810000          STR      r0,[r1,#0]
000f18  e1c10000          BIC      r0,r1,r0
000f1c  e5900010        

⌨️ 快捷键说明

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