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

📄 rs485test.lst

📁 rs485的通信程序的主程序。采用at91sam7a3芯片编写的。
💻 LST
📖 第 1 页 / 共 3 页
字号:
   90:                     j++;
 000002C0  E2844001  ADD         R4,R4,#0x0001 ; j
   91:                 }
 000002C4  E2855002  ADD         R5,R5,#0x0002 ; i
 000002C8          L_22:
 000002C8  E1A00005  MOV         R0,R5 ; i
 000002CC  E3500009  CMP         R0,#0x0009 ; i
 000002D0  DAFFFFE3  BLE         L_23  ; Targ=0x264
   93:                 UART0_RE_Flag = 0xaaaaaaaa;
 000002D4  E5101000  LDR         R1,=0xAAAAAAAA
 000002D8  E5100000  LDR         R0,=UART0_RE_Flag ; UART0_RE_Flag
 000002DC  E5801000  STR         R1,[R0,#0x0] ; UART0_RE_Flag
   94:                 control();
 000002E0  EBFFFF46  BL          control?A  ; Targ=0x0
   97:         }
 000002E4          L_5:
   99:         if ((S0PSR_tmp==0x80)&&((IO0PIN&0x00001000)==0x00001000))
 000002E4  E5100000  LDR         R0,=S0PSR_tmp ; S0PSR_tmp
 000002E8  E5D00000  LDRB        R0,[R0,#0x0] ; S0PSR_tmp
 000002EC  E3500080  CMP         R0,#0x0080
 000002F0  1A00000C  BNE         L_25  ; Targ=0x328
 000002F4  E5100000  LDR         R0,=0xE0028000
 000002F8  E5900000  LDR         R0,[R0,#0x0]
 000002FC  E3100A01  TST         R0,#0x1000
 00000300  0A000008  BEQ         L_25  ; Targ=0x328
  101:             S0PSR_tmp=0x00;
 00000304  E3A01000  MOV         R1,#0x0
 00000308  E5100000  LDR         R0,=S0PSR_tmp ; S0PSR_tmp
 0000030C  E5C01000  STRB        R1,[R0,#0x0] ; S0PSR_tmp
  102:             InData_RE_Flag=0x55555555;
 00000310  E5101000  LDR         R1,=0x55555555
 00000314  E5100000  LDR         R0,=InData_RE_Flag ; InData_RE_Flag
 00000318  E5801000  STR         R1,[R0,#0x0] ; InData_RE_Flag
  103:             InData_RS_Flag=0xaaaaaaaa;
 0000031C  E5101000  LDR         R1,=0xAAAAAAAA
 00000320  E5100000  LDR         R0,=InData_RS_Flag ; InData_RS_Flag
 00000324  E5801000  STR         R1,[R0,#0x0] ; InData_RS_Flag
  104:         }
 00000328          L_25:
  106:         if (InData_RE_Flag==0x55555555)
 00000328  E5100000  LDR         R0,=InData_RE_Flag ; InData_RE_Flag
 0000032C  E5900000  LDR         R0,[R0,#0x0] ; InData_RE_Flag
 00000330  E5101000  LDR         R1,=0x55555555
 00000334  E1500001  CMP         R0,R1
 00000338  1AFFFF32  BNE         L_3  ; Targ=0x8
  108:             S0PCR = 0x10;  //  pclk/100
 0000033C  E3A01010  MOV         R1,#0x10
 00000340  E5100000  LDR         R0,=0xE0020000
 00000344  E5C01000  STRB        R1,[R0,#0x0]
  109:             for (i=1;i<=(InData_Count+4);i++)
 00000348  E3A05001  MOV         R5,#0x1
 0000034C  EA000012  B           L_29  ; Targ=0x39C
 00000350          L_30:
  111:                 UART0_TData[2*i-1]=HEXtoASCii((SPI0_InData[i-1])>>4);
 00000350  E1A01005  MOV         R1,R5 ; i
 00000354  E5100000  LDR         R0,=SPI0_InData + 0xFFFFFFFF ; SPI0_InData-1
 00000358  E7D00001  LDRB        R0,[R0,+R1]
 0000035C  E1A00220  MOV         R0,R0,LSR #4
 00000360  EBFFFF26  BL          HEXtoASCii?A  ; Targ=0x0
 00000364  E1A02005  MOV         R2,R5 ; i
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 9   

 00000368  E1A02082  MOV         R2,R2,LSL #1 ; i
 0000036C  E5101000  LDR         R1,=UART0_TData + 0xFFFFFFFF ; UART0_TData-1
 00000370  E7C10002  STRB        R0,[R1,+R2]
  112:                 UART0_TData[2*i]=HEXtoASCii((SPI0_InData[i-1])&0x0f);
 00000374  E1A01005  MOV         R1,R5 ; i
 00000378  E5100000  LDR         R0,=SPI0_InData + 0xFFFFFFFF ; SPI0_InData-1
 0000037C  E7D00001  LDRB        R0,[R0,+R1]
 00000380  E200000F  AND         R0,R0,#0x000F
 00000384  EBFFFF1D  BL          HEXtoASCii?A  ; Targ=0x0
 00000388  E1A02005  MOV         R2,R5 ; i
 0000038C  E1A02082  MOV         R2,R2,LSL #1 ; i
 00000390  E5101000  LDR         R1,=UART0_TData ; UART0_TData
 00000394  E7C10002  STRB        R0,[R1,+R2]
  113:             }
 00000398  E2855001  ADD         R5,R5,#0x0001 ; i
 0000039C          L_29:
 0000039C  E5100000  LDR         R0,=InData_Count ; InData_Count
 000003A0  E5901000  LDR         R1,[R0,#0x0] ; InData_Count
 000003A4  E2811004  ADD         R1,R1,#0x0004
 000003A8  E1A00005  MOV         R0,R5 ; i
 000003AC  E1500001  CMP         R0,R1 ; i
 000003B0  9AFFFFE6  BLS         L_30  ; Targ=0x350
  115:             U0THR = 0x53;
 000003B4  E3A01053  MOV         R1,#0x53
 000003B8  E5100000  LDR         R0,=0xE000C000
 000003BC  E5C01000  STRB        R1,[R0,#0x0]
  116:             UART0_TData[2*InData_Count+1]=0x51;
 000003C0  E3A00051  MOV         R0,#0x51
 000003C4  E5101000  LDR         R1,=InData_Count ; InData_Count
 000003C8  E5912000  LDR         R2,[R1,#0x0] ; InData_Count
 000003CC  E1A02082  MOV         R2,R2,LSL #1
 000003D0  E2822001  ADD         R2,R2,#0x0001
 000003D4  E5101000  LDR         R1,=UART0_TData ; UART0_TData
 000003D8  E7C10002  STRB        R0,[R1,+R2]
  118:             UART0_T_Count=0x00000000;
 000003DC  E3A01000  MOV         R1,#0x0
 000003E0  E5100000  LDR         R0,=UART0_T_Count ; UART0_T_Count
 000003E4  E5801000  STR         R1,[R0,#0x0] ; UART0_T_Count
  119:             UART0_TS_Flag = 0x55555555;
 000003E8  E5101000  LDR         R1,=0x55555555
 000003EC  E5100000  LDR         R0,=UART0_TS_Flag ; UART0_TS_Flag
 000003F0  E5801000  STR         R1,[R0,#0x0] ; UART0_TS_Flag
  120:             InData_RE_Flag=0xaaaaaaaa;
 000003F4  E5101000  LDR         R1,=0xAAAAAAAA
 000003F8  E5100000  LDR         R0,=InData_RE_Flag ; InData_RE_Flag
 000003FC  E5801000  STR         R1,[R0,#0x0] ; InData_RE_Flag
  123:     }
 00000400  EAFFFF00  B           L_3  ; Targ=0x8
  125:     return(0);
 00000404            ; SCOPE-END
  126: }
 00000404  E8BD0008  LDMIA       R13!,{R3}
 00000408  E12FFF13  BX          R3
 0000040C          ENDP ; 'main'


*** CODE SEGMENT '?PR?ASCiitoHEX?A?test_P3':
  129: unsigned char ASCiitoHEX(unsigned char str1)
 00000000  E1A01000  MOV         R1,R0 ; str1
 00000004  ---- Variable 'str1' assigned to Register 'R1' ----
  131:     if  ((str1>=0x30)&&(str1<=0x39))
 00000004  E1A00001  MOV         R0,R1 ; str1
 00000008  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 0000000C  E1A00C20  MOV         R0,R0,LSR #24
 00000010  E3500030  CMP         R0,#0x0030
 00000014  BA000009  BLT         L_33  ; Targ=0x40
 00000018  E1A00001  MOV         R0,R1 ; str1
 0000001C  E1A00C00  MOV         R0,R0,LSL #24 ; str1
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 10  

 00000020  E1A00C20  MOV         R0,R0,LSR #24
 00000024  E3500039  CMP         R0,#0x0039
 00000028  CA000004  BGT         L_33  ; Targ=0x40
  133:         return(str1-0x30);
 0000002C  E1A00001  MOV         R0,R1 ; str1
 00000030  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000034  E1A00C20  MOV         R0,R0,LSR #24
 00000038  E2400030  SUB         R0,R0,#0x0030
 0000003C  EA00000F  B           L_34  ; Targ=0x80
  134:     }
 00000040          L_33:
  135:     if  ((str1>=0x41)&&(str1<=0x46))
 00000040  E1A00001  MOV         R0,R1 ; str1
 00000044  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000048  E1A00C20  MOV         R0,R0,LSR #24
 0000004C  E3500041  CMP         R0,#0x0041
 00000050  BA000009  BLT         L_35  ; Targ=0x7C
 00000054  E1A00001  MOV         R0,R1 ; str1
 00000058  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 0000005C  E1A00C20  MOV         R0,R0,LSR #24
 00000060  E3500046  CMP         R0,#0x0046
 00000064  CA000004  BGT         L_35  ; Targ=0x7C
  137:         return(str1-0x37);
 00000068  E1A00001  MOV         R0,R1 ; str1
 0000006C  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000070  E1A00C20  MOV         R0,R0,LSR #24
 00000074  E2400037  SUB         R0,R0,#0x0037
 00000078  EA000000  B           L_34  ; Targ=0x80
  138:     }
 0000007C          L_35:
  140:     return 1;
 0000007C  E3A00001  MOV         R0,#0x1
  141: }
 00000080          L_34:
 00000080  E12FFF1E  BX          R14
 00000084          ENDP ; 'ASCiitoHEX?A'


*** CODE SEGMENT '?PR?HEXtoASCii?A?test_P3':
  144: unsigned char HEXtoASCii(unsigned char str1)
 00000000  E1A01000  MOV         R1,R0 ; str1
 00000004  ---- Variable 'str1' assigned to Register 'R1' ----
  146:     if (str1<=0x09)                         //if ((str1>=0x00)&&(str1<=0x09))
 00000004  E1A00001  MOV         R0,R1 ; str1
 00000008  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 0000000C  E1A00C20  MOV         R0,R0,LSR #24
 00000010  E3500009  CMP         R0,#0x0009
 00000014  CA000004  BGT         L_36  ; Targ=0x2C
  148:         return(str1+0x30);
 00000018  E1A00001  MOV         R0,R1 ; str1
 0000001C  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000020  E1A00C20  MOV         R0,R0,LSR #24
 00000024  E2800030  ADD         R0,R0,#0x0030
 00000028  EA00000F  B           L_37  ; Targ=0x6C
  149:     }
 0000002C          L_36:
  150:     if  ((str1>=0x0A)&&(str1<=0x0F))
 0000002C  E1A00001  MOV         R0,R1 ; str1
 00000030  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000034  E1A00C20  MOV         R0,R0,LSR #24
 00000038  E350000A  CMP         R0,#0x000A
 0000003C  BA000009  BLT         L_38  ; Targ=0x68
 00000040  E1A00001  MOV         R0,R1 ; str1
 00000044  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 00000048  E1A00C20  MOV         R0,R0,LSR #24
 0000004C  E350000F  CMP         R0,#0x000F
 00000050  CA000004  BGT         L_38  ; Targ=0x68
  152:         return(str1+0x37);
ARM COMPILER V2.20a,  test_P3                                                              18/07/05  12:57:54  PAGE 11  

 00000054  E1A00001  MOV         R0,R1 ; str1
 00000058  E1A00C00  MOV         R0,R0,LSL #24 ; str1
 0000005C  E1A00C20  MOV         R0,R0,LSR #24
 00000060  E2800037  ADD         R0,R0,#0x0037
 00000064  EA000000  B           L_37  ; Targ=0x6C
  153:     }
 00000068          L_38:
  155:     return 1;
 00000068  E3A00001  MOV         R0,#0x1
 0000006C          L_37:
 0000006C  E12FFF1E  BX          R14
 00000070          ENDP ; 'HEXtoASCii?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =       571
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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