📄 cstartup_sam7.lst
字号:
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 + -