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

📄 smartcard.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;245          SCData = (u8)0xFF^(u8)0x10^(u8)SC_A2R.T[0]; 
000098  78b8              LDRB     r0,[r7,#2]  ; SC_A2R
00009a  f080f080          EOR      r0,r0,#0xef
00009e  f888f888          STRB     r0,[r8,#0]  ; SCData
;;;246          USART_SendData(USART3, SCData);
0000a2  f898f898          LDRB     r1,[r8,#0]  ; SCData
0000a6  4648              MOV      r0,r9
0000a8  f7fff7ff          BL       USART_SendData
                  |L9.172|
;;;247          while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET)
0000ac  2140              MOVS     r1,#0x40
0000ae  4648              MOV      r0,r9
0000b0  f7fff7ff          BL       USART_GetFlagStatus
0000b4  2800              CMP      r0,#0
0000b6  d0f9              BEQ      |L9.172|
;;;248          {
;;;249          }
;;;250    
;;;251          /* Disable the DMA Receive (Reset DMAR bit only) */  
;;;252          USART_DMACmd(USART3, USART_DMAReq_Rx, DISABLE);
0000b8  2200              MOVS     r2,#0
0000ba  2140              MOVS     r1,#0x40
0000bc  4648              MOV      r0,r9
0000be  f7fff7ff          BL       USART_DMACmd
;;;253       
;;;254          if((USART_ByteReceive(&locData, SC_Receive_Timeout)) == SUCCESS)
0000c2  f44ff44f          MOV      r8,#0x4000
0000c6  4641              MOV      r1,r8
0000c8  a807              ADD      r0,sp,#0x1c
0000ca  f7fff7ff          BL       USART_ByteReceive
0000ce  2801              CMP      r0,#1
0000d0  d104              BNE      |L9.220|
;;;255          {
;;;256            if(locData != 0xFF)
0000d2  f89df89d          LDRB     r0,[sp,#0x1c]
0000d6  28ff              CMP      r0,#0xff
0000d8  d000              BEQ      |L9.220|
;;;257            {
;;;258               PTSConfirmStatus = 0x00;
0000da  2400              MOVS     r4,#0
                  |L9.220|
;;;259            }
;;;260          }
;;;261          if((USART_ByteReceive(&locData, SC_Receive_Timeout)) == SUCCESS)
0000dc  4641              MOV      r1,r8
0000de  a807              ADD      r0,sp,#0x1c
0000e0  f7fff7ff          BL       USART_ByteReceive
0000e4  2801              CMP      r0,#1
0000e6  d104              BNE      |L9.242|
;;;262          {
;;;263            if(locData != 0x10)
0000e8  f89df89d          LDRB     r0,[sp,#0x1c]
0000ec  2810              CMP      r0,#0x10
0000ee  d000              BEQ      |L9.242|
;;;264            {
;;;265               PTSConfirmStatus = 0x00;
0000f0  2400              MOVS     r4,#0
                  |L9.242|
;;;266            }
;;;267          }
;;;268          if((USART_ByteReceive(&locData, SC_Receive_Timeout)) == SUCCESS)
0000f2  4641              MOV      r1,r8
0000f4  a807              ADD      r0,sp,#0x1c
0000f6  f7fff7ff          BL       USART_ByteReceive
0000fa  2801              CMP      r0,#1
0000fc  d105              BNE      |L9.266|
;;;269          {
;;;270            if(locData != SC_A2R.T[0])
0000fe  78b8              LDRB     r0,[r7,#2]  ; SC_A2R
000100  f89df89d          LDRB     r1,[sp,#0x1c]
000104  4288              CMP      r0,r1
000106  d000              BEQ      |L9.266|
;;;271            {
;;;272               PTSConfirmStatus = 0x00;
000108  2400              MOVS     r4,#0
                  |L9.266|
;;;273            }
;;;274          }
;;;275          if((USART_ByteReceive(&locData, SC_Receive_Timeout)) == SUCCESS)
00010a  4641              MOV      r1,r8
00010c  a807              ADD      r0,sp,#0x1c
00010e  f7fff7ff          BL       USART_ByteReceive
000112  2801              CMP      r0,#1
000114  d13c              BNE      |L9.400|
;;;276          {
;;;277            if(locData != ((u8)0xFF^(u8)0x10^(u8)SC_A2R.T[0]))
000116  78b8              LDRB     r0,[r7,#2]  ; SC_A2R
000118  f89df89d          LDRB     r2,[sp,#0x1c]
00011c  f080f080          EOR      r1,r0,#0xef
000120  4291              CMP      r1,r2
000122  d135              BNE      |L9.400|
;;;278            {
;;;279               PTSConfirmStatus = 0x00;
;;;280            }
;;;281          }
;;;282          else
;;;283          {
;;;284            PTSConfirmStatus = 0x00;
;;;285          }
;;;286          /* PTS Confirm */
;;;287          if(PTSConfirmStatus == 0x01)
000124  2c01              CMP      r4,#1
000126  d133              BNE      |L9.400|
;;;288          {
;;;289            workingbaudrate = apbclock * D_Table[(SC_A2R.T[0] & (u8)0x0F)];
000128  4a1d              LDR      r2,|L9.416|
00012a  f000f000          AND      r1,r0,#0xf
00012e  3244              ADDS     r2,r2,#0x44
000130  f852f852          LDR      r1,[r2,r1,LSL #2]
000134  4369              MULS     r1,r5,r1
;;;290            workingbaudrate /= F_Table[((SC_A2R.T[0] >> 4) & (u8)0x0F)];
000136  e000              B        |L9.314|
                  |L9.312|
000138  e02a              B        |L9.400|
                  |L9.314|
00013a  0900              LSRS     r0,r0,#4
00013c  3a40              SUBS     r2,r2,#0x40
00013e  f852f852          LDR      r0,[r2,r0,LSL #2]
;;;291    
;;;292            USART_ClockInitStructure.USART_Clock = USART_Clock_Enable;
;;;293            USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;
;;;294            USART_ClockInitStructure.USART_CPHA = USART_CPHA_1Edge;
000142  f8adf8ad          STRH     r6,[sp,#8]
000146  fbb1fbb1          UDIV     r4,r1,r0              ;290
00014a  f44ff44f          MOV      r0,#0x800             ;292
00014e  f8adf8ad          STRH     r0,[sp,#4]            ;292
;;;295            USART_ClockInitStructure.USART_LastBit = USART_LastBit_Enable;
000152  10c0              ASRS     r0,r0,#3
000154  f8adf8ad          STRH     r0,[sp,#0xa]
000158  f8adf8ad          STRH     r6,[sp,#6]            ;293
;;;296            USART_ClockInit(USART3, &USART_ClockInitStructure);
00015c  a901              ADD      r1,sp,#4
00015e  4648              MOV      r0,r9
000160  f7fff7ff          BL       USART_ClockInit
;;;297    
;;;298            USART_InitStructure.USART_BaudRate = workingbaudrate;
;;;299            USART_InitStructure.USART_WordLength = USART_WordLength_9b;
000164  f44ff44f          MOV      r0,#0x1000
000168  f8adf8ad          STRH     r0,[sp,#0x10]
;;;300            USART_InitStructure.USART_StopBits = USART_StopBits_1_5;
00016c  f44ff44f          MOV      r0,#0x3000
000170  f8adf8ad          STRH     r0,[sp,#0x12]
;;;301            USART_InitStructure.USART_Parity = USART_Parity_Even;
000174  f44ff44f          MOV      r0,#0x400
000178  f8adf8ad          STRH     r0,[sp,#0x14]
;;;302            USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
00017c  200c              MOVS     r0,#0xc
00017e  f8adf8ad          STRH     r0,[sp,#0x16]
000182  9403              STR      r4,[sp,#0xc]          ;299
;;;303            USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
000184  f8adf8ad          STRH     r6,[sp,#0x18]
;;;304            USART_Init(USART3, &USART_InitStructure);
000188  a903              ADD      r1,sp,#0xc
00018a  4648              MOV      r0,r9
00018c  f7fff7ff          BL       USART_Init
                  |L9.400|
;;;305          }
;;;306        }
;;;307      }  
;;;308    }
000190  b00d              ADD      sp,sp,#0x34
000192  e8bde8bd          POP      {r4-r9,pc}
;;;309    
                          ENDP

000196  0000              DCW      0x0000
                  |L9.408|
000198  40004818          DCD      0x40004818
                  |L9.412|
00019c  00000000          DCD      ||.bss||
                  |L9.416|
0001a0  00000000          DCD      ||.data||

                          AREA ||i.SC_AnswerReq||, CODE, READONLY, ALIGN=1

                  SC_AnswerReq PROC
000000  e92de92d          PUSH     {r3-r9,lr}
000004  4607              MOV      r7,r0
000006  2000              MOVS     r0,#0
000008  4605              MOV      r5,r0
00000a  9000              STR      r0,[sp,#0]
00000c  7838              LDRB     r0,[r7,#0]
00000e  460c              MOV      r4,r1
000010  4616              MOV      r6,r2
000012  f04ff04f          MOV      r8,#3
000016  f44ff44f          MOV      r9,#0x4000
00001a  2801              CMP      r0,#1
00001c  d018              BEQ      |L10.80|
00001e  2802              CMP      r0,#2
000020  d022              BEQ      |L10.104|
000022  2803              CMP      r0,#3
000024  d008              BEQ      |L10.56|
000026  2805              CMP      r0,#5
000028  f04ff04f          MOV      r0,#1
00002c  d137              BNE      |L10.158|
00002e  f7fff7ff          BL       SC_Reset
000032  2000              MOVS     r0,#0
000034  f7fff7ff          BL       SC_PowerCmd
                  |L10.56|
000038  e8bde8bd          POP      {r3-r9,pc}
                  |L10.60|
00003c  4649              MOV      r1,r9
00003e  4668              MOV      r0,sp
000040  f7fff7ff          BL       USART_ByteReceive
000044  2801              CMP      r0,#1
000046  d102              BNE      |L10.78|
000048  f89df89d          LDRB     r0,[sp,#0]
00004c  5560              STRB     r0,[r4,r5]
                  |L10.78|
00004e  1c6d              ADDS     r5,r5,#1
                  |L10.80|
000050  42b5              CMP      r5,r6
000052  d3f3              BCC      |L10.60|
000054  7820              LDRB     r0,[r4,#0]
000056  b128              CBZ      r0,|L10.100|
000058  f887f887          STRB     r8,[r7,#0]
00005c  2001              MOVS     r0,#1
00005e  f7fff7ff          BL       SC_Reset
000062  e7e9              B        |L10.56|
                  |L10.100|
000064  2002              MOVS     r0,#2
000066  e018              B        |L10.154|
                  |L10.104|
000068  2001              MOVS     r0,#1
00006a  f7fff7ff          BL       SC_Reset
00006e  e009              B        |L10.132|
                  |L10.112|
000070  4649              MOV      r1,r9
000072  4668              MOV      r0,sp
000074  f7fff7ff          BL       USART_ByteReceive
000078  2801              CMP      r0,#1
00007a  d103              BNE      |L10.132|
00007c  f89df89d          LDRB     r0,[sp,#0]
000080  f804f804          STRB     r0,[r4],#1
                  |L10.132|
000084  0030              MOVS     r0,r6
000086  f1a6f1a6          SUB      r6,r6,#1
00008a  b2f6              UXTB     r6,r6
00008c  d1f0              BNE      |L10.112|
00008e  7820              LDRB     r0,[r4,#0]
000090  b110              CBZ      r0,|L10.152|
000092  f887f887          STRB     r8,[r7,#0]
000096  e7cf              B        |L10.56|
                  |L10.152|
000098  2005              MOVS     r0,#5
                  |L10.154|
00009a  7038              STRB     r0,[r7,#0]
00009c  e7cc              B        |L10.56|
                  |L10.158|
00009e  e7fc              B        |L10.154|
                          ENDP


                          AREA ||.data||, DATA, ALIGN=2

                  SCData
000000  00000000          DCB      0x00,0x00,0x00,0x00
                  F_Table
000004  00000000          DCD      0x00000000
000008  00000174          DCD      0x00000174
00000c  0000022e          DCD      0x0000022e
000010  000002e8          DCD      0x000002e8
000014  0000045c          DCD      0x0000045c
000018  000005d0          DCD      0x000005d0
00001c  00000744          DCD      0x00000744
000020  00000000          DCD      0x00000000
000024  00000000          DCD      0x00000000
000028  00000200          DCD      0x00000200
00002c  00000300          DCD      0x00000300
000030  00000400          DCD      0x00000400
000034  00000600          DCD      0x00000600
000038  00000800          DCD      0x00000800
00003c  00000000          DCD      0x00000000
000040  00000000          DCD      0x00000000
                  D_Table
000044  00000000          DCD      0x00000000
000048  00000001          DCD      0x00000001
00004c  00000002          DCD      0x00000002
000050  00000004          DCD      0x00000004
000054  00000008          DCD      0x00000008
000058  00000010          DCD      0x00000010
00005c  00000000          DCD      0x00000000
000060  00000000          DCD      0x00000000

                          AREA ||.bss||, DATA, NOINIT, ALIGN=0

                  SC_A2R
                          %        44
                  SC_ATR_Table
                          %        40

⌨️ 快捷键说明

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