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

📄 myuart.lst

📁 单片机CAN总线接口通讯程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 000001B6  7801      LDRB        R1,[R0,#0x0] ; a7
 000001B8  4800      LDR         R0,=0x10000011
 000001BA  7001      STRB        R1,[R0,#0x0]
 000001BC  A804      ADD         R0,R13,#0x10
 000001BE  7801      LDRB        R1,[R0,#0x0] ; a8
 000001C0  4800      LDR         R0,=0x10000012
ARM COMPILER V2.42,  myuart                                                                16/09/08  08:08:57  PAGE 11  

 000001C2  7001      STRB        R1,[R0,#0x0]
 000001C4  A805      ADD         R0,R13,#0x14
 000001C6  7801      LDRB        R1,[R0,#0x0] ; a9
 000001C8  4800      LDR         R0,=0x10000013
 000001CA  7001      STRB        R1,[R0,#0x0]
  107:     }
 000001CC          L_31:
  108:     reg_CMR=0X01;
 000001CC  2101      MOV         R1,#0x1
 000001CE  4800      LDR         R0,=0x10000001
 000001D0  7001      STRB        R1,[R0,#0x0]
 000001D2            ; SCOPE-END
  109: }
 000001D2  BC70      POP         {R4-R6}
 000001D4  4770      BX          R14
 000001D6          ENDP ; 'sendmessage?T'


*** CODE SEGMENT '?PR?rsvmessage?T?myuart':
  111: void rsvmessage()
 00000000  B410      PUSH        {R4}
  112: {
 00000002            ; SCOPE-START
  115:     if(reg_SR&0x03)
 00000002  4800      LDR         R0,=0x10000002
 00000004  7800      LDRB        R0,[R0,#0x0]
 00000006  2103      MOV         R1,#0x3
 00000008  4208      TST         R0,R1
 0000000A  D041      BEQ         L_42  ; T=0x00000090
  117:         flag_IR=reg_IR;
 0000000C  4800      LDR         R1,=0x10000003
 0000000E  780A      LDRB        R2,[R1,#0x0]
 00000010  ---- Variable 'flag_IR' assigned to Register 'R2' ----
  118:         if(flag_IR&0x01)
 00000010  1C11      MOV         R1,R2 ; flag_IR
 00000012  0609      LSL         R1,R1,#0x18 ; flag_IR
 00000014  0E09      LSR         R1,R1,#0x18
 00000016  2201      MOV         R2,#0x1
 00000018  4211      TST         R1,R2
 0000001A  D033      BEQ         L_43  ; T=0x00000084
  120:             do{}while(reg_SR&0x10);
 0000001C          L_46:
 0000001C  4800      LDR         R1,=0x10000002
 0000001E  7809      LDRB        R1,[R1,#0x0]
 00000020  2210      MOV         R2,#0x10
 00000022  4211      TST         R1,R2
 00000024  D1FA      BNE         L_46  ; T=0x0000001C
  121:             iRecData[0]=reg_Rsvone;
 00000026  4800      LDR         R1,=0x10000014
 00000028  780A      LDRB        R2,[R1,#0x0]
 0000002A  4800      LDR         R1,=iRecData ; iRecData
 0000002C  700A      STRB        R2,[R1,#0x0] ; iRecData
  122:             iRecData[1]=reg_Rsvtwo;
 0000002E  4800      LDR         R1,=0x10000015
 00000030  780A      LDRB        R2,[R1,#0x0]
 00000032  4800      LDR         R1,=iRecData + 0x1 ; iRecData+1
 00000034  700A      STRB        R2,[R1,#0x0] ; iRecData+1
  123:             dlc=iRecData[1]&0x0f;
 00000036  4800      LDR         R1,=iRecData + 0x1 ; iRecData+1
 00000038  7809      LDRB        R1,[R1,#0x0] ; iRecData+1
 0000003A  1C0A      MOV         R2,R1
 0000003C  210F      MOV         R1,#0xF
 0000003E  400A      AND         R2,R1
 00000040  0612      LSL         R2,R2,#0x18
 00000042  0E12      LSR         R2,R2,#0x18
 00000044  4800      LDR         R1,=dlc ; dlc
 00000046  700A      STRB        R2,[R1,#0x0] ; dlc
  124:             for(i=0;i<dlc;i++)
ARM COMPILER V2.42,  myuart                                                                16/09/08  08:08:57  PAGE 12  

 00000048  2100      MOV         R1,#0x0
 0000004A  ---- Variable 'i' assigned to Register 'R1' ----
 0000004A  E00C      B           L_50  ; T=0x00000066
 0000004C          L_51:
  126:                 iRecData[i+2]=*(&reg_Rsvdata1+i);
 0000004C  1C0A      MOV         R2,R1 ; i
 0000004E  0613      LSL         R3,R2,#0x18 ; i
 00000050  0E1B      LSR         R3,R3,#0x18
 00000052  4800      LDR         R2,=0x10000016
 00000054  5CD2      LDRB        R2,[R2,R3]
 00000056  1C0B      MOV         R3,R1 ; i
 00000058  061C      LSL         R4,R3,#0x18 ; i
 0000005A  0E24      LSR         R4,R4,#0x18
 0000005C  4800      LDR         R3,=iRecData + 0x2 ; iRecData+2
 0000005E  551A      STRB        R2,[R3,R4]
  127:             }
 00000060  3101      ADD         R1,#0x1
 00000062  0609      LSL         R1,R1,#0x18
 00000064  0E09      LSR         R1,R1,#0x18
 00000066          L_50:
 00000066  4800      LDR         R2,=dlc ; dlc
 00000068  7812      LDRB        R2,[R2,#0x0] ; dlc
 0000006A  1C13      MOV         R3,R2
 0000006C  1C0A      MOV         R2,R1 ; i
 0000006E  0612      LSL         R2,R2,#0x18 ; i
 00000070  0E12      LSR         R2,R2,#0x18
 00000072  429A      CMP         R2,R3
 00000074  D3EA      BCC         L_51  ; T=0x0000004C
  128:             reg_CMR=0x04;
 00000076  2204      MOV         R2,#0x4
 00000078  4800      LDR         R1,=0x10000001
 0000007A  700A      STRB        R2,[R1,#0x0]
  129:             flagdata=1;
 0000007C  2201      MOV         R2,#0x1
 0000007E  4800      LDR         R1,=flagdata ; flagdata
 00000080  700A      STRB        R2,[R1,#0x0] ; flagdata
  130:         }
 00000082  E005      B           L_42  ; T=0x00000090
 00000084          L_43:
  133:             if(reg_SR&0x02) reg_CMR=0x0c;
 00000084  2102      MOV         R1,#0x2
 00000086  4208      TST         R0,R1
 00000088  D002      BEQ         L_42  ; T=0x00000090
 0000008A  210C      MOV         R1,#0xC
 0000008C  4800      LDR         R0,=0x10000001
 0000008E  7001      STRB        R1,[R0,#0x0]
  135:     }
 00000090          L_42:
 00000090            ; SCOPE-END
  136: }
 00000090  BC10      POP         {R4}
 00000092  4770      BX          R14
 00000094          ENDP ; 'rsvmessage?T'


*** CODE SEGMENT '?PR?hex2ascii?T?myuart':
  139: uchar hex2ascii(uchar toconv) 
 00000000  1C01      MOV         R1,R0 ; toconv
 00000002  ---- Variable 'toconv' assigned to Register 'R1' ----
  141:     if (toconv<0x0A)                            
 00000002  1C08      MOV         R0,R1 ; toconv
 00000004  0600      LSL         R0,R0,#0x18 ; toconv
 00000006  0E00      LSR         R0,R0,#0x18
 00000008  280A      CMP         R0,#0xA
 0000000A  DA03      BGE         L_55  ; T=0x00000014
  143:         toconv += 0x30;                         
 0000000C  3130      ADD         R1,#0x30
 0000000E  0609      LSL         R1,R1,#0x18
ARM COMPILER V2.42,  myuart                                                                16/09/08  08:08:57  PAGE 13  

 00000010  0E09      LSR         R1,R1,#0x18
  144:     }                                       
 00000012  E002      B           L_56  ; T=0x0000001A
 00000014          L_55:
  147:         toconv += 0x37;
 00000014  3137      ADD         R1,#0x37
 00000016  0609      LSL         R1,R1,#0x18
 00000018  0E09      LSR         R1,R1,#0x18
  148:     }
 0000001A          L_56:
  150:     return (toconv);
 0000001A  1C08      MOV         R0,R1 ; toconv
 0000001C  0600      LSL         R0,R0,#0x18 ; toconv
 0000001E  0E00      LSR         R0,R0,#0x18
  151: }
 00000020  4770      BX          R14
 00000022          ENDP ; 'hex2ascii?T'


*** CODE SEGMENT '?PR?senddata?T?myuart':
  154: void senddata(uchar to_send) {
 00000000  B500      PUSH        {LR}
 00000002  1C02      MOV         R2,R0 ; to_send
 00000004  ---- Variable 'to_send' assigned to Register 'R2' ----
  155:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000004          L_58:
 00000004  4800      LDR         R0,=0xFFFF0714
 00000006  6800      LDR         R0,[R0,#0x0]
 00000008  2120      MOV         R1,#0x20
 0000000A  4208      TST         R0,R1
 0000000C  D0FA      BEQ         L_58  ; T=0x00000004
  156:         COMTX = 0x0A;                           //Output LF 
 0000000E  210A      MOV         R1,#0xA
 00000010  4800      LDR         R0,=0xFFFF0700
 00000012  6001      STR         R1,[R0,#0x0]
  157:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000014          L_62:
 00000014  4800      LDR         R0,=0xFFFF0714
 00000016  6800      LDR         R0,[R0,#0x0]
 00000018  2120      MOV         R1,#0x20
 0000001A  4208      TST         R0,R1
 0000001C  D0FA      BEQ         L_62  ; T=0x00000014
  158:         COMTX = 0x0D;                           //Output CR 
 0000001E  210D      MOV         R1,#0xD
 00000020  4800      LDR         R0,=0xFFFF0700
 00000022  6001      STR         R1,[R0,#0x0]
  159:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000024          L_66:
 00000024  4800      LDR         R0,=0xFFFF0714
 00000026  6800      LDR         R0,[R0,#0x0]
 00000028  2120      MOV         R1,#0x20
 0000002A  4208      TST         R0,R1
 0000002C  D0FA      BEQ         L_66  ; T=0x00000024
  160:         COMTX = hex2ascii ((to_send >> 4) & 0x0F);                      
 0000002E  1C10      MOV         R0,R2 ; to_send
 00000030  0600      LSL         R0,R0,#0x18 ; to_send
 00000032  0E00      LSR         R0,R0,#0x18
 00000034  0900      LSR         R0,R0,#0x4
 00000036  210F      MOV         R1,#0xF
 00000038  4008      AND         R0,R1
 0000003A  F7FF      BL          hex2ascii?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          hex2ascii?T  ; T=0x0001  (2)
 0000003E  0601      LSL         R1,R0,#0x18 ; hex2ascii?T
 00000040  0E09      LSR         R1,R1,#0x18
 00000042  4800      LDR         R0,=0xFFFF0700
 00000044  6001      STR         R1,[R0,#0x0]
  161:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000046          L_70:
ARM COMPILER V2.42,  myuart                                                                16/09/08  08:08:57  PAGE 14  

 00000046  4800      LDR         R0,=0xFFFF0714
 00000048  6800      LDR         R0,[R0,#0x0]
 0000004A  2120      MOV         R1,#0x20
 0000004C  4208      TST         R0,R1
 0000004E  D0FA      BEQ         L_70  ; T=0x00000046
  162:         COMTX = hex2ascii (to_send & 0x0F);
 00000050  1C10      MOV         R0,R2 ; to_send
 00000052  0600      LSL         R0,R0,#0x18 ; to_send
 00000054  0E00      LSR         R0,R0,#0x18
 00000056  210F      MOV         R1,#0xF
 00000058  4008      AND         R0,R1
 0000005A  F7FF      BL          hex2ascii?T  ; T=0x0001  (1)
 0000005C  FFD1      BL          hex2ascii?T  ; T=0x0001  (2)
 0000005E  0601      LSL         R1,R0,#0x18 ; hex2ascii?T
 00000060  0E09      LSR         R1,R1,#0x18
 00000062  4800      LDR         R0,=0xFFFF0700
 00000064  6001      STR         R1,[R0,#0x0]
  163: }
 00000066  BC08      POP         {R3}
 00000068  4718      BX          R3
 0000006A          ENDP ; 'senddata?T'


*** CODE SEGMENT '?PR?main?myuart':
  166: void main()
 00000000  B500      PUSH        {LR}
  167: {    
 00000002            ; SCOPE-START
  168:     int k=1;
 00000002  2501      MOV         R5,#0x1
 00000004  ---- Variable 'k' assigned to Register 'R5' ----
  169:     uchar temp1=1;
 00000004  2401      MOV         R4,#0x1
 00000006  ---- Variable 'temp1' assigned to Register 'R4' ----
  170:     Init();
 00000006  F7FF      BL          Init?T  ; T=0x0001  (1)
 00000008  FFFB      BL          Init?T  ; T=0x0001  (2)
  172:     sendmessage(0x39,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x06,0x08);
 0000000A  2108      MOV         R1,#0x8
 0000000C  B402      PUSH        {R1}
 0000000E  2006      MOV         R0,#0x6
 00000010  B401      PUSH        {R0}
 00000012  B401      PUSH        {R0}
 00000014  2005      MOV         R0,#0x5
 00000016  B401      PUSH        {R0}
 00000018  2004      MOV         R0,#0x4
 0000001A  B401      PUSH        {R0}
 0000001C  2003      MOV         R0,#0x3
 0000001E  B401      PUSH        {R0}
 00000020  2039      MOV         R0,#0x39
 00000022  2201      MOV         R2,#0x1
 00000024  2302      MOV         R3,#0x2
 00000026  F7FF      BL          sendmessage?T  ; T=0x0001  (1)
 00000028  FFEB      BL          sendmessage?T  ; T=0x0001  (2)
 0000002A  B006      ADD         R13,#0x18
  173:     Delay(1);
 0000002C  2001      MOV         R0,#0x1
 0000002E  F7FF      BL          Delay?T  ; T=0x0001  (1)
 00000030  FFE7      BL          Delay?T  ; T=0x0001  (2)
  174:     while(temp1)
 00000032  E01D      B           L_74  ; T=0x00000070
 00000034          L_76:
  176:     sendmessage(0x37,0x08,k,0x02,0x03,0x05,0x05,0x06,0x06,0x08);
 00000034  2108      MOV         R1,#0x8
 00000036  B402      PUSH        {R1}
 00000038  2006      MOV         R0,#0x6
 0000003A  B401      PUSH        {R0}
 0000003C  B401      PUSH        {R0}
ARM COMPILER V2.42,  myuart                                                                16/09/08  08:08:57  PAGE 15  

 0000003E  2005      MOV         R0,#0x5
 00000040  B401      PUSH        {R0}
 00000042  B401      PUSH        {R0}
 00000044  2003      MOV         R0,#0x3
 00000046  B401      PUSH        {R0}
 00000048  1C2A      MOV         R2,R5 ; k
 0000004A  2037      MOV         R0,#0x37
 0000004C  2302      MOV         R3,#0x2
 0000004E  F7FF      BL          sendmessage?T  ; T=0x0001  (1)
 00000050  FFD7      BL          sendmessage?T  ; T=0x0001  (2)
 00000052  B006      ADD         R13,#0x18
  177:     Delay(100000);
 00000054  4800      LDR         R0,=0x186A0
 00000056  F7FF      BL          Delay?T  ; T=0x0001  (1)
 00000058  FFD3      BL          Delay?T  ; T=0x0001  (2)
  178:     Delay(100000);
 0000005A  4800      LDR         R0,=0x186A0
 0000005C  F7FF      BL          Delay?T  ; T=0x0001  (1)
 0000005E  FFD0      BL          Delay?T  ; T=0x0001  (2)
  179:     Delay(100000);
 00000060  4800      LDR         R0,=0x186A0
 00000062  F7FF      BL          Delay?T  ; T=0x0001  (1)
 00000064  FFCD      BL          Delay?T  ; T=0x0001  (2)
  180:     k++;
 00000066  3501      ADD         R5,#0x1
  181:     if(k==100)k=1;
 00000068  1C28      MOV         R0,R5 ; k
 0000006A  2864      CMP         R0,#0x64 ; k
 0000006C  D100      BNE         L_74  ; T=0x00000070
 0000006E  2501      MOV         R5,#0x1
  182: }
 00000070          L_74:
 00000070  1C20      MOV         R0,R4 ; temp1
 00000072  2800      CMP         R0,#0x0 ; temp1
 00000074  D1DE      BNE         L_76  ; T=0x00000034
 00000076            ; SCOPE-END
  184: }
 00000076  BC08      POP         {R3}
 00000078  4718      BX          R3
 0000007A          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =        12
  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 + -