44binit.s

来自「44b0平台」· S 代码 · 共 78 行

S
78
字号
; *******************************************************
; * NAME    : 44BINIT.S									*
; * Description:										*
; *	Fill zeros into zero-initialized C-variables		*
; *******************************************************
 


;check if tasm.exe is used.
    GBLL    THUMBCODE
    [ {CONFIG} = 16	
THUMBCODE SETL	{TRUE}
    CODE32
    |   
THUMBCODE SETL	{FALSE}
    ]

    [ THUMBCODE
    CODE32   ;for start-up code for Thumb mode
    ]

    IMPORT	|Image$$RO$$Limit|  ; End of ROM code (=start of ROM data)
    IMPORT	|Image$$RW$$Base|   ; Base of RAM to initialise
    IMPORT	|Image$$ZI$$Base|   ; Base and limit of area
    IMPORT	|Image$$ZI$$Limit|  ; to zero initialise

    IMPORT  Main    ; The main entry of mon program

    AREA    Init,CODE,READONLY
    
    ENTRY 

;****************************************************
;*	START											*
;****************************************************
    
    
    ;********************************************************
    ;*	Copy and paste RW data/zero initialized data	    *
    ;********************************************************
    LDR	    r0, =|Image$$RO$$Limit|	; Get pointer to ROM data
    LDR	    r1, =|Image$$RW$$Base|	; and RAM copy
    LDR	    r3, =|Image$$ZI$$Base|	
	;Zero init base => top of initialised data
			
    CMP	    r0, r1	    ; Check that they are different
    BEQ	    %F1
0		
    CMP	    r1, r3	    ; Copy init data
    LDRCC   r2, [r0], #4    ;--> LDRCC r2, [r0] + ADD r0, r0, #4		 
    STRCC   r2, [r1], #4    ;--> STRCC r2, [r1] + ADD r1, r1, #4
    BCC	    %B0
1		
    LDR	    r1, =|Image$$ZI$$Limit| ; Top of zero init segment
    MOV	    r2, #0
2		
    CMP	    r3, r1	    ; Zero init
    STRCC   r2, [r3], #4
    BCC	    %B2
      


    [ :LNOT:THUMBCODE
	BL		Main				;Do not use main() because ......
	B		.						
    ]

   ; [ THUMBCODE		   		 	;for start-up code for Thumb mode
	;orr     lr,pc,#1
	;bx      lr
	;CODE16
	;bl		Main	   			;Do not use main() because ......
	;b       .
	;CODE32
   ; ]

		END

⌨️ 快捷键说明

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