📄 usbout.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\usbout.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
RdPktEp3_CheckSum PROC
;;;142 void RdPktEp3_CheckSum(U8 *buf,int num)
;;;143 {
000000 e3a02000 MOV r2,#0
;;;144 int i;
;;;145
;;;146 for(i=0;i<num;i++)
|L1.4|
000004 e1520001 CMP r2,r1
000008 aa00000c BGE |L1.64|
00000c ea000001 B |L1.24|
|L1.16|
000010 e2822001 ADD r2,r2,#1
000014 eafffffa B |L1.4|
;;;147 {
;;;148 buf[i]=(U8)rEP3_FIFO;
|L1.24|
000018 e59f3170 LDR r3,|L1.400|
00001c e5d331cc LDRB r3,[r3,#0x1cc]
000020 e7c03002 STRB r3,[r0,r2]
;;;149 checkSum+=buf[i];
000024 e7d03002 LDRB r3,[r0,r2]
000028 e59fc164 LDR r12,|L1.404|
00002c e1dcc0b0 LDRH r12,[r12,#0] ; checkSum
000030 e083300c ADD r3,r3,r12
000034 e59fc158 LDR r12,|L1.404|
000038 e1cc30b0 STRH r3,[r12,#0] ; checkSum
;;;150
;;;151 }
00003c eafffff3 B |L1.16|
;;;152 }
|L1.64|
000040 e12fff1e BX lr
ENDP
Ep3Handler PROC
;;;56 void Ep3Handler(void)
;;;57 {
000044 e92d4038 STMFD sp!,{r3-r5,lr}
;;;58 U8 out_csr3;
;;;59 int fifoCnt;
;;;60 rINDEX_REG=3;
000048 e3a00003 MOV r0,#3
00004c e59f113c LDR r1,|L1.400|
000050 e5c10178 STRB r0,[r1,#0x178]
;;;61
;;;62
;;;63 out_csr3=rOUT_CSR1_REG;
000054 e1c10000 BIC r0,r1,r0
000058 e5d00190 LDRB r0,[r0,#0x190]
00005c e1a04000 MOV r4,r0
;;;64
;;;65 DbgPrintf("<3:%x]",out_csr3);
000060 e1a01004 MOV r1,r4
000064 e28f0f4b ADR r0,|L1.408|
000068 ebfffffe BL DbgPrintf
;;;66
;;;67 if(out_csr3 & EPO_OUT_PKT_READY)
00006c e3140001 TST r4,#1
000070 0a00003d BEQ |L1.364|
;;;68 {
;;;69
;;;70 fifoCnt=rOUT_FIFO_CNT1_REG;
000074 e59f0114 LDR r0,|L1.400|
000078 e5d05198 LDRB r5,[r0,#0x198]
;;;71 #if 0
;;;72 RdPktEp3(ep3Buf,fifoCnt);
;;;73 PrintEpoPkt(ep3Buf,fifoCnt);
;;;74 #else
;;;75
;;;76 if(downloadFileSize==0)
00007c e59f011c LDR r0,|L1.416|
000080 e5900000 LDR r0,[r0,#0] ; downloadFileSize
000084 e3500000 CMP r0,#0
000088 1a00002a BNE |L1.312|
;;;77 {
;;;78 RdPktEp3((U8 *)downPt,8);
00008c e3a01008 MOV r1,#8
000090 e59f010c LDR r0,|L1.420|
000094 e5900000 LDR r0,[r0,#0] ; downPt
000098 ebfffffe BL RdPktEp3
;;;79 #if 1
;;;80 downloadAddress_u=tempdownloadAddress;
00009c e59f0104 LDR r0,|L1.424|
0000a0 e5900000 LDR r0,[r0,#0] ; tempdownloadAddress
0000a4 e59f1100 LDR r1,|L1.428|
0000a8 e5810000 STR r0,[r1,#0] ; downloadAddress_u
;;;81 #else
;;;82 downloadAddress_u=
;;;83 *((U8 *)(downPt+0))+
;;;84 (*((U8 *)(downPt+1))<<8)+
;;;85 (*((U8 *)(downPt+2))<<16)+
;;;86 (*((U8 *)(downPt+3))<<24);
;;;87 #endif
;;;88 downloadFileSize=
0000ac e59f00f0 LDR r0,|L1.420|
0000b0 e5900000 LDR r0,[r0,#0] ; downPt
0000b4 e5d00004 LDRB r0,[r0,#4]
0000b8 e59f10e4 LDR r1,|L1.420|
0000bc e5911000 LDR r1,[r1,#0] ; downPt
0000c0 e5d11005 LDRB r1,[r1,#5]
0000c4 e0800401 ADD r0,r0,r1,LSL #8
0000c8 e59f10d4 LDR r1,|L1.420|
0000cc e5911000 LDR r1,[r1,#0] ; downPt
0000d0 e5d11006 LDRB r1,[r1,#6]
0000d4 e0800801 ADD r0,r0,r1,LSL #16
0000d8 e59f10c4 LDR r1,|L1.420|
0000dc e5911000 LDR r1,[r1,#0] ; downPt
0000e0 e5d11007 LDRB r1,[r1,#7]
0000e4 e0800c01 ADD r0,r0,r1,LSL #24
0000e8 e59f10b0 LDR r1,|L1.416|
0000ec e5810000 STR r0,[r1,#0] ; downloadFileSize
;;;89 *((U8 *)(downPt+4))+
;;;90 (*((U8 *)(downPt+5))<<8)+
;;;91 (*((U8 *)(downPt+6))<<16)+
;;;92 (*((U8 *)(downPt+7))<<24);
;;;93 checkSum=0;
0000f0 e3a00000 MOV r0,#0
0000f4 e59f1098 LDR r1,|L1.404|
0000f8 e1c100b0 STRH r0,[r1,#0] ; checkSum
;;;94 downPt=(U8 *)downloadAddress_u;
0000fc e59f00a8 LDR r0,|L1.428|
000100 e5900000 LDR r0,[r0,#0] ; downloadAddress_u
000104 e59f1098 LDR r1,|L1.420|
000108 e5810000 STR r0,[r1,#0] ; downPt
;;;95
;;;96 RdPktEp3_CheckSum((U8 *)downPt,fifoCnt-8); //The first 8-bytes are deleted.
00010c e2451008 SUB r1,r5,#8
000110 e59f008c LDR r0,|L1.420|
000114 e5900000 LDR r0,[r0,#0] ; downPt
000118 ebfffffe BL RdPktEp3_CheckSum
;;;97 downPt+=fifoCnt-8;
00011c e59f0080 LDR r0,|L1.420|
000120 e5900000 LDR r0,[r0,#0] ; downPt
000124 e0800005 ADD r0,r0,r5
000128 e2400008 SUB r0,r0,#8
00012c e59f1070 LDR r1,|L1.420|
000130 e5810000 STR r0,[r1,#0] ; downPt
000134 ea000008 B |L1.348|
;;;98
;;;99 #if USBDMA
;;;100 //CLR_EP3_OUT_PKT_READY() is not executed.
;;;101 //So, USBD may generate NAK until DMA2 is configured for USB_EP3;
;;;102 rINTMSK|=BIT_USBD; //for debug
;;;103 return;
;;;104 #endif
;;;105 }
;;;106 else
;;;107 {
;;;108 #if USBDMA
;;;109 Uart_Printf("<ERROR>");
;;;110 #endif
;;;111 RdPktEp3_CheckSum((U8 *)downPt,fifoCnt);
|L1.312|
000138 e1a01005 MOV r1,r5
00013c e59f0060 LDR r0,|L1.420|
000140 e5900000 LDR r0,[r0,#0] ; downPt
000144 ebfffffe BL RdPktEp3_CheckSum
;;;112 downPt+=fifoCnt; //fifoCnt=64
000148 e59f0054 LDR r0,|L1.420|
00014c e5900000 LDR r0,[r0,#0] ; downPt
000150 e0800005 ADD r0,r0,r5
000154 e59f1048 LDR r1,|L1.420|
000158 e5810000 STR r0,[r1,#0] ; downPt
;;;113 }
;;;114 #endif
;;;115
;;;116 CLR_EP3_OUT_PKT_READY();
|L1.348|
00015c e3c400b1 BIC r0,r4,#0xb1
000160 e59f1028 LDR r1,|L1.400|
000164 e5c10190 STRB r0,[r1,#0x190]
;;;117 return;
;;;118 }
;;;119
;;;120
;;;121 //I think that EPO_SENT_STALL will not be set to 1.
;;;122 if(out_csr3 & EPO_SENT_STALL)
;;;123 {
;;;124 DbgPrintf("[STALL]");
;;;125 CLR_EP3_SENT_STALL();
;;;126 return;
;;;127 }
;;;128 }
|L1.360|
000168 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.364|
00016c e3140040 TST r4,#0x40 ;122
000170 0a000005 BEQ |L1.396| ;122
000174 e28f0034 ADR r0,|L1.432| ;124
000178 ebfffffe BL DbgPrintf ;124
00017c e3c400f0 BIC r0,r4,#0xf0 ;125
000180 e59f1008 LDR r1,|L1.400| ;125
000184 e5c10190 STRB r0,[r1,#0x190] ;125
000188 eafffff6 B |L1.360| ;126
|L1.396|
00018c eafffff5 B |L1.360|
|L1.400|
000190 44a00000 DCD 0x44a00000
|L1.404|
000194 00000000 DCD checkSum
|L1.408|
000198 253a333c DCB "<3:%"
00019c 00005d78 DCB "x]\0\0"
|L1.416|
0001a0 00000000 DCD downloadFileSize
|L1.420|
0001a4 00000000 DCD downPt
|L1.424|
0001a8 00000000 DCD tempdownloadAddress
|L1.428|
0001ac 00000000 DCD downloadAddress_u
|L1.432|
0001b0 4154535b DCB "[STA"
0001b4 005d4c4c DCB "LL]\0"
ENDP
PrintEpoPkt PROC
;;;132 void PrintEpoPkt(U8 *pt,int cnt)
;;;133 {
0001b8 e92d4070 STMFD sp!,{r4-r6,lr}
0001bc e1a06000 MOV r6,r0
0001c0 e1a05001 MOV r5,r1
;;;134 int i;
;;;135 DbgPrintf("[BOUT:%d:",cnt);
0001c4 e1a01005 MOV r1,r5
0001c8 e28f0034 ADR r0,|L1.516|
0001cc ebfffffe BL DbgPrintf
;;;136 for(i=0;i<cnt;i++)
0001d0 e3a04000 MOV r4,#0
|L1.468|
0001d4 e1540005 CMP r4,r5
0001d8 aa000006 BGE |L1.504|
0001dc ea000001 B |L1.488|
|L1.480|
0001e0 e2844001 ADD r4,r4,#1
0001e4 eafffffa B |L1.468|
;;;137 DbgPrintf("%x,",pt[i]);
|L1.488|
0001e8 e7d61004 LDRB r1,[r6,r4]
0001ec e28f001c ADR r0,|L1.528|
0001f0 ebfffffe BL DbgPrintf
0001f4 eafffff9 B |L1.480|
;;;138 DbgPrintf("]");
|L1.504|
0001f8 e28f0014 ADR r0,|L1.532|
0001fc ebfffffe BL DbgPrintf
;;;139 }
000200 e8bd8070 LDMFD sp!,{r4-r6,pc}
|L1.516|
000204 554f425b DCB "[BOU"
000208 64253a54 DCB "T:%d"
00020c 0000003a DCB ":\0\0\0"
|L1.528|
000210 002c7825 DCB "%x,\0"
|L1.532|
000214 0000005d DCB "]\0\0\0"
ENDP
IsrDma2 PROC
;;;156 void __irq IsrDma2(void)
;;;157 {
000218 e92d507f STMFD sp!,{r0-r6,r12,lr}
00021c e24dd004 SUB sp,sp,#4
;;;158 U8 out_csr3;
;;;159 U32 nextTotalDmaCount;
;;;160 U8 saveIndexReg=rINDEX_REG;
000220 e51f0098 LDR r0,|L1.400|
000224 e5d00178 LDRB r0,[r0,#0x178]
000228 e1a06000 MOV r6,r0
;;;161
;;;162 rINDEX_REG=3;
00022c e3a00003 MOV r0,#3
000230 e51f10a8 LDR r1,|L1.400|
000234 e5c10178 STRB r0,[r1,#0x178]
;;;163 out_csr3=rOUT_CSR1_REG;
000238 e1c10000 BIC r0,r1,r0
00023c e5d00190 LDRB r0,[r0,#0x190]
000240 e1a05000 MOV r5,r0
;;;164
;;;165 rSUBSRCPND|=BIT_SUB_DMA2;
000244 e2410648 SUB r0,r1,#0x4800000
000248 e5900018 LDR r0,[r0,#0x18]
00024c e3800680 ORR r0,r0,#0x8000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -