📄 rtc.lst
字号:
0000001C E321F01F MSR CPSR_c,#0x1F
00000020 E92D4000 STMFD R13!,{LR}
34: alarm_on = 1;
00000024 E3A01001 MOV R1,#0x1
00000028 E5100000 LDR R0,=alarm_on ; alarm_on
0000002C E5801000 STR R1,[R0,#0x0] ; alarm_on
36: IDISABLE;
00000030 E8BD4000 LDMFD R13!,{LR}
00000034 E321F092 MSR CPSR_c,#0x92
00000038 E8BD4000 LDMFD R13!,{LR}
0000003C E16FF00E MSR SPSR_cxsf,R14
37: VICVectAddr = 0; /* Acknowledge Interrupt */
00000040 E3A01000 MOV R1,#0x0
00000044 E5100000 LDR R0,=0xFFFFF030
00000048 E5801000 STR R1,[R0,#0x0]
38: }
0000004C E8BD4003 LDMIA R13!,{R0-R1,LR}
00000050 E25EF004 SUBS R15,R14,#0x0004
00000054 ENDP ; 'RTCHandler?A'
*** CODE SEGMENT '?PR?RTCInit?T?rtc':
51: alarm_on = 0;
00000000 2100 MOV R1,#0x0
00000002 4800 LDR R0,=alarm_on ; alarm_on
00000004 6001 STR R1,[R0,#0x0] ; alarm_on
54: AMR = 0;
00000006 4800 LDR R0,=0xE0024010
00000008 6001 STR R1,[R0,#0x0]
55: CIIR = 0;
0000000A 4800 LDR R0,=0xE002400C
0000000C 6001 STR R1,[R0,#0x0]
56: CCR = 0;
0000000E 4800 LDR R0,=0xE0024008
00000010 6001 STR R1,[R0,#0x0]
57: PREINT = PREINT_RTC;
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 6
00000012 4972 LDR R1,=0x1C8
00000014 4800 LDR R0,=0xE0024080
00000016 6001 STR R1,[R0,#0x0]
58: PREFRAC = PREFRAC_RTC;
00000018 4800 LDR R1,=0x61C0
0000001A 4800 LDR R0,=0xE0024084
0000001C 6001 STR R1,[R0,#0x0]
60: }
0000001E 4770 BX R14
00000020 ENDP ; 'RTCInit?T'
*** CODE SEGMENT '?PR?RTCStart?T?rtc':
74: CCR |= CCR_CLKEN;
00000000 2101 MOV R1,#0x1
00000002 4800 LDR R0,=0xE0024008
00000004 6802 LDR R2,[R0,#0x0]
00000006 430A ORR R2,R1
00000008 6002 STR R2,[R0,#0x0]
75: ILR = ILR_RTCCIF;
0000000A 4800 LDR R0,=0xE0024000
0000000C 6001 STR R1,[R0,#0x0]
77: }
0000000E 4770 BX R14
00000010 ENDP ; 'RTCStart?T'
*** CODE SEGMENT '?PR?RTCStop?T?rtc':
91: CCR &= ~CCR_CLKEN;
00000000 2201 MOV R2,#0x1
00000002 4800 LDR R0,=0xE0024008
00000004 6801 LDR R1,[R0,#0x0]
00000006 4391 BIC R1,R2
00000008 6001 STR R1,[R0,#0x0]
93: }
0000000A 4770 BX R14
0000000C ENDP ; 'RTCStop?T'
*** CODE SEGMENT '?PR?RTC_CTCReset?T?rtc':
107: CCR |= CCR_CTCRST;
00000000 2202 MOV R2,#0x2
00000002 4800 LDR R0,=0xE0024008
00000004 6801 LDR R1,[R0,#0x0]
00000006 4311 ORR R1,R2
00000008 6001 STR R1,[R0,#0x0]
109: }
0000000A 4770 BX R14
0000000C ENDP ; 'RTC_CTCReset?T'
*** CODE SEGMENT '?PR?RTCSetTime?T?rtc':
122: SEC = Time.RTC_Sec;
00000000 9900 LDR R1,[R13,#0x0] ; Time
00000002 4800 LDR R0,=0xE0024020
00000004 6001 STR R1,[R0,#0x0]
123: MIN = Time.RTC_Min;
00000006 9901 LDR R1,[R13,#0x4] ; Time
00000008 4800 LDR R0,=0xE0024024
0000000A 6001 STR R1,[R0,#0x0]
124: HOUR = Time.RTC_Hour;
0000000C 9902 LDR R1,[R13,#0x8] ; Time
0000000E 4800 LDR R0,=0xE0024028
00000010 6001 STR R1,[R0,#0x0]
125: DOM = Time.RTC_Mday;
00000012 9903 LDR R1,[R13,#0xC] ; Time
00000014 4800 LDR R0,=0xE002402C
00000016 6001 STR R1,[R0,#0x0]
126: DOW = Time.RTC_Wday;
00000018 9906 LDR R1,[R13,#0x18] ; Time
0000001A 4800 LDR R0,=0xE0024030
0000001C 6001 STR R1,[R0,#0x0]
127: DOY = Time.RTC_Yday;
0000001E 9907 LDR R1,[R13,#0x1C] ; Time
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 7
00000020 4800 LDR R0,=0xE0024034
00000022 6001 STR R1,[R0,#0x0]
128: MONTH = Time.RTC_Mon;
00000024 9904 LDR R1,[R13,#0x10] ; Time
00000026 4800 LDR R0,=0xE0024038
00000028 6001 STR R1,[R0,#0x0]
129: YEAR = Time.RTC_Year;
0000002A 9905 LDR R1,[R13,#0x14] ; Time
0000002C 4800 LDR R0,=0xE002403C
0000002E 6001 STR R1,[R0,#0x0]
131: }
00000030 4770 BX R14
00000032 ENDP ; 'RTCSetTime?T'
*** CODE SEGMENT '?PR?RTCSetAlarm?T?rtc':
144: ALSEC = Alarm.RTC_Sec;
00000000 9900 LDR R1,[R13,#0x0] ; Alarm
00000002 4800 LDR R0,=0xE0024060
00000004 6001 STR R1,[R0,#0x0]
145: ALMIN = Alarm.RTC_Min;
00000006 9901 LDR R1,[R13,#0x4] ; Alarm
00000008 4800 LDR R0,=0xE0024064
0000000A 6001 STR R1,[R0,#0x0]
146: ALHOUR = Alarm.RTC_Hour;
0000000C 9902 LDR R1,[R13,#0x8] ; Alarm
0000000E 4800 LDR R0,=0xE0024068
00000010 6001 STR R1,[R0,#0x0]
147: ALDOM = Alarm.RTC_Mday;
00000012 9903 LDR R1,[R13,#0xC] ; Alarm
00000014 4800 LDR R0,=0xE002406C
00000016 6001 STR R1,[R0,#0x0]
148: ALDOW = Alarm.RTC_Wday;
00000018 9906 LDR R1,[R13,#0x18] ; Alarm
0000001A 4800 LDR R0,=0xE0024070
0000001C 6001 STR R1,[R0,#0x0]
149: ALDOY = Alarm.RTC_Yday;
0000001E 9907 LDR R1,[R13,#0x1C] ; Alarm
00000020 4800 LDR R0,=0xE0024074
00000022 6001 STR R1,[R0,#0x0]
150: ALMON = Alarm.RTC_Mon;
00000024 9904 LDR R1,[R13,#0x10] ; Alarm
00000026 4800 LDR R0,=0xE0024078
00000028 6001 STR R1,[R0,#0x0]
151: ALYEAR = Alarm.RTC_Year;
0000002A 9905 LDR R1,[R13,#0x14] ; Alarm
0000002C 4800 LDR R0,=0xE002407C
0000002E 6001 STR R1,[R0,#0x0]
153: }
00000030 4770 BX R14
00000032 ENDP ; 'RTCSetAlarm?T'
*** CODE SEGMENT '?PR?RTCGetTime?T?rtc':
164: RTCTime RTCGetTime( void )
00000000 B410 PUSH {R4}
00000002 1C04 MOV R4,R0 ; ?STR_RET?
00000004 ---- Variable '?STR_RET?' assigned to Register 'R4' ----
00000004 B088 SUB R13,#0x20
165: {
00000006 ; SCOPE-START
168: LocalTime.RTC_Sec = SEC;
00000006 4800 LDR R0,=0xE0024020
00000008 6800 LDR R0,[R0,#0x0]
0000000A 9000 STR R0,[R13,#0x0] ; LocalTime
169: LocalTime.RTC_Min = MIN;
0000000C 4800 LDR R0,=0xE0024024
0000000E 6800 LDR R0,[R0,#0x0]
00000010 9001 STR R0,[R13,#0x4] ; LocalTime
170: LocalTime.RTC_Hour = HOUR;
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 8
00000012 4800 LDR R0,=0xE0024028
00000014 6800 LDR R0,[R0,#0x0]
00000016 9002 STR R0,[R13,#0x8] ; LocalTime
171: LocalTime.RTC_Mday = DOM;
00000018 4800 LDR R0,=0xE002402C
0000001A 6800 LDR R0,[R0,#0x0]
0000001C 9003 STR R0,[R13,#0xC] ; LocalTime
172: LocalTime.RTC_Wday = DOW;
0000001E 4800 LDR R0,=0xE0024030
00000020 6800 LDR R0,[R0,#0x0]
00000022 9006 STR R0,[R13,#0x18] ; LocalTime
173: LocalTime.RTC_Yday = DOY;
00000024 4800 LDR R0,=0xE0024034
00000026 6800 LDR R0,[R0,#0x0]
00000028 9007 STR R0,[R13,#0x1C] ; LocalTime
174: LocalTime.RTC_Mon = MONTH;
0000002A 4800 LDR R0,=0xE0024038
0000002C 6800 LDR R0,[R0,#0x0]
0000002E 9004 STR R0,[R13,#0x10] ; LocalTime
175: LocalTime.RTC_Year = YEAR;
00000030 4800 LDR R0,=0xE002403C
00000032 6800 LDR R0,[R0,#0x0]
00000034 9005 STR R0,[R13,#0x14] ; LocalTime
176: return LocalTime;
00000036 A900 ADD R1,R13,#0x0
00000038 1C20 MOV R0,R4 ; ?STR_RET?
0000003A 1C00 MOV R0,R0 ; ?STR_RET?
0000003C D004 BEQ L_11 ; T=0x00000048
0000003E 2208 MOV R2,#0x8
00000040 L_12:
00000040 C908 LDMIA R1!,{R3}
00000042 C008 STMIA R0!,{R3}
00000044 1E52 SUB R2,R2,#0x1
00000046 D1FB BNE L_12 ; T=0x00000040
00000048 L_11:
00000048 ; SCOPE-END
177: }
00000048 B008 ADD R13,#0x20
0000004A BC10 POP {R4}
0000004C 4770 BX R14
0000004E ENDP ; 'RTCGetTime?T'
*** CODE SEGMENT '?PR?RTCSetAlarmMask?T?rtc':
188: void RTCSetAlarmMask( DWORD AlarmMask )
00000000 1C02 MOV R2,R0 ; AlarmMask
00000002 ---- Variable 'AlarmMask' assigned to Register 'R2' ----
191: AMR = AlarmMask;
00000002 1C11 MOV R1,R2 ; AlarmMask
00000004 4800 LDR R0,=0xE0024010
00000006 6001 STR R1,[R0,#0x0]
193: }
00000008 4770 BX R14
0000000A ENDP ; 'RTCSetAlarmMask?T'
Module Information Static
----------------------------------
code size = ------
data size = 4
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 + -