📄 rtc.lst
字号:
298 ; uint8 second;
299 ; uint8 minute;
300 ; uint8 hour;
301 ; uint8 day;
302 ; uint8 week;
303 ; uint8 month;
304 ; uint8 year;
305 ; uint8 sumcheck;
306 ; };
307 ; extern struct rtc_s rtc;
308 ; extern uint32 ul_actensper1;
309 ; extern uint32 ul_actensper2;
310 ; static int32 rtc_correction;
311 ; const int8 month_lengths[13] =
312 .iseg rtc_data_const
0000 313 .align 0x2
314 .global _month_lengths
315 _month_lengths:
316 ; {
0000 00 317 .byte 0x0
318 ; 00,
0001 1f 319 .byte 0x1f
0002 1c 320 .byte 0x1c
0003 1f 321 .byte 0x1f
322 ; 31, 28, 31,
0004 1e 323 .byte 0x1e
0005 1f 324 .byte 0x1f
0006 1e 325 .byte 0x1e
326 ; 30, 31, 30,
0007 1f 327 .byte 0x1f
0008 1f 328 .byte 0x1f
0009 1e 329 .byte 0x1e
330 ; 31, 31, 30,
000a 1f 331 .byte 0x1f
000b 1e 332 .byte 0x1e
333 ; 31, 30, 31
000c 1f 334 .byte 0x1f
335 ; month_lengths size 13
336 ; };
337 ; void set_rtc_sumcheck(void)
338 .dbgseg dbg_syms
339 DBG3:
0028 00000000 340 .long 0x0
002c 000000f4 341 .long DBG10
0030 00000000 342 .long _set_rtc_sumcheck
0034 00000040 343 .long 0x40
0038 01020001 344 .long 0x1020001
003c 00000050 345 .long DBG1
0040 00000020 346 .long DBG7-DBG8
0044 00000000 347 .long DBG9
0048 000000f0 348 .long DBG6
004c 00000000 349 .long 0x0
350 .pseg rtc_code
351 DBG8:
352 .dbgseg dbg_syms
353 DBG1:
0050 0066622e 354 .long 0x66622e
0054 00000000 355 .long 0x0
0058 00000000 356 .long DBG8
005c 00000000 357 .long 0x0
0060 01650001 358 .long 0x1650001
0064 00000000 359 .long 0x0
0068 00000027 360 .long 0x27
006c 00000000 361 .long 0x0
0070 00000118 362 .long DBG11
0074 00000000 363 .long 0x0
364 .dbgseg dbg_line
0000 365 .align 0x2
366 DBG9:
0000 00000028 367 .long DBG3
0004 00000000 368 .long 0x0
0008 00000000 369 .long _set_rtc_sumcheck
000c 00000001 370 .long 0x1
0010 00000000 371 .long DBG13
0014 00000002 372 .long 0x2
0018 00000000 373 .long DBG14
001c 00000003 374 .long 0x3
0020 0000001e 375 .long DBG15
0024 00000004 376 .long 0x4
377 .pseg rtc_code
378 .global _set_rtc_sumcheck
379 _set_rtc_sumcheck:
380 ; ENTRY
381 DBG12:
382 ; {
383 DBG13:
384 ; rtc.sumcheck = ~(rtc.second + rtc.minute + rtc.hour + rtc.day + rtc.month + rtc.year);
385 DBG14:
0000 5c420000 386 mov.b &_rtc,r12
0004 5c520100 387 add.b &_rtc+0x1,r12
0008 5c520200 388 add.b &_rtc+0x2,r12
000c 5c520300 389 add.b &_rtc+0x3,r12
0010 5c520500 390 add.b &_rtc+0x5,r12
0014 5c520600 391 add.b &_rtc+0x6,r12
0018 7ce3 392 inv.b r12
001a c24c0700 393 mov.b r12,&_rtc+0x7
394 DBG16:
395 DBG15:
396 ; EXIT
001e 3041 397 ret
398 .dbgseg dbg_syms
0078 00000000 399 .long 0x0
007c 000000bc 400 .long DBG17
0080 00000000 401 .long 0x0
0084 00000000 402 .long 0x0
0088 00010002 403 .long 0x10002
008c 00000000 404 .long 0x0
0090 000002bc 405 .long DBG18
0094 00000002 406 .long 0x2
0098 00000000 407 .long 0x0
009c 00010002 408 .long 0x10002
00a0 504e5f5f 409 .long 0x504e5f5f
00a4 534d5241 410 .long 0x534d5241
00a8 00000000 411 .long 0x0
00ac 00000000 412 .long 0x0
00b0 00010002 413 .long 0x10002
00b4 0066652e 414 .long 0x66652e
00b8 00000000 415 .long 0x0
00bc 0000001e 416 .long DBG16
00c0 00000000 417 .long 0x0
00c4 01650001 418 .long 0x1650001
00c8 00000000 419 .long 0x0
00cc 0000002a 420 .long 0x2a
00d0 00000000 421 .long 0x0
00d4 00000000 422 .long 0x0
00d8 00000000 423 .long 0x0
424 .pseg rtc_code
425 DBG7:
426 .dbgseg dbg_syms
00dc 00000000 427 .long 0x0
00e0 000000f4 428 .long DBG10
00e4 00000020 429 .long DBG7
00e8 00000000 430 .long 0x0
00ec 00ff0001 431 .long 0xff0001
432 ; }
433 ; int check_rtc_sumcheck(void)
434 DBG6:
00f0 00000000 435 .long 0x0
00f4 000002d0 436 .long DBG23
00f8 00000020 437 .long _check_rtc_sumcheck
00fc 00000044 438 .long 0x44
0100 01020001 439 .long 0x1020001
0104 00000118 440 .long DBG11
0108 00000042 441 .long DBG20-DBG21
010c 00000028 442 .long DBG22
0110 000001b8 443 .long DBG19
0114 00000000 444 .long 0x0
445 .pseg rtc_code
446 DBG21:
447 .dbgseg dbg_syms
448 DBG11:
0118 0066622e 449 .long 0x66622e
011c 00000000 450 .long 0x0
0120 00000020 451 .long DBG21
0124 00000000 452 .long 0x0
0128 01650001 453 .long 0x1650001
012c 00000000 454 .long 0x0
0130 0000002d 455 .long 0x2d
0134 00000000 456 .long 0x0
0138 000001e0 457 .long DBG24
013c 00000000 458 .long 0x0
459 .dbgseg dbg_line
460 DBG22:
0028 000000f0 461 .long DBG6
002c 00000000 462 .long 0x0
0030 00000020 463 .long _check_rtc_sumcheck
0034 00000001 464 .long 0x1
0038 00000024 465 .long DBG26
003c 00000002 466 .long 0x2
0040 00000024 467 .long DBG27
0044 00000003 468 .long 0x3
0048 0000005c 469 .long DBG28
004c 00000004 470 .long 0x4
471 .pseg rtc_code
472 .global _check_rtc_sumcheck
473 _check_rtc_sumcheck:
0020 0412 474 push r4
0022 0512 475 push r5
476 DBG27:
477 DBG26:
478 DBG25:
479 ; ENTRY
480 ; {
481 ; return rtc.sumcheck == ((~(rtc.second + rtc.minute + rtc.hour + rtc.day + rtc.month + rtc.year
0024 55420600 482 mov.b &_rtc+0x6,r5
0028 5c420500 483 mov.b &_rtc+0x5,r12
002c 5d420300 484 mov.b &_rtc+0x3,r13
0030 5e420200 485 mov.b &_rtc+0x2,r14
0034 5f420100 486 mov.b &_rtc+0x1,r15
0038 54420000 487 mov.b &_rtc,r4
003c 045f 488 add r15,r4
003e 045e 489 add r14,r4
0040 045d 490 add r13,r4
0042 045c 491 add r12,r4
0044 0455 492 add r5,r4
0046 34e3 493 inv r4
0048 34f0ff00 494 and #0xff,r4
004c 5c420700 495 mov.b &_rtc+0x7,r12
0050 0c94 496 cmp r4,r12
0052 0224 497 jeq check_rtc_sumcheck_LL2
0054 0c43 498 mov #0x0,r12
0056 013c 499 jmp check_rtc_sumcheck_LL3
500 check_rtc_sumcheck_LL2:
0058 1c43 501 mov #0x1,r12
502 check_rtc_sumcheck_LL3:
005a 003c 503 jmp check_rtc_sumcheck_LL4
504 DBG28:
505 ; )) & 0xFF);
506 check_rtc_sumcheck_LL4:
507 ; EXIT
508 ; .temp0 at stkloc 0 (0x0) size 4
509 DBG29:
005c 3541 510 pop r5
005e 3441 511 pop r4
0060 3041 512 ret
513 .dbgseg dbg_syms
0140 00000000 514 .long 0x0
0144 000000bc 515 .long DBG17
0148 00000004 516 .long 0x4
014c 00000000 517 .long 0x0
0150 00010002 518 .long 0x10002
0154 00000000 519 .long 0x0
0158 000002bc 520 .long DBG18
015c 00000002 521 .long 0x2
0160 00000000 522 .long 0x0
0164 00010002 523 .long 0x10002
0168 504e5f5f 524 .long 0x504e5f5f
016c 534d5241 525 .long 0x534d5241
0170 00000000 526 .long 0x0
0174 00000000 527 .long 0x0
0178 00010002 528 .long 0x10002
017c 0066652e 529 .long 0x66652e
0180 00000000 530 .long 0x0
0184 0000005c 531 .long DBG29
0188 00000000 532 .long 0x0
018c 01650001 533 .long 0x1650001
0190 00000000 534 .long 0x0
0194 00000030 535 .long 0x30
0198 00000000 536 .long 0x0
019c 00000000 537 .long 0x0
01a0 00000000 538 .long 0x0
539 .pseg rtc_code
540 DBG20:
541 .dbgseg dbg_syms
01a4 00000000 542 .long 0x0
01a8 000002d0 543 .long DBG23
01ac 00000062 544 .long DBG20
01b0 00000000 545 .long 0x0
01b4 00ff0001 546 .long 0xff0001
547 ; }
548 ; int bump_rtc(void)
549 DBG19:
01b8 706d7562 550 .long 0x706d7562
01bc 6374725f 551 .long 0x6374725f
01c0 00000062 552 .long _bump_rtc
01c4 00000044 553 .long 0x44
01c8 01020001 554 .long 0x1020001
01cc 000001e0 555 .long DBG24
01d0 000000ba 556 .long DBG31-DBG32
01d4 00000050 557 .long DBG33
01d8 00000280 558 .long DBG30
01dc 00000000 559 .long 0x0
560 .pseg rtc_code
561 DBG32:
562 .dbgseg dbg_syms
563 DBG24:
01e0 0066622e 564 .long 0x66622e
01e4 00000000 565 .long 0x0
01e8 00000062 566 .long DBG32
01ec 00000000 567 .long 0x0
01f0 01650001 568 .long 0x1650001
01f4 00000000 569 .long 0x0
01f8 00000035 570 .long 0x35
01fc 00000000 571 .long 0x0
0200 000002a8 572 .long DBG34
0204 00000000 573 .long 0x0
574 .dbgseg dbg_line
575 DBG33:
0050 000001b8 576 .long DBG19
0054 00000000 577 .long 0x0
0058 00000062 578 .long _bump_rtc
005c 00000001 579 .long 0x1
0060 00000062 580 .long DBG36
0064 00000002 581 .long 0x2
0068 00000062 582 .long DBG37
006c 00000005 583 .long 0x5
0070 0000006a 584 .long DBG38
0074 00000006 585 .long 0x6
0078 0000006e 586 .long DBG39
007c 00000007 587 .long 0x7
0080 0000007e 588 .long DBG40
0084 00000008 589 .long 0x8
0088 0000007e 590 .long DBG41
008c 00000009 591 .long 0x9
0090 00000082 592 .long DBG42
0094 0000000a 593 .long 0xa
0098 00000086 594 .long DBG43
009c 0000000b 595 .long 0xb
00a0 00000086 596 .long DBG44
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -