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

📄 main.lst

📁 基于陀螺仪原理的惯性导航程序 用于测量量角速度
💻 LST
📖 第 1 页 / 共 4 页
字号:
  219:       z_temp= Z_w_value;
 000000C4  E5100000  LDR         R0,=Z_w_value ; Z_w_value
 000000C8  E5901000  LDR         R1,[R0,#0x0] ; Z_w_value
 000000CC  E5100000  LDR         R0,=z_temp ; z_temp
 000000D0  E5801000  STR         R1,[R0,#0x0] ; z_temp
  221:        A_value[0]=A_value[1]= 2096;
 000000D4  E3A01E83  MOV         R1,#0x830
 000000D8  E5100000  LDR         R0,=A_value + 0x2 ; A_value+2
 000000DC  E1C010B0  STRH        R1,[R0,#0x0] ; A_value+2
 000000E0  E5100000  LDR         R0,=A_value ; A_value
 000000E4  E1C010B0  STRH        R1,[R0,#0x0] ; A_value
  222:        for(i=0;i<2;i++)
 000000E8  E1A00004  MOV         R0,R4 ; i
 000000EC  EA000016  B           L_36  ; Targ=0x14C
  223:           for(j=0;j<30;j++)
 000000F0          L_43:
 000000F0  E3A01000  MOV         R1,#0x0
 000000F4  ---- Variable 'j' assigned to Register 'R1' ----
 000000F4  EA00000D  B           L_41  ; Targ=0x130
 000000F8          L_42:
  224:                {A_S_value[i][j]= 2096;}
 000000F8  E3A02E83  MOV         R2,#0x830
 000000FC  E1A03001  MOV         R3,R1 ; j
 00000100  E1A03C03  MOV         R3,R3,LSL #24 ; j
 00000104  E1A03C23  MOV         R3,R3,LSR #24
 00000108  E1A03083  MOV         R3,R3,LSL #1
 0000010C  E1A05000  MOV         R5,R0 ; i
 00000110  E1A05C05  MOV         R5,R5,LSL #24 ; i
 00000114  E1A05C25  MOV         R5,R5,LSR #24
 00000118  E1A05305  MOV         R5,R5,LSL #6
 0000011C  E0855003  ADD         R5,R5,R3
 00000120  E5103000  LDR         R3,=A_S_value ; A_S_value
 00000124  E18320B5  STRH        R2,[R3,R5]
 00000128  E2811001  ADD         R1,R1,#0x0001 ; j
 0000012C  E20110FF  AND         R1,R1,#0x00FF
 00000130          L_41:
 00000130  E1A02001  MOV         R2,R1 ; j
 00000134  E1A02C02  MOV         R2,R2,LSL #24 ; j
 00000138  E1A02C22  MOV         R2,R2,LSR #24
 0000013C  E352001E  CMP         R2,#0x001E
 00000140  BAFFFFEC  BLT         L_42  ; Targ=0xF8
 00000144  E2800001  ADD         R0,R0,#0x0001 ; i
 00000148  E20000FF  AND         R0,R0,#0x00FF
 0000014C          L_36:
 0000014C  E1A01000  MOV         R1,R0 ; i
 00000150  E1A01C01  MOV         R1,R1,LSL #24 ; i
 00000154  E1A01C21  MOV         R1,R1,LSR #24
 00000158  E3510002  CMP         R1,#0x0002
 0000015C  BAFFFFE3  BLT         L_43  ; Targ=0xF0
  227:      SysClkInit();
 00000160  EBFFFFA6  BL          SysClkInit?A  ; Targ=0x0
  228:       EN_TXD();
 00000164  E5100000  LDR         R0,=0xFFFFF400
 00000168  E5901000  LDR         R1,[R0,#0x0]
 0000016C  E3C11A0F  BIC         R1,R1,#0xF000
 00000170  E5801000  STR         R1,[R0,#0x0]
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 16  

 00000174  E5100000  LDR         R0,=0xFFFFF420
 00000178  E5901000  LDR         R1,[R0,#0x0]
 0000017C  E3811302  ORR         R1,R1,#0x8000000
 00000180  E5801000  STR         R1,[R0,#0x0]
  229:       EN_LED42();
 00000184  E5100000  LDR         R0,=0xFFFFF410
 00000188  E5901000  LDR         R1,[R0,#0x0]
 0000018C  E3C11C0F  BIC         R1,R1,#0x0F00
 00000190  E5801000  STR         R1,[R0,#0x0]
 00000194  E5100000  LDR         R0,=0xFFFFF460
 00000198  E5901000  LDR         R1,[R0,#0x0]
 0000019C  E3811301  ORR         R1,R1,#0x4000000
 000001A0  E5801000  STR         R1,[R0,#0x0]
  230:       OFF_TXD();
 000001A4  E3A01702  MOV         R1,#0x80000
 000001A8  E5100000  LDR         R0,=0xFFFFF428
 000001AC  E5801000  STR         R1,[R0,#0x0]
  231:       OFF_LED42();
 000001B0  E3A05701  MOV         R5,#0x40000
 000001B4  E5100000  LDR         R0,=0xFFFFF464
 000001B8  E5805000  STR         R5,[R0,#0x0]
  232:      cls();
 000001BC  EBFFFF8F  BL          cls?A  ; Targ=0x0
  233:      ADC_init();
 000001C0  EBFFFF8E  BL          ADC_init?A  ; Targ=0x0
  235:      WatchDog();
 000001C4  E3A07A01  MOV         R7,#0x1000
 000001C8  E5100000  LDR         R0,=0xFFFF0360
 000001CC  E5807000  STR         R7,[R0,#0x0]
 000001D0  E3A060FF  MOV         R6,#0xFF
 000001D4  E5100000  LDR         R0,=0xFFFF036C
 000001D8  E5806000  STR         R6,[R0,#0x0]
  237:      Timer0Init();
 000001DC  EBFFFF87  BL          Timer0Init?A  ; Targ=0x0
  238:      Timer3Init();
 000001E0  EBFFFF86  BL          Timer3Init?A  ; Targ=0x0
  239:      UART_init();
 000001E4  EBFFFF85  BL          UART_init?A  ; Targ=0x0
  242:      WatchDog();
 000001E8  E5100000  LDR         R0,=0xFFFF0360
 000001EC  E5807000  STR         R7,[R0,#0x0]
 000001F0  E5100000  LDR         R0,=0xFFFF036C
 000001F4  E5806000  STR         R6,[R0,#0x0]
  243:       print_Z_w();
 000001F8  EBFFFF80  BL          print_Z_w?A  ; Targ=0x0
  247:  ON_LED42();
 000001FC  E5100000  LDR         R0,=0xFFFFF468
 00000200  E5805000  STR         R5,[R0,#0x0]
  248: zus=0;
 00000204  E5100000  LDR         R0,=zus ; zus
 00000208  E5C04000  STRB        R4,[R0,#0x0] ; zus
  256: demarcate(0);
 0000020C  E3A00000  MOV         R0,#0x0
 00000210  EBFFFF7A  BL          demarcate?A  ; Targ=0x0
  260:  z_time = 0;
 00000214  E3A01000  MOV         R1,#0x0
 00000218  E5100000  LDR         R0,=z_time ; z_time
 0000021C  E5801000  STR         R1,[R0,#0x0] ; z_time
  264:      Z_w_value=-90/0.00152; 
 00000220  E5101000  LDR         R1,=0xFFFF18B6
 00000224  E5100000  LDR         R0,=Z_w_value ; Z_w_value
 00000228  E5801000  STR         R1,[R0,#0x0] ; Z_w_value
  265:      ON_LED42();
 0000022C  E3A01701  MOV         R1,#0x40000
 00000230  E5100000  LDR         R0,=0xFFFFF468
 00000234  E5801000  STR         R1,[R0,#0x0]
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 17  

  267:      zus=0;
 00000238  E3A01000  MOV         R1,#0x0
 0000023C  E5100000  LDR         R0,=zus ; zus
 00000240  E5C01000  STRB        R1,[R0,#0x0] ; zus
  268:    do{
 00000244          L_44:
  269:          ON_LED42();
 00000244  E3A03701  MOV         R3,#0x40000
 00000248  E5100000  LDR         R0,=0xFFFFF468
 0000024C  E5803000  STR         R3,[R0,#0x0]
  270:          for(z_time=0;z_time<65000;z_time++)
 00000250  E3A02000  MOV         R2,#0x0
 00000254  E5100000  LDR         R0,=z_time ; z_time
 00000258  E5802000  STR         R2,[R0,#0x0] ; z_time
  273:          }
 0000025C  E5100000  LDR         R0,=z_time ; z_time
 00000260  E5101000  LDR         R1,=0xFDE8
 00000264  E5801000  STR         R1,[R0,#0x0] ; z_time
  274:          OFF_LED42();
 00000268  E5100000  LDR         R0,=0xFFFFF464
 0000026C  E5803000  STR         R3,[R0,#0x0]
  275:          for(z_time=0;z_time<65000;z_time++)
 00000270  E5100000  LDR         R0,=z_time ; z_time
 00000274  E5802000  STR         R2,[R0,#0x0] ; z_time
  278:          }
 00000278  E5100000  LDR         R0,=z_time ; z_time
 0000027C  E5801000  STR         R1,[R0,#0x0] ; z_time
  279:          zus++;
 00000280  E5100000  LDR         R0,=zus ; zus
 00000284  E5D01000  LDRB        R1,[R0,#0x0] ; zus
 00000288  E2811001  ADD         R1,R1,#0x0001
 0000028C  E5C01000  STRB        R1,[R0,#0x0] ; zus
  280:      }while(zus<30);
 00000290  E5100000  LDR         R0,=zus ; zus
 00000294  E5D00000  LDRB        R0,[R0,#0x0] ; zus
 00000298  E350001E  CMP         R0,#0x001E
 0000029C  BAFFFFE8  BLT         L_44  ; Targ=0x244
  286:      while(1)
 000002A0          L_60:
  302:          z_flag_newins = Z_GETYOU();
 000002A0  EBFFFF56  BL          Z_GETYOU?A  ; Targ=0x0
 000002A4  E5101000  LDR         R1,=z_flag_newins ; z_flag_newins
 000002A8  E5C10000  STRB        R0,[R1,#0x0] ; z_flag_newins
  303:         if(z_flag_newins)   //                              //接收中断,处理
 000002AC  E5100000  LDR         R0,=z_flag_newins ; z_flag_newins
 000002B0  E5D00000  LDRB        R0,[R0,#0x0] ; z_flag_newins
 000002B4  E3500000  CMP         R0,#0x0000
 000002B8  0A00002B  BEQ         L_62  ; Targ=0x36C
  304:         {   
 000002BC            ; SCOPE-START
  305:             int z_tempangle=0;
 000002BC  E3A04000  MOV         R4,#0x0
 000002C0  ---- Variable 'z_tempangle' assigned to Register 'R4' ----
  308:            switch(bigp[flag_pri_tim].instruction)
 000002C0  E5100000  LDR         R0,=flag_pri_tim ; flag_pri_tim
 000002C4  E5D00000  LDRB        R0,[R0,#0x0] ; flag_pri_tim
 000002C8  E1A01000  MOV         R1,R0
 000002CC  E3A00015  MOV         R0,#0x15
 000002D0  E0010190  MUL         R1,R0,R1
 000002D4  E5100000  LDR         R0,=bigp ; bigp
 000002D8  E7D00001  LDRB        R0,[R0,+R1]
 000002DC  E3500003  CMP         R0,#0x0003
 000002E0  0A000015  BEQ         L_65  ; Targ=0x33C
 000002E4  E3500004  CMP         R0,#0x0004
 000002E8  0A000018  BEQ         L_66  ; Targ=0x350
 000002EC  E3500005  CMP         R0,#0x0005
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 18  

 000002F0  0A00001B  BEQ         L_67  ; Targ=0x364
 000002F4  E3500002  CMP         R0,#0x0002
 000002F8  1A00001B  BNE         L_62  ; Targ=0x36C
  310:                 case 2:
 000002FC          L_64:
  313:                     z_tempangle=bigp[flag_pri_tim].x[1]<<8;
 000002FC  E5100000  LDR         R0,=bigp + 0x2 ; bigp+2
 00000300  E7D00001  LDRB        R0,[R0,+R1]
 00000304  E1A04000  MOV         R4,R0
 00000308  E1A04404  MOV         R4,R4,LSL #8
  314:                     z_tempangle=z_tempangle+bigp[flag_pri_tim].x[2];
 0000030C  E5100000  LDR         R0,=bigp + 0x3 ; bigp+3
 00000310  E7D00001  LDRB        R0,[R0,+R1]
 00000314  E0844000  ADD         R4,R4,R0 ; z_tempangle
  316:                     Z_w_value=-z_tempangle/0.00152;                 
 00000318  E1A00004  MOV         R0,R4 ; z_tempangle
 0000031C  EBFFFF37  BL          ?C?FCAST?A  ; Targ=0x0 ; ?C?FCAST?A
 00000320  EBFFFF36  BL          ?C?FPNEG?A  ; Targ=0x0 ; ?C?FPNEG?A
 00000324  E5101000  LDR         R1,=0x3AC73ABD
 00000328  EBFFFF34  BL          ?C?FPDIV?A  ; Targ=0x0 ; ?C?FPDIV?A
 0000032C  EBFFFF33  BL          ?C?CASTF?A  ; Targ=0x0 ; ?C?CASTF?A
 00000330  E5101000  LDR         R1,=Z_w_value ; Z_w_value
 00000334  E5810000  STR         R0,[R1,#0x0] ; Z_w_value
  318:                 break;
 00000338  EA00000B  B           L_62  ; Targ=0x36C
  319:                 case 3:
 0000033C          L_65:
  322:                     ZERO_V++;
 0000033C  E5100000  LDR         R0,=ZERO_V ; ZERO_V
 00000340  E5901000  LDR         R1,[R0,#0x0] ; ZERO_V
 00000344  E2811001  ADD         R1,R1,#0x0001
 00000348  E5801000  STR         R1,[R0,#0x0] ; ZERO_V
  325:                 break;
 0000034C  EA000006  B           L_62  ; Targ=0x36C
  326:                 case 4:
 00000350          L_66:
  328:                     ZERO_V--;
 00000350  E5100000  LDR         R0,=ZERO_V ; ZERO_V
 00000354  E5901000  LDR         R1,[R0,#0x0] ; ZERO_V
 00000358  E2411001  SUB         R1,R1,#0x0001
 0000035C  E5801000  STR         R1,[R0,#0x0] ; ZERO_V
  331:                 break;
 00000360  EA000001  B           L_62  ; Targ=0x36C
  332:                 case 5:
 00000364          L_67:
  334:                     demarcate(1);
 00000364  E3A00001  MOV         R0,#0x1
 00000368  EBFFFF24  BL          demarcate?A  ; Targ=0x0
  337:            }
 0000036C            ; SCOPE-END
  338:         }
 0000036C          L_62:
  357:         temp=((int)(Z_w_result));
 0000036C  E5100000  LDR         R0,=Z_w_result ; Z_w_result
 00000370  E5900000  LDR         R0,[R0,#0x0] ; Z_w_result
 00000374  EBFFFF21  BL          ?C?CASTF?A  ; Targ=0x0 ; ?C?CASTF?A
 00000378  E1A04800  MOV         R4,R0,LSL #16
 0000037C  E1A04824  MOV         R4,R4,LSR #16
 00000380  ---- Variable 'temp' assigned to Register 'R4' ----
  358:         Z_Hbit=temp>>8;
 00000380  E1A00004  MOV         R0,R4 ; temp
 00000384  E1A01800  MOV         R1,R0,LSL #16 ; temp
 00000388  E1A01821  MOV         R1,R1,LSR #16
 0000038C  E1A01421  MOV         R1,R1,LSR #8
 00000390  E1A01C01  MOV         R1,R1,LSL #24
 00000394  E1A01C21  MOV         R1,R1,LSR #24
ARM COMPILER V2.53,  main                                                                  22/09/07  23:08:04  PAGE 19  

 00000398  E5100000  LDR         R0,=Z_Hbit ; Z_Hbit
 0000039C  E5C01000  STRB        R1,[R0,#0x0] ; Z_Hbit
  359:         Z_Lbit=temp & 0x00ff;
 000003A0  E1A00004  MOV         R0,R4 ; temp
 000003A4  E1A01800  MOV         R1,R0,LSL #16 ; temp
 000003A8  E1A01821  MOV         R1,R1,LSR #16
 000003AC  E20110FF  AND         R1,R1,#0x00FF
 000003B0  E1A01C01  MOV         R1,R1,LSL #24
 000003B4  E1A01C21  MOV         R1,R1,LSR #24
 000003B8  E5100000  LDR         R0,=Z_Lbit ; Z_Lbit
 000003BC  E5C01000  STRB        R1,[R0,#0x0] ; Z_Lbit
  361:         z_global_send_bufn[1].head=0x02;
 000003C0  E3A01002  MOV         R1,#0x2
 000003C4  E5100000  LDR         R0,=z_global_send_bufn + 0x15 ; z_global_send_bufn+21
 000003C8  E5C01000  STRB        R1,[R0,#0x0] ; z_global_send_bufn+21
  362:         z_global_send_bufn[1].dat[0]= Z_Lbit;
 000003CC  E5100000  LDR         R0,=Z_Lbit ; Z_Lbit
 000003D0  E5D01000  LDRB        R1,[R0,#0x0] ; Z_Lbit
 000003D4  E5100000  LDR         R0,=z_global_send_bufn + 0x16 ; z_global_send_bufn+22
 000003D8  E5C01000  STRB        R1,[R0,#0x0] ; z_global_send_bufn+22
  363:         z_global_send_bufn[1].dat[1]= Z_Hbit;
 000003DC  E5100000  LDR         R0,=Z_Hbit ; Z_Hbit
 000003E0  E5D01000  LDRB        R1,[R0,#0x0] ; Z_Hbit
 000003E4  E5100000  LDR         R0,=z_global_send_bufn + 0x17 ; z_global_send_bufn+23
 000003E8  E5C01000  STRB        R1,[R0,#0x0] ; z_global_send_bufn+23
  366:       WatchDog();
 000003EC  E3A01A01  MOV         R1,#0x1000
 000003F0  E5100000  LDR         R0,=0xFFFF0360
 000003F4  E5801000  STR         R1,[R0,#0x0]
 000003F8  E3A010FF  MOV         R1,#0xFF
 000003FC  E5100000  LDR         R0,=0xFFFF036C
 00000400  E5801000  STR         R1,[R0,#0x0]
  367:       print_Z_w();  //调试W值
 00000404  EBFFFEFD  BL          print_Z_w?A  ; Targ=0x0
  371:       Delay_X_ms(1000);//0.25S       // 调试W时要调整倒1000
 00000408  E3A00FFA  MOV         R0,#0x3E8
 0000040C  EBFFFEFB  BL          Delay_X_ms?A  ; Targ=0x0
  372:       }
 00000410  EAFFFFA2  B           L_60  ; Targ=0x2A0
 00000414            ; SCOPE-END
  373: }
 00000414  E8BD0008  LDMIA       R13!,{R3}
 00000418  E12FFF13  BX          R3
 0000041C          ENDP ; 'main'



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