📄 main.lst
字号:
139:main.c **** void set_time(void)
140:main.c **** {
134 retend = 0, frame = 0
135 @ frame_needed = 0, uses_anonymous_args = 0
136 @ link register save eliminated.
137 .LVL2:
138 .loc 1 141 0
141:main.c **** YEAR = 2006; // Year
139 r2, .L15
140 00c8 54209FE5 ldr r3, .L15+4
141 00cc 54309FE5 str r2, [r3, #0]
142 00d0 002083E5 .loc 1 142 0
142:main.c **** MONTH = 5; // Month
143 r2, #5
144 00d4 0520A0E3 sub r3, r3, #4
145 00d8 043043E2 str r2, [r3, #0]
146 00dc 002083E5 .loc 1 143 0
143:main.c **** DOM = 23; // Day of month
147 r1, #23
148 00e0 1710A0E3 sub r3, r3, #12
149 00e4 0C3043E2 str r1, [r3, #0]
150 00e8 001083E5 .loc 1 144 0
144:main.c **** DOY = 38; // Day of year
151 r2, r2, #33
152 00ec 212082E2 add r3, r3, #8
153 00f0 083083E2 str r2, [r3, #0]
154 00f4 002083E5 .loc 1 145 0
145:main.c **** DOW = 143; // Day of week
155 r2, r2, #105
156 00f8 692082E2 sub r3, r3, #4
157 00fc 043043E2 str r2, [r3], #-8
158 0100 082003E4 .loc 1 146 0
146:main.c **** HOUR = 23; // Hours
159 r1, [r3, #0]
160 0104 001083E5 .loc 1 147 0
147:main.c **** MIN = 14; // Minutes
161 ov r2, #14
162 0108 0E20A0E3 sub r3, r3, #4
163 010c 043043E2 str r2, [r3, #0]
164 0110 002083E5 .loc 1 148 0
148:main.c **** SEC = 30; // Seconds
165 r2, r2, #16
166 0114 102082E2 sub r3, r3, #4
167 0118 043043E2 .loc 1 140 0
168 @ lr needed for prologue
169 .loc 1 148 0
170 str r2, [r3, #0]
171 011c 002083E5 .loc 1 149 0
149:main.c **** }
172 .L16:
173 0120 1EFF2FE1 .align 2
174 .L15:
175 .word 2006
176 .word -536723396
177 0124 D6070000 .LFE6:
179 .section .rodata.str1.4
180 .align 2
181 .LC2:
182 .ascii "\012\015RTC interupts every second\015\012\000"
183 .text
184 0010 0A0D5254 .align 2
184 4320696E
184 74657275
184 70747320
184 65766572
185 002f 00 .global main
187 main:
188 .LFB7:
189 .loc 1 169 0
190 @ args = 0, pretend = 0, frame = 0
150:main.c ****
151:main.c **** /******************************************************************************
152:main.c **** *
153:main.c **** * Function Name: main()
154:main.c **** *
155:main.c **** * Description:
156:main.c **** * This function is the program entry point. After initializing the
157:main.c **** * system, it sends a greeting out UART0 then enters an endless loop
158:main.c **** * echoing chracters on the UART and blinking an LED every half
159:main.c **** * second.
160:main.c **** *
161:main.c **** * Calling Sequence:
162:main.c **** * void
163:main.c **** *
164:main.c **** * Returns:
165:main.c **** * void
166:main.c **** *
167:main.c **** *****************************************************************************/
168:main.c **** int main(void)
169:main.c **** {
191 , uses_anonymous_args = 0
192 .LVL3:
193 .LBB2:
194 .LBB3:
195 .LBB4:
196 .LBB5:
197 .loc 1 38 0
198 ldr r2, .L24
199 mov r3, #36
200 012c D4209FE5 .LBE5:
201 0130 2430A0E3 .LBE4:
202 .LBE3:
203 .LBE2:
204 .loc 1 169 0
205 stmfd sp!, {r4, lr}
206 .LCFI1:
207 0134 10402DE9 .LBB6:
208 .LBB7:
209 .LBB8:
210 .LBB9:
211 .loc 1 38 0
212 strb r3, [r2, #132]
213 .loc 1 41 0
214 0138 8430C2E5 mov r3, #1
215 strb r3, [r2, #128]
216 013c 0130A0E3 .loc 1 46 0
217 0140 8030C2E5 ldr r1, .L24+4
218 ldr r0, .L24+8
219 0144 C0109FE5 .loc 1 42 0
220 0148 C0009FE5 mvn r3, #85
221 strb r3, [r2, #140]
222 014c 5530E0E3 .loc 1 47 0
223 0150 8C30C2E5 mov ip, #0
224 .loc 1 50 0
225 0154 00C0A0E3 mvn lr, #0
226 .loc 1 43 0
227 0158 00E0E0E3 add r3, r3, #171
228 strb r3, [r2, #140]
229 015c AB3083E2 .loc 1 46 0
230 0160 8C30C2E5 str r0, [r1, #12]
231 .loc 1 47 0
232 0164 0C0081E5 str ip, [r1, #4]
233 .loc 1 48 0
234 0168 04C081E5 str r0, [r1, #8]
235 .loc 1 50 0
236 016c 080081E5 str lr, [r1, #28]
237 .loc 1 51 0
238 0170 1CE081E5 str ip, [r1, #20]
239 .loc 1 52 0
240 0174 14C081E5 str lr, [r1, #24]
241 .L18:
242 0178 18E081E5 .loc 1 55 0
243 ldr r0, .L24
244 ldrh r3, [r0, #136]
245 017c 84009FE5 tst r3, #1024
246 0180 B838D0E1 beq .L18
247 0184 010B13E3 .loc 1 59 0
248 0188 FBFFFF0A mov r4, #3
249 .loc 1 60 0
250 018c 0340A0E3 mvn r3, #85
251 .loc 1 59 0
252 0190 5530E0E3 strb r4, [r0, #128]
253 .loc 1 60 0
254 0194 8040C0E5 strb r3, [r0, #140]
255 .loc 1 61 0
256 0198 8C30C0E5 add r3, r3, #171
257 strb r3, [r0, #140]
258 019c AB3083E2 .LBE9:
259 01a0 8C30C0E5 .LBE8:
260 .loc 1 100 0
261 ldr r2, .L24+12
262 .LBB10:
263 01a4 68209FE5 .LBB11:
264 .loc 1 65 0
265 mov r1, #2
266 .LBE11:
267 01a8 0210A0E3 .LBE10:
268 .loc 1 95 0
269 mov r3, #1
270 .LBB12:
271 01ac 0130A0E3 .LBB13:
272 .loc 1 64 0
273 strb r4, [r0, #4]
274 .loc 1 65 0
275 01b0 0440C0E5 strb r1, [r0, #0]
276 .loc 1 69 0
277 01b4 0010C0E5 strb r1, [r0, #256]
278 .LBE13:
279 01b8 0011C0E5 .LBE12:
280 .loc 1 95 0
281 strb r3, [r0, #64]
282 .loc 1 100 0
283 01bc 4030C0E5 mvn r3, #0
284 str r3, [r2, #20]
285 01c0 0030E0E3 .loc 1 101 0
286 01c4 143082E5 add r3, r3, #1
287 str r3, [r2, #12]
288 01c8 013083E2 .loc 1 105 0
289 01cc 0C3082E5 ldr r3, .L24+16
290 str r3, [r2, #52]
291 01d0 40309FE5 .loc 1 108 0
292 01d4 343082E5 bl initSysTime
293 .loc 1 110 0
294 01d8 FEFFFFEB mov r1, r4
295 mov r2, #129
296 01dc 0410A0E1 mov r0, #16
297 01e0 8120A0E3 bl uart0Init
298 01e4 1000A0E3 .LBE7:
299 01e8 FEFFFFEB .LBE6:
300 .loc 1 173 0
301 bl enableIRQ
170:main.c **** uint32_t startTime;
171:main.c **** sysInit();
172:main.c **** #if defined(UART0_TX_INT_MODE) || defined(UART0_RX_INT_MODE)
173:main.c **** enableIRQ();
302 8 0
303 01ec FEFFFFEB bl set_time
174:main.c **** #endif
175:main.c **** uart0Puts("\n\rRTC interupts every second\r\n");
304 20:
305 01f0 24009FE5 b .L20
306 01f4 FEFFFFEB .L25:
176:main.c **** startTime = getSysTICs();
307 lign 2
308 01f8 FEFFFFEB .L24:
177:main.c **** init_rtc();
309 word -534790144
310 01fc FEFFFFEB .word -536707072
178:main.c **** set_time();
311 word -23300
312 0200 FEFFFFEB .word -4096
313 .word reset
314 0204 FEFFFFEA .word .LC2
315 .LFE7:
317 .section .debug_frame,"",%progbits
318 0208 00C01FE0 .Lframe0:
319 020c 008002E0 .4byte .LECIE0-.LSCIE0
320 0210 FCA4FFFF .LSCIE0:
321 0214 00F0FFFF .4byte 0xffffffff
322 0218 00000000 .byte 0x1
323 021c 10000000 .ascii "\000"
324 .uleb128 0x1
325 .sleb128 -4
401 .4byte .Ltext0
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:15 .bss:00000000 time_toggle
.bss:00000000 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:27 .text:00000000 rtc0
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:35 .text:00000000 $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:77 .text:00000064 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:88 .text:0000007c init_rtc
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:96 .text:0000007c $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:124 .text:000000bc $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:132 .text:000000c8 set_time
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:140 .text:000000c8 $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:177 .text:00000124 $d
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:189 .text:0000012c main
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:200 .text:0000012c $a
C:\DOCUME~1\MINDAU~1\LOCALS~1\Temp/ccQZaaaa.s:318 .text:00000208 $d
UNDEFINED SYMBOLS
uart0Puts
initSysTime
uart0Init
enableIRQ
getSysTICs
reset
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -