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

📄 main.lst

📁 ARM7x256开发板的了LED测试程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 2315: __inline void AT91F_SSC_SetBaudrate (
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  ---- Variable 'speed' assigned to Register 'R2' ----
 00000002  1C0D      MOV         R5,R1 ; mainClock
 00000004  ---- Variable 'mainClock' assigned to Register 'R5' ----
 00000004  1C04      MOV         R4,R0 ; pSSC
 00000006  ---- Variable 'pSSC' assigned to Register 'R4' ----
 00000006  ---- Variable 'baud_value' assigned to Register 'R3' ----
 2319: {
 00000006            ; SCOPE-START
 2322:         if (speed == 0)
 00000006  1C10      MOV         R0,R2 ; speed
 00000008  2800      CMP         R0,#0x0 ; speed
 0000000A  D101      BNE         L_48  ; T=0x00000010
 2323:            baud_value = 0;
 0000000C  2300      MOV         R3,#0x0
 0000000E  E01C      B           L_49  ; T=0x0000004A
 00000010          L_48:
 2326:            baud_value = (unsigned int) (mainClock * 10)/(2*speed);
 00000010  1C11      MOV         R1,R2 ; speed
 00000012  0049      LSL         R1,R1,#0x1 ; speed
 00000014  1C28      MOV         R0,R5 ; mainClock
 00000016  220A      MOV         R2,#0xA
 00000018  4350      MUL         R0,R2
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 17  

 0000001A  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 0000001C  FFF1      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 0000001E  1C08      MOV         R0,R1
 00000020  1C03      MOV         R3,R0 ; baud_value
 2327:            if ((baud_value % 10) >= 5)
 00000022  1C11      MOV         R1,R2
 00000024  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000026  FFEC      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000028  1C01      MOV         R1,R0
 0000002A  2905      CMP         R1,#0x5
 0000002C  D307      BCC         L_50  ; T=0x0000003E
 2328:                   baud_value = (baud_value / 10) + 1;
 0000002E  1C18      MOV         R0,R3 ; baud_value
 00000030  1C11      MOV         R1,R2
 00000032  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000034  FFE5      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000036  1C08      MOV         R0,R1
 00000038  1C03      MOV         R3,R0
 0000003A  3301      ADD         R3,#0x1
 0000003C  E005      B           L_49  ; T=0x0000004A
 0000003E          L_50:
 2330:                   baud_value /= 10;
 0000003E  1C18      MOV         R0,R3 ; baud_value
 00000040  1C11      MOV         R1,R2
 00000042  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000044  FFDD      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
 00000046  1C08      MOV         R0,R1
 00000048  1C03      MOV         R3,R0 ; baud_value
 2331:         }
 0000004A          L_49:
 2333:         pSSC->SSC_CMR = baud_value;
 0000004A  1C19      MOV         R1,R3 ; baud_value
 0000004C  1C20      MOV         R0,R4 ; pSSC
 0000004E  6041      STR         R1,[R0,#0x4]
 00000050            ; SCOPE-END
 2334: }
 00000050  BC30      POP         {R4-R5}
 00000052  BC08      POP         {R3}
 00000054  4718      BX          R3
 00000056          ENDP ; 'AT91F_SSC_SetBaudrate?T'


*** CODE SEGMENT '?PR?AT91F_SSC_GetInterruptMaskStatus?T?main':
 2486: __inline unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pSsc
 00000002  ---- Variable 'pSsc' assigned to Register 'R1' ----
 2489:         return pSsc->SSC_IMR;
 00000002  1C08      MOV         R0,R1 ; pSsc
 00000004  6CC0      LDR         R0,[R0,#0x4C]
 2490: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_SSC_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_TWI_GetInterruptMaskStatus?T?main':
 2551: __inline unsigned int AT91F_TWI_GetInterruptMaskStatus( // \return TWI Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pTwi
 00000002  ---- Variable 'pTwi' assigned to Register 'R1' ----
 2554:         return pTwi->TWI_IMR;
 00000002  1C08      MOV         R0,R1 ; pTwi
 00000004  6AC0      LDR         R0,[R0,#0x2C]
 2555: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_TWI_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_PWMC_GetStatus?T?main':
 2575: __inline unsigned int AT91F_PWMC_GetStatus( // \return PWM Interrupt Status
 00000000  1C01      MOV         R1,R0 ; pPWM
 00000002  ---- Variable 'pPWM' assigned to Register 'R1' ----
 2578:     return pPWM->PWMC_SR;
 00000002  1C08      MOV         R0,R1 ; pPWM
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 18  

 00000004  68C0      LDR         R0,[R0,#0xC]
 2579: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PWMC_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_PWMC_GetInterruptMaskStatus?T?main':
 2607: __inline unsigned int AT91F_PWMC_GetInterruptMaskStatus( // \return PWM Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pPwm
 00000002  ---- Variable 'pPwm' assigned to Register 'R1' ----
 2610:         return pPwm->PWMC_IMR;
 00000002  1C08      MOV         R0,R1 ; pPwm
 00000004  6980      LDR         R0,[R0,#0x18]
 2611: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PWMC_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_UDP_GetInterruptMaskStatus?T?main':
 2863: __inline unsigned int AT91F_UDP_GetInterruptMaskStatus(
 00000000  1C01      MOV         R1,R0 ; pUdp
 00000002  ---- Variable 'pUdp' assigned to Register 'R1' ----
 2866:   return pUdp->UDP_IMR;
 00000002  1C08      MOV         R0,R1 ; pUdp
 00000004  6980      LDR         R0,[R0,#0x18]
 2867: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_UDP_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_TC_GetInterruptMaskStatus?T?main':
 2950: __inline unsigned int AT91F_TC_GetInterruptMaskStatus( // \return TC Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pTc
 00000002  ---- Variable 'pTc' assigned to Register 'R1' ----
 2953:         return pTc->TC_IMR;
 00000002  1C08      MOV         R0,R1 ; pTc
 00000004  6AC0      LDR         R0,[R0,#0x2C]
 2954: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_TC_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_CAN_GetStatus?T?main':
 3045: __inline unsigned int AT91F_CAN_GetStatus( // \return CAN Interrupt Status
 00000000  1C01      MOV         R1,R0 ; pCAN
 00000002  ---- Variable 'pCAN' assigned to Register 'R1' ----
 3048:     return pCAN->CAN_SR;
 00000002  1C08      MOV         R0,R1 ; pCAN
 00000004  6900      LDR         R0,[R0,#0x10]
 3049: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_CAN_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_CAN_GetInterruptMaskStatus?T?main':
 3055: __inline unsigned int AT91F_CAN_GetInterruptMaskStatus( // \return CAN Interrupt Mask Status
 00000000  1C01      MOV         R1,R0 ; pCAN
 00000002  ---- Variable 'pCAN' assigned to Register 'R1' ----
 3058:     return pCAN->CAN_IMR;
 00000002  1C08      MOV         R0,R1 ; pCAN
 00000004  68C0      LDR         R0,[R0,#0xC]
 3059: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_CAN_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?AT91F_ADC_GetStatus?T?main':
 3356: __inline unsigned int AT91F_ADC_GetStatus( // \return ADC Interrupt Status
 00000000  1C01      MOV         R1,R0 ; pADC
 00000002  ---- Variable 'pADC' assigned to Register 'R1' ----
 3359:     return pADC->ADC_SR;
 00000002  1C08      MOV         R0,R1 ; pADC
 00000004  69C0      LDR         R0,[R0,#0x1C]
 3360: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_ADC_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_ADC_GetInterruptMaskStatus?T?main':
 3366: __inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 19  

 00000000  1C01      MOV         R1,R0 ; pADC
 00000002  ---- Variable 'pADC' assigned to Register 'R1' ----
 3369:     return pADC->ADC_IMR;
 00000002  1C08      MOV         R0,R1 ; pADC
 00000004  6AC0      LDR         R0,[R0,#0x2C]
 3370: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_ADC_GetInterruptMaskStatus?T'


*** CODE SEGMENT '?PR?main?main':
   25: int main()
 00000000  B500      PUSH        {LR}
   27:        AT91C_BASE_RSTC->RSTC_RMR = AT91C_RSTC_URSTEN | (0x4<<8) | (unsigned int)(0xA5<<24);
 00000002  4800      LDR         R1,=0xA5000401
 00000004  4800      LDR         R0,=0xFFFFFD08
 00000006  6001      STR         R1,[R0,#0x0]
   30:        AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
 00000008  4800      LDR         R0,=0xFFFFFC00
 0000000A  2104      MOV         R1,#0x4
 0000000C  F7FF      BL          AT91F_PMC_EnablePeriphClock?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          AT91F_PMC_EnablePeriphClock?T  ; T=0x0001  (2)
   31:        AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB;
 00000010  2108      MOV         R1,#0x8
 00000012  4800      LDR         R0,=0xFFFFFC10
 00000014  6001      STR         R1,[R0,#0x0]
   34:        AT91F_PIO_CfgOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
 00000016  4800      LDR         R0,=0xFFFFF600
 00000018  4800      LDR         R1,=0x6000000
 0000001A  F7FF      BL          AT91F_PIO_CfgOutput?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          AT91F_PIO_CfgOutput?T  ; T=0x0001  (2)
   37:        AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
 0000001E  4800      LDR         R0,=0xFFFFF600
 00000020  4800      LDR         R1,=0x6000000
 00000022  F7FF      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (1)
 00000024  FFED      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (2)
   39:        AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
 00000026  4800      LDR         R0,=0xFFFFF600
 00000028  4800      LDR         R1,=0x6000000
 0000002A  F7FF      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (2)
   42:    while (1)
 0000002E          L_64:
   47:         AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED1) ;
 0000002E  4800      LDR         R0,=0xFFFFF600
 00000030  4800      LDR         R1,=0x2000000
 00000032  F7FF      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (1)
 00000034  FFE5      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (2)
   49:         AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED2);
 00000036  4800      LDR         R0,=0xFFFFF600
 00000038  4800      LDR         R1,=0x4000000
 0000003A  F7FF      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (2)
   51:         delay_1ms(600);
 0000003E  4896      LDR         R0,=0x258
 00000040  F7FF      BL          delay_1ms?T  ; T=0x0001  (1)
 00000042  FFDE      BL          delay_1ms?T  ; T=0x0001  (2)
   53:         AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED1 ) ;
 00000044  4800      LDR         R0,=0xFFFFF600
 00000046  4800      LDR         R1,=0x2000000
 00000048  F7FF      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (1)
 0000004A  FFDA      BL          AT91F_PIO_SetOutput?T  ; T=0x0001  (2)
   55:         AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED2 ) ;
 0000004C  4800      LDR         R0,=0xFFFFF600
 0000004E  4800      LDR         R1,=0x4000000
 00000050  F7FF      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (1)
 00000052  FFD6      BL          AT91F_PIO_ClearOutput?T  ; T=0x0001  (2)
   57:         delay_1ms(600);        
ARM COMPILER V2.42,  main                                                                  14/02/07  10:22:57  PAGE 20  

 00000054  4896      LDR         R0,=0x258
 00000056  F7FF      BL          delay_1ms?T  ; T=0x0001  (1)
 00000058  FFD3      BL          delay_1ms?T  ; T=0x0001  (2)
   60:     }
 0000005A  E7E8      B           L_64  ; T=0x0000002E
   62: }//* End
 0000005C  BC08      POP         {R3}
 0000005E  4718      BX          R3
 00000060          ENDP ; 'main'



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 + -