📄 os_time.lst
字号:
245 0084 90E0 ldi r25,hi8(81)
246 0086 73C0 rjmp .L4
247 .L7:
88:os/source/os_time.c **** }
89:os/source/os_time.c **** if (seconds > 59) {
249 .LM14:
250 0088 ABE3 ldi r26,lo8(59)
251 008a AD15 cp r26,r13
252 008c 18F4 brsh .L8
90:os/source/os_time.c **** return (OS_TIME_INVALID_SECONDS);
254 .LM15:
255 008e 82E5 ldi r24,lo8(82)
256 0090 90E0 ldi r25,hi8(82)
257 0092 6DC0 rjmp .L4
258 .L8:
91:os/source/os_time.c **** }
92:os/source/os_time.c **** if (milli > 999) {
260 .LM16:
261 0094 B3E0 ldi r27,hi8(1000)
262 0096 C83E cpi r28,lo8(1000)
263 0098 DB07 cpc r29,r27
264 009a 18F0 brlo .L9
93:os/source/os_time.c **** return (OS_TIME_INVALID_MILLI);
266 .LM17:
267 009c 83E5 ldi r24,lo8(83)
268 009e 90E0 ldi r25,hi8(83)
269 00a0 66C0 rjmp .L4
270 .L9:
94:os/source/os_time.c **** }
95:os/source/os_time.c **** /* Compute the total number of clock ticks require
96:os/source/os_time.c **** /* .. (rounded to the nearest tick)
97:os/source/os_time.c **** ticks = ((INT32U)hours * 3600L + (INT32U)minutes * 60L + (INT32U)seconds) * OS_TICKS_PER_SE
272 .LM18:
273 00a2 9927 clr r25
274 00a4 AA27 clr r26
275 00a6 BB27 clr r27
276 00a8 BC01 movw r22,r24
277 00aa CD01 movw r24,r26
278 00ac 20E1 ldi r18,lo8(3600)
279 00ae 3EE0 ldi r19,hi8(3600)
280 00b0 40E0 ldi r20,hlo8(3600)
281 00b2 50E0 ldi r21,hhi8(3600)
282 00b4 0E94 0000 call __mulsi3
283 00b8 7B01 movw r14,r22
284 00ba 8C01 movw r16,r24
285 00bc 8A2D mov r24,r10
286 00be 9927 clr r25
287 00c0 AA27 clr r26
288 00c2 BB27 clr r27
289 00c4 BC01 movw r22,r24
290 00c6 CD01 movw r24,r26
291 00c8 2CE3 ldi r18,lo8(60)
292 00ca 30E0 ldi r19,hi8(60)
293 00cc 40E0 ldi r20,hlo8(60)
294 00ce 50E0 ldi r21,hhi8(60)
295 00d0 0E94 0000 call __mulsi3
296 00d4 DC01 movw r26,r24
297 00d6 CB01 movw r24,r22
298 00d8 E80E add r14,r24
299 00da F91E adc r15,r25
300 00dc 0A1F adc r16,r26
301 00de 1B1F adc r17,r27
302 00e0 ED0C add r14,r13
303 00e2 F11C adc r15,__zero_reg__
304 00e4 011D adc r16,__zero_reg__
305 00e6 111D adc r17,__zero_reg__
306 00e8 C801 movw r24,r16
307 00ea B701 movw r22,r14
308 00ec 24E6 ldi r18,lo8(100)
309 00ee 30E0 ldi r19,hi8(100)
310 00f0 40E0 ldi r20,hlo8(100)
311 00f2 50E0 ldi r21,hhi8(100)
312 00f4 0E94 0000 call __mulsi3
313 00f8 7B01 movw r14,r22
314 00fa 8C01 movw r16,r24
315 00fc CE01 movw r24,r28
316 00fe AA27 clr r26
317 0100 BB27 clr r27
318 0102 BC01 movw r22,r24
319 0104 CD01 movw r24,r26
320 0106 0E94 0000 call __mulsi3
321 010a DC01 movw r26,r24
322 010c CB01 movw r24,r22
323 010e 8C50 subi r24,lo8(-(500))
324 0110 9E4F sbci r25,hi8(-(500))
325 0112 AF4F sbci r26,hlo8(-(500))
326 0114 BF4F sbci r27,hhi8(-(500))
327 0116 BC01 movw r22,r24
328 0118 CD01 movw r24,r26
329 011a 28EE ldi r18,lo8(1000)
330 011c 33E0 ldi r19,hi8(1000)
331 011e 40E0 ldi r20,hlo8(1000)
332 0120 50E0 ldi r21,hhi8(1000)
333 0122 0E94 0000 call __udivmodsi4
334 0126 E20E add r14,r18
335 0128 F31E adc r15,r19
336 012a 041F adc r16,r20
337 012c 151F adc r17,r21
98:os/source/os_time.c **** + OS_TICKS_PER_SEC * ((INT32U)milli + 500L / OS_TICKS_PER_SEC) / 1000L;
99:os/source/os_time.c **** loops = (INT16U)(ticks / 65536L); /* Compute the integral number of 65536 tick delay
339 .LM19:
340 012e 5801 movw r10,r16
341 0130 CC24 clr r12
342 0132 DD24 clr r13
343 0134 E501 movw r28,r10
100:os/source/os_time.c **** ticks = ticks % 65536L; /* Obtain the fractional number of ticks
345 .LM20:
346 0136 8FEF ldi r24,lo8(65535)
347 0138 9FEF ldi r25,hi8(65535)
348 013a A0E0 ldi r26,hlo8(65535)
349 013c B0E0 ldi r27,hhi8(65535)
350 013e E822 and r14,r24
351 0140 F922 and r15,r25
352 0142 0A23 and r16,r26
353 0144 1B23 and r17,r27
101:os/source/os_time.c **** OSTimeDly((INT16U)ticks);
355 .LM21:
356 0146 C701 movw r24,r14
357 0148 0E94 0000 call OSTimeDly
102:os/source/os_time.c **** while (loops > 0) {
103:os/source/os_time.c **** OSTimeDly(32768);
104:os/source/os_time.c **** OSTimeDly(32768);
105:os/source/os_time.c **** loops--;
359 .LM22:
360 014c AB28 or r10,r11
361 014e 51F0 breq .L14
362 .L12:
364 .LM23:
365 0150 80E0 ldi r24,lo8(-32768)
366 0152 90E8 ldi r25,hi8(-32768)
367 0154 0E94 0000 call OSTimeDly
369 .LM24:
370 0158 80E0 ldi r24,lo8(-32768)
371 015a 90E8 ldi r25,hi8(-32768)
372 015c 0E94 0000 call OSTimeDly
374 .LM25:
375 0160 2197 sbiw r28,1
376 0162 B1F7 brne .L12
377 .L14:
106:os/source/os_time.c **** }
107:os/source/os_time.c **** return (OS_NO_ERR);
379 .LM26:
380 0164 80E0 ldi r24,lo8(0)
381 0166 90E0 ldi r25,hi8(0)
382 0168 02C0 rjmp .L4
383 .L5:
108:os/source/os_time.c **** }
109:os/source/os_time.c **** return (OS_TIME_ZERO_DLY);
385 .LM27:
386 016a 84E5 ldi r24,lo8(84)
387 016c 90E0 ldi r25,hi8(84)
388 .L4:
389 /* epilogue: frame size=0 */
390 016e DF91 pop r29
391 0170 CF91 pop r28
392 0172 1F91 pop r17
393 0174 0F91 pop r16
394 0176 FF90 pop r15
395 0178 EF90 pop r14
396 017a DF90 pop r13
397 017c CF90 pop r12
398 017e BF90 pop r11
399 0180 AF90 pop r10
400 0182 0895 ret
401 /* epilogue end (size=11) */
402 /* function OSTimeDlyHMSM size 156 (135) */
408 .Lscope1:
409 .text
411 Letext:
412 /* File "os/source/os_time.c": code 197 = 0x00c5 ( 171), prologues 12, epilogues 14 */
DEFINED SYMBOLS
*ABS*:00000000 os_time.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:133 .text:00000000 OSTimeDly
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:204 .text:0000004e OSTimeDlyHMSM
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8Iaaaa.s:411 .text:00000184 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
OSTCBCur
OSRdyTbl
OSRdyGrp
OS_Sched
__mulsi3
__udivmodsi4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -