📄 spi01.txt
字号:
;;;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 + -