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

📄 44binit.s

📁 *** *** *** *** *** *** *** *** * UCOS_II測試程式說明 By hugang, hgx2000@mail.china.com ************
💻 S
字号:
;********************************************************
;* NAME    : 44BINIT.S									*
;* Version : 10.April.2000								*
;* Description:											*
;*	C start up codes									*
;*	Configure memory, Initialize ISR ,stacks			*
;*	Initialize C-variables								*
;*	Fill zeros into zero-initialized C-variables		*
;********************************************************
 
	GET ..\inc\option.s
	GET ..\inc\memcfg.s

;Memory Area
;GCS6	64M 16bit(8MB) DRAM/SDRAM(0xc000000-0xc7fffff)
;APP	RAM=0xc000000~0xc7effff 
;MON 	RAM=0xc7f0000-0xc7fffff
;STACK	   =0xc7ffa00		   

;Interrupt Control
INTPND		EQU	0x01e00004
INTMOD		EQU	0x01e00008
INTMSK		EQU	0x01e0000c
I_ISPR		EQU	0x01e00020
I_CMST		EQU	0x01e0001c

;Watchdog timer
WTCON		EQU	0x01d30000

;Clock Controller
PLLCON		EQU	0x01d80000
CLKCON		EQU	0x01d80004
LOCKTIME	EQU	0x01d8000c
	
;Memory Controller
REFRESH		EQU 0x01c80024

;BDMA destination register
BDIDES0		EQU 0x1f80008
BDIDES1		EQU 0x1f80028

;Pre-defined constants
USERMODE	EQU	0x10
FIQMODE		EQU	0x11
IRQMODE		EQU	0x12
SVCMODE		EQU	0x13
ABORTMODE	EQU	0x17
UNDEFMODE	EQU	0x1b
MODEMASK	EQU	0x1f
NOINT		EQU	0xc0

;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
	]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Vector Macro;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    MACRO
$HandlerLabel HANDLER $HandleLabel

$HandlerLabel
    sub	    sp,sp,#4			;decrement sp(to store jump address)
    stmfd   sp!,{r0}			;PUSH the work register to stack(lr does't push because it return to original address)
    ldr	    r0,=$HandleLabel	;load the address of HandleXXX to r0
    ldr	    r0,[r0]				;load the contents(service routine start address) of HandleXXX
    str	    r0,[sp,#4]			;store the contents(ISR) of HandleXXX to stack
    ldmfd   sp!,{r0,pc}			;POP the work register and pc(jump to ISR)
    MEND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    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 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Code Begin;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    AREA    Init,CODE,READONLY

    ENTRY 
    b ResetHandler				;for debug
    b HandlerUndef				;handlerUndef
    b HandlerSWI				;SWI interrupt handler
    b HandlerPabort				;handlerPAbort
    b HandlerDabort				;handlerDAbort
    b .							;handlerReserved
    b HandlerIRQ
    b HandlerFIQ
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IMPORTANT NOTE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;If the H/W vectored interrutp mode is enabled, The above two instructions should                       ;
;be changed like below, to work-around with H/W bug of S3C44B0X interrupt controller.                   ;
; b HandlerIRQ  ->  subs pc,lr,#4                                                                       ;
; b HandlerIRQ  ->  subs pc,lr,#4                                                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;い耞

⌨️ 快捷键说明

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