v3k_fram_watch_sdcc.rst
来自「这是ramtron公司的铁电单片机的开发程序」· RST 代码 · 共 608 行 · 第 1/3 页
RST
608 行
00C7 407 G$AUPREV3$0$0 == 0x00c7
00C7 408 _AUPREV3 = 0x00c7
409 ;--------------------------------------------------------
410 ; special function bits
411 ;--------------------------------------------------------
412 .area RSEG (DATA)
413 ;--------------------------------------------------------
414 ; overlayable register banks
415 ;--------------------------------------------------------
416 .area REG_BANK_0 (REL,OVR,DATA)
0000 417 .ds 8
418 ;--------------------------------------------------------
419 ; internal ram data
420 ;--------------------------------------------------------
421 .area DSEG (DATA)
0000 422 G$framptr$0$0==.
0008 423 _framptr::
0008 424 .ds 2
425 ;--------------------------------------------------------
426 ; overlayable items in internal ram
427 ;--------------------------------------------------------
428 .area OSEG (OVR,DATA)
429 ;--------------------------------------------------------
430 ; Stack segment in internal ram
431 ;--------------------------------------------------------
432 .area SSEG (DATA)
000F 433 __start__stack:
000F 434 .ds 1
435
436 ;--------------------------------------------------------
437 ; indirectly addressable internal ram data
438 ;--------------------------------------------------------
439 .area ISEG (DATA)
0000 440 Lmain$count$1$1==.
000A 441 _main_count_1_1::
000A 442 .ds 2
0002 443 Lmain$cptr$1$1==.
000C 444 _main_cptr_1_1::
000C 445 .ds 2
0004 446 Lmain$framread$1$1==.
000E 447 _main_framread_1_1::
000E 448 .ds 1
449 ;--------------------------------------------------------
450 ; bit data
451 ;--------------------------------------------------------
452 .area BSEG (BIT)
453 ;--------------------------------------------------------
454 ; paged external ram data
455 ;--------------------------------------------------------
456 .area PSEG (PAG,XDATA)
457 ;--------------------------------------------------------
458 ; external ram data
459 ;--------------------------------------------------------
460 .area XSEG (XDATA)
8000 461 G$frambase$0$0 == 0x8000
8000 462 _frambase = 0x8000
463 ;--------------------------------------------------------
464 ; external initialized ram data
465 ;--------------------------------------------------------
466 .area XISEG (XDATA)
467 .area CSEG (CODE)
468 .area GSINIT0 (CODE)
469 .area GSINIT1 (CODE)
470 .area GSINIT2 (CODE)
471 .area GSINIT3 (CODE)
472 .area GSINIT4 (CODE)
473 .area GSINIT5 (CODE)
474 ;--------------------------------------------------------
475 ; interrupt vector
476 ;--------------------------------------------------------
477 .area CSEG (CODE)
0000 478 __interrupt_vect:
0000 02 00 44 479 ljmp __sdcc_gsinit_startup
480 ;--------------------------------------------------------
481 ; global & static initialisations
482 ;--------------------------------------------------------
483 .area CSEG (CODE)
484 .area GSINIT (CODE)
485 .area GSFINAL (CODE)
486 .area GSINIT (CODE)
487 .globl __sdcc_gsinit_startup
488 .globl __sdcc_program_startup
489 .globl __start__stack
490 .globl __mcs51_genXINIT
491 .globl __mcs51_genXRAMCLEAR
492 .globl __mcs51_genRAMCLEAR
0000 493 G$main$0$0 ==.
0000 494 C$V3K_FRAM_Watch_SDCC.c$31$1$1 ==.
495 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:31: xdata unsigned char * data framptr = &frambase ; //Init a pointer in IRAM pointing to the frambase var.
496 ; genAddrOf
009D 75 08 00 497 mov _framptr,#_frambase
00A0 75 09 80 498 mov (_framptr + 1),#(_frambase >> 8)
499 .area GSFINAL (CODE)
00A3 02 00 03 500 ljmp __sdcc_program_startup
501 ;--------------------------------------------------------
502 ; Home
503 ;--------------------------------------------------------
504 .area HOME (CODE)
505 .area CSEG (CODE)
506 ;--------------------------------------------------------
507 ; code
508 ;--------------------------------------------------------
509 .area CSEG (CODE)
0003 510 __sdcc_program_startup:
0003 12 00 08 511 lcall _main
512 ; return from main will lock up
0006 80 FE 513 sjmp .
514 ;------------------------------------------------------------
515 ;Allocation info for local variables in function 'main'
516 ;------------------------------------------------------------
517 ;count Allocated with name '_main_count_1_1'
518 ;cptr Allocated with name '_main_cptr_1_1'
519 ;framread Allocated with name '_main_framread_1_1'
520 ;------------------------------------------------------------
0008 521 G$main$0$0 ==.
0008 522 C$V3K_FRAM_Watch_SDCC.c$37$0$0 ==.
523 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:37: void main (void){
524 ; -----------------------------------------
525 ; function main
526 ; -----------------------------------------
0008 527 _main:
0002 528 ar2 = 0x02
0003 529 ar3 = 0x03
0004 530 ar4 = 0x04
0005 531 ar5 = 0x05
0006 532 ar6 = 0x06
0007 533 ar7 = 0x07
0000 534 ar0 = 0x00
0001 535 ar1 = 0x01
0008 536 C$V3K_FRAM_Watch_SDCC.c$38$1$0 ==.
537 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:38: volatile idata count = 0x00; //general purpose counter
538 ; genAssign
0008 78 0A 539 mov r0,#_main_count_1_1
000A E4 540 clr a
000B F6 541 mov @r0,a
000C 08 542 inc r0
000D F6 543 mov @r0,a
000E 544 C$V3K_FRAM_Watch_SDCC.c$39$1$0 ==.
545 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:39: volatile idata int cptr= 0x00; //general purpose counter
546 ; genAssign
000E 78 0C 547 mov r0,#_main_cptr_1_1
0010 E4 548 clr a
0011 F6 549 mov @r0,a
0012 08 550 inc r0
0013 F6 551 mov @r0,a
0014 552 C$V3K_FRAM_Watch_SDCC.c$40$1$0 ==.
553 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:40: volatile idata char framread = 0x00;
554 ; genAssign
0014 78 0E 555 mov r0,#_main_framread_1_1
0016 76 00 556 mov @r0,#0x00
0018 557 C$V3K_FRAM_Watch_SDCC.c$42$1$1 ==.
558 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:42: DEVMEMCFG |= 0xC0; //Activate the FRAM memory
559 ; genOr
0018 43 F6 C0 560 orl _DEVMEMCFG,#0xC0
001B 561 C$V3K_FRAM_Watch_SDCC.c$43$1$1 ==.
562 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:43: framptr = (&frambase + 0x100);
563 ; genPlus
564 ; genPlus aligned array
001B 75 08 00 565 mov _framptr,#0x00
001E 74 80 566 mov a,#(_frambase >> 8)
0020 24 01 567 add a,#0x01
0022 F5 09 568 mov (_framptr + 1),a
0024 569 C$V3K_FRAM_Watch_SDCC.c$45$1$1 ==.
570 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:45: do{
0024 571 00101$:
0024 572 C$V3K_FRAM_Watch_SDCC.c$46$2$2 ==.
573 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:46: *framptr = count++;
574 ; genAssign
0024 85 08 82 575 mov dpl,_framptr
0027 85 09 83 576 mov dph,(_framptr + 1)
577 ; genAssign
002A 78 0A 578 mov r0,#_main_count_1_1
002C 86 02 579 mov ar2,@r0
002E 08 580 inc r0
002F 86 03 581 mov ar3,@r0
582 ; genPlus
0031 78 0A 583 mov r0,#_main_count_1_1
584 ; genPlusIncr
0033 74 01 585 mov a,#0x01
0035 26 586 add a,@r0
0036 F6 587 mov @r0,a
588 ; Peephole 181 changed mov to clr
0037 E4 589 clr a
0038 08 590 inc r0
0039 36 591 addc a,@r0
003A F6 592 mov @r0,a
593 ; genCast
594 ; genPointerSet
595 ; genFarPointerSet
003B EA 596 mov a,r2
003C F0 597 movx @dptr,a
003D 598 C$V3K_FRAM_Watch_SDCC.c$48$1$1 ==.
599 ;c:/APP_ENG/Released_Demo_Programs/V3k_demo_programs/V3K_FRAM_Watch_SDCC/V3K_FRAM_Watch_SDCC.c:48: }while(1);
600 ; Peephole 112.b changed ljmp to sjmp
003D 80 E5 601 sjmp 00101$
003F 602 00104$:
003F 603 C$V3K_FRAM_Watch_SDCC.c$52$1$1 ==.
003F 604 XG$main$0$0 ==.
003F 22 605 ret
606 .area CSEG (CODE)
607 .area XINIT (CODE)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?