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

📄 main.lst

📁 ADuC7020/26是ADI模拟公司开发的ARM7TDMI内核
💻 LST
📖 第 1 页 / 共 2 页
字号:
 00000004  4800      LDR         R1,=0x6E4
 00000006  4800      LDR         R0,=0xFFFF0500
 00000008  6001      STR         R1,[R0,#0x0]
   62:     for(i=0;i<N;i++){
 0000000A  2400      MOV         R4,#0x0
 0000000C  ---- Variable 'i' assigned to Register 'R4' ----
   63:         while(!ADCSTA){}                    // Wait for end of conversion
 0000000C          L_13:
 0000000C          L_10:
 0000000C  4800      LDR         R0,=0xFFFF050C
 0000000E  6800      LDR         R0,[R0,#0x0]
 00000010  2800      CMP         R0,#0x0
 00000012  D0FB      BEQ         L_10  ; T=0x0000000C
   64:         *data_ptr = (ADCDAT >> 16);         // Store converison in external ram
 00000014  4800      LDR         R0,=0xFFFF0510
 00000016  6801      LDR         R1,[R0,#0x0]
 00000018  0C09      LSR         R1,R1,#0x10
 0000001A  0409      LSL         R1,R1,#0x10
 0000001C  0C09      LSR         R1,R1,#0x10
 0000001E  1C28      MOV         R0,R5 ; data_ptr
 00000020  8001      STRH        R1,[R0,#0x0] ; data_ptr
   65:         data_ptr ++;
 00000022  3502      ADD         R5,#0x2
   66:     }
 00000024  3401      ADD         R4,#0x1
 00000026  1C20      MOV         R0,R4 ; i
 00000028  4800      LDR         R1,=0x8000
 0000002A  4288      CMP         R0,R1 ; i
 0000002C  DBEE      BLT         L_13  ; T=0x0000000C
   67:     ADCCON = 0x620;                         //Stops continuous conversion
 0000002E  4800      LDR         R1,=0x620
 00000030  4800      LDR         R0,=0xFFFF0500
 00000032  6001      STR         R1,[R0,#0x0]
   68:     data_ptr = (unsigned short *)0x10000000;
 00000034  4800      LDR         R5,=0x10000000
   69:             for(i=0;i<N;i++){
 00000036  2400      MOV         R4,#0x0
 00000038          L_17:
   70:                 senddata(*data_ptr);
 00000038  1C28      MOV         R0,R5 ; data_ptr
ARM COMPILER V2.42,  main                                                                  09/01/06  14:41:41  PAGE 5   

 0000003A  8800      LDRH        R0,[R0,#0x0] ; data_ptr
 0000003C  F7FF      BL          senddata?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          senddata?T  ; T=0x0001  (2)
   71:                 data_ptr++;
 00000040  3502      ADD         R5,#0x2
   72:     }
 00000042  3401      ADD         R4,#0x1
 00000044  1C20      MOV         R0,R4 ; i
 00000046  4800      LDR         R1,=0x8000
 00000048  4288      CMP         R0,R1 ; i
 0000004A  DBF5      BLT         L_17  ; T=0x00000038
 0000004C            ; SCOPE-END
   73: }
 0000004C  BC30      POP         {R4-R5}
 0000004E  BC08      POP         {R3}
 00000050  4718      BX          R3
 00000052          ENDP ; 'start_conversion?T'


*** CODE SEGMENT '?PR?senddata?T?main':
   76: void senddata(short to_send) {
 00000000  B510      PUSH        {R4,LR}
 00000002  1C04      MOV         R4,R0 ; to_send
 00000004  ---- Variable 'to_send' assigned to Register 'R4' ----
   77:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000004          L_19:
 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_19  ; T=0x00000004
   78:         COMTX = 0x0A;                           //Output LF 
 0000000E  210A      MOV         R1,#0xA
 00000010  4800      LDR         R0,=0xFFFF0700
 00000012  6001      STR         R1,[R0,#0x0]
   79:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000014          L_23:
 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_23  ; T=0x00000014
   80:         COMTX = 0x0D;                           //Output CR 
 0000001E  210D      MOV         R1,#0xD
 00000020  4800      LDR         R0,=0xFFFF0700
 00000022  6001      STR         R1,[R0,#0x0]
   81:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000024          L_27:
 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_27  ; T=0x00000024
   82:         COMTX = hex2ascii ((to_send >> 8) & 0x0F);
 0000002E  1C20      MOV         R0,R4 ; to_send
 00000030  0400      LSL         R0,R0,#0x10 ; to_send
 00000032  1400      ASR         R0,R0,#0x10
 00000034  1200      ASR         R0,R0,#0x8
 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]
   83:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000046          L_31:
ARM COMPILER V2.42,  main                                                                  09/01/06  14:41:41  PAGE 6   

 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_31  ; T=0x00000046
   84:         COMTX = hex2ascii ((to_send >> 4) & 0x0F);                      
 00000050  1C20      MOV         R0,R4 ; to_send
 00000052  0400      LSL         R0,R0,#0x10 ; to_send
 00000054  1400      ASR         R0,R0,#0x10
 00000056  1100      ASR         R0,R0,#0x4
 00000058  210F      MOV         R1,#0xF
 0000005A  4008      AND         R0,R1
 0000005C  F7FF      BL          hex2ascii?T  ; T=0x0001  (1)
 0000005E  FFD0      BL          hex2ascii?T  ; T=0x0001  (2)
 00000060  0601      LSL         R1,R0,#0x18 ; hex2ascii?T
 00000062  0E09      LSR         R1,R1,#0x18
 00000064  4800      LDR         R0,=0xFFFF0700
 00000066  6001      STR         R1,[R0,#0x0]
   85:     while(!(0x020==(COMSTA0 & 0x020))){}
 00000068          L_35:
 00000068  4800      LDR         R0,=0xFFFF0714
 0000006A  6800      LDR         R0,[R0,#0x0]
 0000006C  2120      MOV         R1,#0x20
 0000006E  4208      TST         R0,R1
 00000070  D0FA      BEQ         L_35  ; T=0x00000068
   86:         COMTX = hex2ascii (to_send & 0x0F);
 00000072  1C20      MOV         R0,R4 ; to_send
 00000074  0400      LSL         R0,R0,#0x10 ; to_send
 00000076  1400      ASR         R0,R0,#0x10
 00000078  210F      MOV         R1,#0xF
 0000007A  4008      AND         R0,R1
 0000007C  F7FF      BL          hex2ascii?T  ; T=0x0001  (1)
 0000007E  FFC0      BL          hex2ascii?T  ; T=0x0001  (2)
 00000080  0601      LSL         R1,R0,#0x18 ; hex2ascii?T
 00000082  0E09      LSR         R1,R1,#0x18
 00000084  4800      LDR         R0,=0xFFFF0700
 00000086  6001      STR         R1,[R0,#0x0]
   87: }
 00000088  BC10      POP         {R4}
 0000008A  BC08      POP         {R3}
 0000008C  4718      BX          R3
 0000008E          ENDP ; 'senddata?T'


*** CODE SEGMENT '?PR?hex2ascii?T?main':
   89: char hex2ascii(char toconv) {
 00000000  1C01      MOV         R1,R0 ; toconv
 00000002  ---- Variable 'toconv' assigned to Register 'R1' ----
   90:     if (toconv<0x0A)                            //If hex digit is greater than 'A'
 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_39  ; T=0x00000014
   92:         toconv += 0x30;                         //an ascii letter
 0000000C  3130      ADD         R1,#0x30
 0000000E  0609      LSL         R1,R1,#0x18
 00000010  0E09      LSR         R1,R1,#0x18
   93:     }                                            //If hex digit is less than 'A'
 00000012  E002      B           L_40  ; T=0x0000001A
 00000014          L_39:
   96:         toconv += 0x37;
 00000014  3137      ADD         R1,#0x37
 00000016  0609      LSL         R1,R1,#0x18
 00000018  0E09      LSR         R1,R1,#0x18
   97:     }
 0000001A          L_40:
   99:     return (toconv);
ARM COMPILER V2.42,  main                                                                  09/01/06  14:41:41  PAGE 7   

 0000001A  1C08      MOV         R0,R1 ; toconv
 0000001C  0600      LSL         R0,R0,#0x18 ; toconv
 0000001E  0E00      LSR         R0,R0,#0x18
  100: }
 00000020  4770      BX          R14
 00000022          ENDP ; 'hex2ascii?T'


*** CODE SEGMENT '?PR?ADCpoweron?T?main':
  102: void ADCpoweron(int time) {
 00000000  ---- Variable 'time' assigned to Register 'R0' ----
  103:     ADCCON = 0x620;                     // power-on the ADC
 00000000  4800      LDR         R2,=0x620
 00000002  4800      LDR         R1,=0xFFFF0500
 00000004  600A      STR         R2,[R1,#0x0]
  104:     while (time >=0)                    // wait for ADC to be fully powered on
 00000006  E000      B           L_42  ; T=0x0000000A
 00000008          L_44:
 00000008  3801      SUB         R0,#0x1
 0000000A          L_42:
 0000000A  1C01      MOV         R1,R0 ; time
 0000000C  2900      CMP         R1,#0x0 ; time
 0000000E  DAFB      BGE         L_44  ; T=0x00000008
  106: }
 00000010  4770      BX          R14
 00000012          ENDP ; 'ADCpoweron?T'



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