⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cstartup.s34

📁 瑞萨单片机LCD控制
💻 S34
📖 第 1 页 / 共 2 页
字号:
    jmp    udata2_loop

done_udata2

; 6. Give initialized huge variables its default values

    mov.w    #lwrd(sfb(IDATA2)),a0
    mov.w    #hwrd(sfb(IDATA2)),a1
    mov.w    #lwrd(sfb(CDATA2)),r0
    mov.w    #hwrd(sfb(CDATA2)),r2
    mov.w    #lwrd(sizeof(CDATA2)),r1
    mov.w    #hwrd(sizeof(CDATA2)),r3
    jsr.a    ?GENERIC_MOVE_LONG_L08

#endif /* IGNORE_HUGE_DATA */


#ifndef IGNORE_STRING
;---------------------------------------------------------------;
; Perform segment initialization of writable strings            ;
; Copy CCSTR --> ECSTR                                          ;
;---------------------------------------------------------------;

    mov.w    #sizeof(CCSTR),r3
    jeq    skip_string
    mov.w    #sfb(ECSTR),a1
    mov.w    #low(sfb(CCSTR)),a0
    mov.b    #byte3(sfb(CCSTR)),r1h
    smovf.b
skip_string

#endif /* IGNORE_STRING */

skip_segment_initialization

#endif /* IGNORE_SEG_INIT */


;---------------------------------------------------------------;
; Call main()                                                   ;
;---------------------------------------------------------------;

    mov.w    #0,r0            ; call main with argc == 0
    jsr.a    main            ; execute main()

;---------------------------------------------------------------;
; Now when we are ready with our C program we must perform a    ;
; system-dependent action.  In this case we just stop.          ;
;---------------------------------------------------------------;
; DO NOT CHANGE THE NEXT LINE OF CSTARTUP IF YOU WANT TO RUN    ;
; YOUR SOFTWARE WITH THE HELP OF THE C-SPY HLL DEBUGGER.        ;
;---------------------------------------------------------------;

    jmp.a    ?C_EXIT    


;---------------------------------------------------------------;
; Fixed interrupt table.  We install all fixed interrupts in    ;
; a segment called INTVEC1.  All fixed interrupts have a        ;
; hard coded name that is default handled in module `fixed_X'   ;
; in this file.  See fixedint.c for information how to replace  ;
; them with handlers written in C.                              ;
;---------------------------------------------------------------;

    .common    INTVEC1
    .extern    __undefined_instruction_handler
    .extern    __overflow_handler
    .extern    __break_instruction_handler
    .extern    __address_match_handler
    .extern    __single_step_handler
    .extern    __watchdog_timer_handler
    .extern    __DBC_handler
    .extern    __NMI_handler

    .lword    __undefined_instruction_handler
    .lword    __overflow_handler
    .lword    __break_instruction_handler
    .lword    __address_match_handler
    .lword    __single_step_handler
    .lword    __watchdog_timer_handler
    .lword    __DBC_handler
    .lword    __NMI_handler
    .lword    init_C            ; reset vector

;---------------------------------------------------------------;
; Flexible interrupt table. All interrupts are pre-defined as   ;
; reset interrupts. In module interrpt.c they are replaced by   ;
; C interrupt handlers.                                         ;
; CAUTION: PLEASE LINK CSTARTUP BEFORE INTERRPT                 ;
;---------------------------------------------------------------;

    .common    INTVEC 
    .extern  dma0_interrupt,dma1_interrupt,uart0tx_interrupt
    .extern  timer_a0_interrupt,timer_a1_interrupt   
     
int_UART1_T EQU 0fcb6bh
int_UART1_R EQU int_UART1_T

    .lword    init_C          ; reset vector   0-  3
    .lword    init_C          ; reset vector   4-  7
    .lword    init_C          ; reset vector   8- 11
    .lword    init_C          ; reset vector  12- 15
    .lword    init_C          ; reset vector  16- 19
    .lword    init_C          ; reset vector  20- 23
    .lword    init_C          ; reset vector  24- 27
    .lword    init_C          ; reset vector  28- 31
    .lword    init_C          ; reset vector  32- 35
    .lword    init_C          ; reset vector  36- 39
    .lword    init_C          ; reset vector  40- 43
    .lword    dma0_interrupt          ; reset vector  44- 47
    .lword    dma1_interrupt          ; reset vector  48- 51
    .lword    init_C          ; reset vector  52- 55
    .lword    init_C          ; reset vector  56- 59
    .lword    init_C          ; reset vector  60- 63
    .lword    init_C          ; reset vector  64- 67
    .lword    uart0tx_interrupt          ; reset vector  68- 71
    .lword    init_C          ; reset vector  72- 75
    .lword    int_UART1_T          ; reset vector  76- 79
    .lword    int_UART1_R          ; reset vector  80- 83
    .lword    timer_a0_interrupt          ; reset vector  84- 87
    .lword    timer_a1_interrupt          ; reset vector  88- 91
    .lword    init_C          ; reset vector  92- 95
    .lword    init_C          ; reset vector  96- 99
    .lword    init_C          ; reset vector 100-103
    .lword    init_C          ; reset vector 104-107
    .lword    init_C          ; reset vector 108-111
    .lword    init_C          ; reset vector 112-115
    .lword    init_C          ; reset vector 116-119
    .lword    init_C          ; reset vector 120-123
    .lword    init_C          ; reset vector 124-127
    .lword    init_C          ; reset vector 128-131
    .lword    init_C          ; reset vector 132-135
    .lword    init_C          ; reset vector 136-139
    .lword    init_C          ; reset vector 140-143
    .lword    init_C          ; reset vector 144-147
    .lword    init_C          ; reset vector 148-151
    .lword    init_C          ; reset vector 152-155
    .lword    init_C          ; reset vector 156-159
    .lword    init_C          ; reset vector 160-163
    .lword    init_C          ; reset vector 164-167
    .lword    init_C          ; reset vector 168-171
    .lword    init_C          ; reset vector 172-175
    .lword    init_C          ; reset vector 176-179
    .lword    init_C          ; reset vector 180-183
    .lword    init_C          ; reset vector 184-187
    .lword    init_C          ; reset vector 188-191
    .lword    init_C          ; reset vector 192-195
    .lword    init_C          ; reset vector 196-199
    .lword    init_C          ; reset vector 200-203
    .lword    init_C          ; reset vector 204-207
    .lword    init_C          ; reset vector 208-211
    .lword    init_C          ; reset vector 212-215
    .lword    init_C          ; reset vector 216-219
    .lword    init_C          ; reset vector 220-223
    .lword    init_C          ; reset vector 224-227
    .lword    init_C          ; reset vector 228-231
    .lword    init_C          ; reset vector 232-235
    .lword    init_C          ; reset vector 236-239
    .lword    init_C          ; reset vector 240-243
    .lword    init_C          ; reset vector 244-247
    .lword    init_C          ; reset vector 248-251
    .lword    init_C          ; reset vector 251-255

    .endmod


; Module that generates a reit instruction if needed
    .module    __reit
    .public    ??__reit
    .rseg    CODE
??__reit
    reit
    .endmod


;---------------------------------------------------------------;
; Function/module: exit                                         ;
;                                                               ;
; When C-SPY is used this code will automatically be replaced   ;
; by a 'debug' version of exit().                               ;
;---------------------------------------------------------------;
    .module    exit

    .public    exit
    .public    ?C_EXIT

    .rseg    CODE

?C_EXIT
exit    .equ    ?C_EXIT

;--------------------------------------------------------------;
; The next line can be replaced by user defined code.          ;
;--------------------------------------------------------------;
    jmp    $

    .endmod


;---------------------------------------------------------------;
; Function/module: default __low_level_init                     ;
; You can replace this routine by linking with your own version.;
; The default action is to do nothing and return 1.             ;
;---------------------------------------------------------------;

    .module    lowinit
    .public    __low_level_init
    .rseg    CODE
__low_level_init
    mov.b    #1,r0l
    rts

    .end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -