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

📄 cstartup_sam7.lst

📁 ARM7x256开发板的了LED测试程序
💻 LST
📖 第 1 页 / 共 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?Cstartup_SAM7':
 2486: __inline unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 17  

 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?Cstartup_SAM7':
 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?Cstartup_SAM7':
 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
 00000004  68C0      LDR         R0,[R0,#0xC]
 2579: }
 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_PWMC_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_PWMC_GetInterruptMaskStatus?T?Cstartup_SAM7':
 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?Cstartup_SAM7':
 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?Cstartup_SAM7':
 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?Cstartup_SAM7':
 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: }
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 18  

 00000006  4770      BX          R14
 00000008          ENDP ; 'AT91F_CAN_GetStatus?T'


*** CODE SEGMENT '?PR?AT91F_CAN_GetInterruptMaskStatus?T?Cstartup_SAM7':
 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?Cstartup_SAM7':
 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?Cstartup_SAM7':
 3366: __inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status
 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?AT91F_LowLevelInit?T?Cstartup_SAM7':
   35: {
 00000000            ; SCOPE-START
   40:     AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS;      // 1 Wait State necessary to work at 48MHz
 00000000  4940      LDR         R1,=0x100
 00000002  4800      LDR         R0,=0xFFFFFF60
 00000004  6001      STR         R1,[R0,#0x0]
   47:     AT91C_BASE_PMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x40 <<8) | AT91C_CKGR_MOSCEN ));
 00000006  4800      LDR         R1,=0x4001
 00000008  4800      LDR         R0,=0xFFFFFC20
 0000000A  6001      STR         R1,[R0,#0x0]
   49:     while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));
 0000000C          L_62:
 0000000C  4800      LDR         R0,=0xFFFFFC68
 0000000E  6800      LDR         R0,[R0,#0x0]
 00000010  2101      MOV         R1,#0x1
 00000012  4208      TST         R0,R1
 00000014  D0FA      BEQ         L_62  ; T=0x0000000C
   58:       (AT91C_CKGR_MUL & (72 << 16)) | (AT91C_CKGR_DIV & 14);
 00000016  4800      LDR         R1,=0x10483F0E
 00000018  4800      LDR         R0,=0xFFFFFC2C
 0000001A  6001      STR         R1,[R0,#0x0]
   60:     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK) );
 0000001C          L_66:
 0000001C  4800      LDR         R0,=0xFFFFFC68
 0000001E  6800      LDR         R0,[R0,#0x0]
 00000020  2104      MOV         R1,#0x4
 00000022  4208      TST         R0,R1
 00000024  D0FA      BEQ         L_66  ; T=0x0000001C
   62:     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
 00000026          L_70:
 00000026  4800      LDR         R0,=0xFFFFFC68
 00000028  6800      LDR         R0,[R0,#0x0]
 0000002A  2108      MOV         R1,#0x8
ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 19  

 0000002C  4208      TST         R0,R1
 0000002E  D0FA      BEQ         L_70  ; T=0x00000026
   69:     AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;
 00000030  2104      MOV         R1,#0x4
 00000032  4800      LDR         R0,=0xFFFFFC30
 00000034  6001      STR         R1,[R0,#0x0]
   71:     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
 00000036          L_74:
 00000036  4800      LDR         R0,=0xFFFFFC68
 00000038  6800      LDR         R0,[R0,#0x0]
 0000003A  2108      MOV         R1,#0x8
 0000003C  4208      TST         R0,R1
 0000003E  D0FA      BEQ         L_74  ; T=0x00000036
   73:     AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;
 00000040  2203      MOV         R2,#0x3
 00000042  4800      LDR         R0,=0xFFFFFC30
 00000044  6801      LDR         R1,[R0,#0x0]
 00000046  4311      ORR         R1,R2
 00000048  6001      STR         R1,[R0,#0x0]
   75:     while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );
 0000004A          L_78:
 0000004A  4800      LDR         R0,=0xFFFFFC68
 0000004C  6800      LDR         R0,[R0,#0x0]
 0000004E  2108      MOV         R1,#0x8
 00000050  4208      TST         R0,R1
 00000052  D0FA      BEQ         L_78  ; T=0x0000004A
   80:     AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
 00000054  4800      LDR         R1,=0x8000
 00000056  4800      LDR         R0,=0xFFFFFD44
 00000058  6001      STR         R1,[R0,#0x0]
   85:     AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
 0000005A  4800      LDR         R1,=AT91F_Default_FIQ_handler?T ; AT91F_Default_FIQ_handler?T
 0000005C  4800      LDR         R0,=0xFFFFF080
 0000005E  6001      STR         R1,[R0,#0x0]
   86:     for (i = 1; i < 31; i++) {
 00000060  2001      MOV         R0,#0x1
 00000062  ---- Variable 'i' assigned to Register 'R0' ----
 00000062  E009      B           L_84  ; T=0x00000078
 00000064          L_85:
   87:         AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
 00000064  4800      LDR         R1,=AT91F_Default_IRQ_handler?T ; AT91F_Default_IRQ_handler?T
 00000066  1C02      MOV         R2,R0 ; i
 00000068  0613      LSL         R3,R2,#0x18 ; i
 0000006A  0E1B      LSR         R3,R3,#0x18
 0000006C  009B      LSL         R3,R3,#0x2
 0000006E  4800      LDR         R2,=0xFFFFF080
 00000070  50D1      STR         R1,[R2,R3]
   88:     }
 00000072  3001      ADD         R0,#0x1
 00000074  0600      LSL         R0,R0,#0x18
 00000076  0E00      LSR         R0,R0,#0x18
 00000078          L_84:
 00000078  1C01      MOV         R1,R0 ; i
 0000007A  0609      LSL         R1,R1,#0x18 ; i
 0000007C  0E09      LSR         R1,R1,#0x18
 0000007E  291F      CMP         R1,#0x1F
 00000080  DBF0      BLT         L_85  ; T=0x00000064
   89:     AT91C_BASE_AIC->AIC_SPU = (unsigned int) AT91F_Spurious_handler;
 00000082  4800      LDR         R1,=AT91F_Spurious_handler?T ; AT91F_Spurious_handler?T
 00000084  4800      LDR         R0,=0xFFFFF134
 00000086  6001      STR         R1,[R0,#0x0]
 00000088            ; SCOPE-END
   90: }
 00000088  4770      BX          R14
 0000008A          ENDP ; 'AT91F_LowLevelInit?T'


ARM COMPILER V2.42,  Cstartup_SAM7                                                         14/02/07  10:22:56  PAGE 20  


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