亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 44binit.s

?? 嵌式系統設計與實例開發實驗教材1(清華大學出版社).魏洪興、周亦敏編著 基于S3C44B0的串口實驗代碼
?? S
字號:
    GET memcfg.s

;Memory Area
;GCS6 16M 16bit(2MB) DRAM/SDRAM(0xc000000-0xc7fffff)
;APP    RAM=0xc000000~0xc1effff 
;44BMON 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

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

    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

    AREA    Init,CODE,READONLY

    IMPORT __use_no_semihosting_swi

    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
;************************************
VECTOR_BRANCH
    ldr pc,=HandlerEINT0    ;mGA    硬件中斷向量表H/W interrupt vector table
    ldr pc,=HandlerEINT1    ;	
    ldr pc,=HandlerEINT2    ;
    ldr pc,=HandlerEINT3    ;
    ldr pc,=HandlerEINT4567 ;
    ldr pc,=HandlerTICK	    ;mGA
    b .
    b .
    ldr pc,=HandlerZDMA0    ;mGB
    ldr pc,=HandlerZDMA1    ;
    ldr pc,=HandlerBDMA0    ;
    ldr pc,=HandlerBDMA1    ;
    ldr pc,=HandlerWDT	    ;
    ldr pc,=HandlerUERR01   ;mGB
    b .
    b .
    ldr pc,=HandlerTIMER0   ;mGC
    ldr pc,=HandlerTIMER1   ;
    ldr pc,=HandlerTIMER2   ;
    ldr pc,=HandlerTIMER3   ;
    ldr pc,=HandlerTIMER4   ;
    ldr pc,=HandlerTIMER5   ;mGC
    b .
    b .
    ldr pc,=HandlerURXD0    ;mGD
    ldr pc,=HandlerURXD1    ;
    ldr pc,=HandlerIIC	    ;
    ldr pc,=HandlerSIO	    ;
    ldr pc,=HandlerUTXD0    ;
    ldr pc,=HandlerUTXD1    ;mGD
    b .
    b .
    ldr pc,=HandlerRTC	    ;mGKA
    b .			    ;
    b .			    ;
    b .			    ;
    b .			    ;
    b .			    ;mGKA
    b .
    b .
    ldr pc,=HandlerADC	    ;mGKB
    b .			    ;
    b .			    ;
    b .			    ;
    b .			    ;
    b .			    ;mGKB
    b .
    b .
;0xe0=EnterPWDN
    ldr pc,=EnterPWDN

    LTORG	

HandlerFIQ		HANDLER HandleFIQ
HandlerIRQ		HANDLER HandleIRQ
HandlerUndef	HANDLER HandleUndef
HandlerSWI		HANDLER HandleSWI
HandlerDabort	HANDLER HandleDabort
HandlerPabort	HANDLER HandlePabort

HandlerADC		HANDLER HandleADC
HandlerRTC		HANDLER HandleRTC
HandlerUTXD1	HANDLER HandleUTXD1
HandlerUTXD0	HANDLER HandleUTXD0
HandlerSIO		HANDLER HandleSIO
HandlerIIC		HANDLER HandleIIC
HandlerURXD1	HANDLER HandleURXD1
HandlerURXD0	HANDLER HandleURXD0
HandlerTIMER5	HANDLER HandleTIMER5
HandlerTIMER4	HANDLER HandleTIMER4
HandlerTIMER3	HANDLER HandleTIMER3
HandlerTIMER2	HANDLER HandleTIMER2
HandlerTIMER1	HANDLER HandleTIMER1
HandlerTIMER0	HANDLER HandleTIMER0
HandlerUERR01	HANDLER HandleUERR01
HandlerWDT		HANDLER HandleWDT
HandlerBDMA1	HANDLER HandleBDMA1
HandlerBDMA0	HANDLER HandleBDMA0
HandlerZDMA1	HANDLER HandleZDMA1
HandlerZDMA0	HANDLER HandleZDMA0
HandlerTICK		HANDLER HandleTICK
HandlerEINT4567	HANDLER HandleEINT4567
HandlerEINT3	HANDLER HandleEINT3
HandlerEINT2	HANDLER HandleEINT2
HandlerEINT1	HANDLER HandleEINT1
HandlerEINT0	HANDLER HandleEINT0


;deal with IRQ interrupt
IRQ_Handler
	IMPORT	ISR_IrqHandler
	STMFD	sp!, {r0-r12, lr}
	BL	ISR_IrqHandler
	LDMFD	sp!, {r0-r12, lr}
	SUBS	pc, lr, #4

	EXPORT IRQ_Handler


;One of the following two routines can be used for non-vectored interrupt.

IsrIRQ	;using I_ISPR register.
    sub	    sp,sp,#4       ;reserved for PC
    stmfd   sp!,{r8-r9}   

	;IMPORTANT CAUTION
	;if I_ISPC isn't used properly, I_ISPR can be 0 in this routine.

    ldr	    r9,=I_ISPR
    ldr	    r9,[r9]

	cmp		r9, #0x0	;If the IDLE mode work-around is used,
						;r9 may be 0 sometimes.
	beq		%F2

    mov	    r8,#0x0
0
    movs    r9,r9,lsr #1
    bcs	    %F1
    add	    r8,r8,#4
    b	    %B0

1
    ldr	    r9,=HandleADC
    add	    r9,r9,r8
    ldr	    r9,[r9]
    str	    r9,[sp,#8]
    ldmfd   sp!,{r8-r9,pc}

2
	ldmfd	sp!,{r8-r9}
	add		sp,sp,#4
	subs	pc,lr,#4

;****************************************************
;*	START					                        *
;****************************************************
ResetHandler
    ldr	    r0,=WTCON	    ;watch dog disable 
    ldr	    r1,=0x0 		
    str	    r1,[r0]

    ldr	    r0,=INTMSK
    ldr	    r1,=0x07ffffff  ;all interrupt disable
    str	    r1,[r0]

    ;****************************************************
    ;*	Set clock control registers			*
    ;****************************************************
    ldr	r0,=LOCKTIME
    ldr	r1,=800	    ; count = t_lock * Fin (t_lock=200us, Fin=4MHz) = 800
    str	r1,[r0]

    [ PLLONSTART
	ldr	r0,=PLLCON			;temporary setting of PLL
	ldr	r1,=((0xe8<<12)+(0x4<<4)+0x2)	;Fin=4MHz,Fvco=160Mhz,Fout=40MHz,m/p/s=0x48/0/0x2
	str	r1,[r0]
    ]

    ldr	    r0,=CLKCON		 
    ldr	    r1,=0x7ff8	    ;All unit block CLK enable	
    str	    r1,[r0]

    ;****************************************************
    ;*	Set memory control registers			* 	
    ;****************************************************
    ldr	    r0,=SMRDATA
    ldmia   r0,{r1-r13}
    ldr	    r0,=0x01c80000  ;BWSCON Address
    stmia   r0,{r1-r13}

    ;****************************************************
    ;*	Initialize stacks				* 
    ;****************************************************
    ldr	    sp, =SVCStack	;Why?
    bl	    InitStacks

    ;****************************************************
    ;*	Setup IRQ handler				*
    ;****************************************************
    ldr	    r0,=HandleIRQ		;This routine is needed
    ldr	    r1,=IRQ_Handler	;=IsrIRQ			;if there isn't 'subs pc,lr,#4' at 0x18, 0x1c
    str	    r1,[r0]

	IMPORT __main
    [ :LNOT:THUMBCODE
	BL	__main	    ;Don't use main() because ......
	B	.						
    ]

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

;****************************************************
;*	The function for initializing stack	    *
;****************************************************
        IMPORT UserStack
        IMPORT SVCStack
        IMPORT UndefStack
        IMPORT IRQStack
        IMPORT AbortStack
        IMPORT FIQStack

InitStacks
	;Don't use DRAM,such as stmfd,ldmfd......
	;SVCstack is initialized before
	;Under toolkit ver 2.50, 'msr cpsr,r1' can be used instead of 'msr cpsr_cxsf,r1'

    mrs	    r0,cpsr
    bic	    r0,r0,#MODEMASK
    orr	    r1,r0,#UNDEFMODE|NOINT
    msr	    cpsr_cxsf,r1		;UndefMode
    ldr	    sp,=UndefStack
	
    orr	    r1,r0,#ABORTMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;AbortMode
    ldr	    sp,=AbortStack

    orr	    r1,r0,#IRQMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;IRQMode
    ldr	    sp,=IRQStack
	
    orr	    r1,r0,#FIQMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;FIQMode
    ldr	    sp,=FIQStack

    ;bic	    r0,r0,#MODEMASK|NOINT
    orr	    r1,r0,#SVCMODE|NOINT
    msr	    cpsr_cxsf,r1 	    	;SVCMode
    ldr	    sp,=SVCStack

	;USER mode is not initialized.
    mov	    pc,lr ;The LR register may be not valid for the mode changes.

;****************************************************
;*	The function for entering power down mode   *
;****************************************************
;void EnterPWDN(int CLKCON);
EnterPWDN
    mov	    r2,r0               ;r0=CLKCON
    ldr	    r0,=REFRESH		
    ldr	    r3,[r0]
    mov	    r1, r3
    orr	    r1, r1, #0x400000   ;self-refresh enable
    str	    r1, [r0]

    nop     ;Wait until self-refresh is issued. May not be needed.
    nop     ;If the other bus master holds the bus, ...
    nop	    ; mov r0, r0
    nop
    nop
    nop
    nop

;enter POWERDN mode
    ldr	    r0,=CLKCON
    str	    r2,[r0]

;wait until enter SL_IDLE,STOP mode and until wake-up
    mov	    r0,#0xff
0   subs    r0,r0,#1
    bne	    %B0

;exit from DRAM/SDRAM self refresh mode.
    ldr	    r0,=REFRESH
    str	    r3,[r0]
    mov	    pc,lr

    LTORG
SMRDATA DATA
	DCD BWSCON_cfg
	DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))	;GCS0
	DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))	;GCS1 
	DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))	;GCS2
	DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))	;GCS3
	DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))	;GCS4
	DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))	;GCS5
	[ BDRAMTYPE="DRAM" 
	    DCD ((B6_MT<<15)+(B6_Trcd<<4)+(B6_Tcas<<3)+(B6_Tcp<<2)+(B6_CAN))	;GCS6 check the MT value in parameter.a
	    DCD ((B7_MT<<15)+(B7_Trcd<<4)+(B7_Tcas<<3)+(B7_Tcp<<2)+(B7_CAN))	;GCS7
	| ;"SDRAM"
		DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))	;GCS6
		DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))	;GCS7
	]
	DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)	;REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019
	DCD 0x10			;SCLK power down mode, BANKSIZE 32M/32M
	DCD 0x20			;MRSR6 CL=2clk
	DCD 0x20			;MRSR7
	ALIGN

        IMPORT	HandleReset
        IMPORT	HandleUndef
        IMPORT	HandleSWI
        IMPORT	HandlePabort
        IMPORT	HandleDabort
        IMPORT	HandleReserved
        IMPORT	HandleIRQ
        IMPORT	HandleFIQ

        IMPORT	HandleADC
        IMPORT	HandleRTC
        IMPORT	HandleUTXD1
        IMPORT	HandleUTXD0
        IMPORT	HandleSIO
        IMPORT	HandleIIC
        IMPORT	HandleURXD1
        IMPORT	HandleURXD0
        IMPORT	HandleTIMER5
        IMPORT	HandleTIMER4
        IMPORT	HandleTIMER3
        IMPORT	HandleTIMER2
        IMPORT	HandleTIMER1
        IMPORT	HandleTIMER0
        IMPORT	HandleUERR01
        IMPORT	HandleWDT
        IMPORT	HandleBDMA1
        IMPORT	HandleBDMA0
        IMPORT	HandleZDMA1
        IMPORT	HandleZDMA0
        IMPORT	HandleTICK
        IMPORT	HandleEINT4567
        IMPORT	HandleEINT3
        IMPORT	HandleEINT2
        IMPORT	HandleEINT1
        IMPORT	HandleEINT0

		END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美激情| 91精品黄色片免费大全| 美腿丝袜在线亚洲一区| 午夜欧美大尺度福利影院在线看 | 亚洲成人免费观看| 亚洲综合自拍偷拍| 亚洲bt欧美bt精品777| 日本怡春院一区二区| 麻豆一区二区三| 精彩视频一区二区| 粉嫩av一区二区三区在线播放| 国内成人免费视频| 成人久久18免费网站麻豆 | 国产福利91精品| 国产成人综合精品三级| gogo大胆日本视频一区| 色菇凉天天综合网| 日韩一区二区在线观看视频| 精品国产乱码久久久久久牛牛 | 成人va在线观看| 99精品黄色片免费大全| 欧美日韩在线观看一区二区| 久久蜜桃av一区精品变态类天堂| 欧美一区二区三区四区高清| 精品久久国产字幕高潮| 国产欧美一区二区三区在线看蜜臀| 国产精品高潮呻吟| 性做久久久久久久久| 国产精品一级二级三级| 色综合久久久久综合体| 日韩精品一区二区三区四区| 欧美国产激情一区二区三区蜜月| 亚洲精品中文在线| 精品在线一区二区| 在线免费观看不卡av| 精品sm在线观看| 亚洲成av人影院| 成人网在线播放| 精品婷婷伊人一区三区三| 久久久另类综合| 亚洲一级二级在线| 国产aⅴ精品一区二区三区色成熟| 色吧成人激情小说| 国产三区在线成人av| 视频在线观看一区二区三区| 国产二区国产一区在线观看| 欧美精品亚洲二区| 日韩一区中文字幕| 国产成人亚洲精品青草天美| 欧美乱妇一区二区三区不卡视频| 国产精品久久久一本精品| 美美哒免费高清在线观看视频一区二区 | av中文字幕不卡| 日韩美女一区二区三区四区| 亚洲精品乱码久久久久久| 国产精品一区二区三区网站| 69精品人人人人| 亚洲综合一区二区三区| 国产91在线|亚洲| 日韩欧美不卡在线观看视频| 亚洲高清中文字幕| 色域天天综合网| 国产精品久久久久久福利一牛影视| 久久精品国产77777蜜臀| 欧美一区2区视频在线观看| 亚洲www啪成人一区二区麻豆| 91丨九色丨蝌蚪丨老版| 中文字幕亚洲在| 成人午夜视频在线观看| 日本一区二区免费在线 | 日本一区二区三区四区| 九九久久精品视频 | 国产精品91xxx| 久久香蕉国产线看观看99| 理论电影国产精品| 日韩欧美中文一区| 另类小说欧美激情| 精品国产伦一区二区三区免费| 日本午夜精品一区二区三区电影| 欧美区一区二区三区| 韩国成人在线视频| 精品国产污污免费网站入口| 韩国三级电影一区二区| 精品国产电影一区二区| 国产精品亚洲成人| 国产精品视频你懂的| 成人黄色在线看| 亚洲精品高清在线| 欧美日产在线观看| 蜜臀av性久久久久蜜臀av麻豆| 日韩网站在线看片你懂的| 国产综合一区二区| 国产欧美日韩在线| 色域天天综合网| 蜜臀国产一区二区三区在线播放| 精品久久久影院| av中文字幕亚洲| 亚洲国产日韩一区二区| 日韩欧美国产不卡| 成人黄色av电影| 亚洲成人精品影院| 久久精品一区蜜桃臀影院| 99re这里都是精品| 性做久久久久久免费观看欧美| 日韩精品一区二区三区老鸭窝 | 色婷婷狠狠综合| 蜜桃av一区二区| 日韩毛片精品高清免费| 欧美一激情一区二区三区| 国产成人鲁色资源国产91色综 | 日韩美女视频一区二区| 欧美精三区欧美精三区| 国产成人免费在线视频| 亚洲永久精品国产| 久久精品男人的天堂| 欧美日韩中文字幕精品| 国产成人亚洲精品青草天美| 亚洲3atv精品一区二区三区| 2020国产精品自拍| 欧美视频日韩视频在线观看| 国产精品一级二级三级| 午夜成人免费电影| 亚洲视频免费在线观看| 欧美成人乱码一区二区三区| 欧美综合亚洲图片综合区| 欧美性受xxxx黑人xyx| 国产精品538一区二区在线| 午夜精品福利在线| 亚洲六月丁香色婷婷综合久久| 精品国产麻豆免费人成网站| 欧美电影在哪看比较好| 一本大道久久精品懂色aⅴ| 国产一区999| 蜜桃视频一区二区三区| 亚洲电影第三页| 亚洲乱码日产精品bd| 国产精品污污网站在线观看| 久久免费看少妇高潮| 欧美mv日韩mv国产网站| 91精品国产日韩91久久久久久| 色综合久久久久久久| 91在线你懂得| 91免费国产在线| 成人久久视频在线观看| 国产91高潮流白浆在线麻豆| 国产在线看一区| 国产真实精品久久二三区| 精品午夜久久福利影院| 日本不卡123| 九色porny丨国产精品| 久久av资源站| 激情五月播播久久久精品| 麻豆成人在线观看| 国产又黄又大久久| 国产宾馆实践打屁股91| 成人黄色电影在线| 97久久精品人人做人人爽| 91蜜桃视频在线| 在线观看欧美黄色| 欧美精品欧美精品系列| 91精品欧美久久久久久动漫| 欧美电视剧在线观看完整版| 欧美亚男人的天堂| 欧美日韩国产中文| 日韩午夜在线影院| 久久蜜臀精品av| 图片区小说区区亚洲影院| 午夜视频一区二区| 美国毛片一区二区三区| 国产一区二区三区久久久 | 91在线高清观看| 欧美丝袜丝nylons| 日韩欧美一二三区| 亚洲国产精品v| 一区二区三区在线视频观看| 亚洲成人先锋电影| 精品一区二区三区不卡| 高清shemale亚洲人妖| 97久久超碰精品国产| 欧美精品自拍偷拍| 久久精品免费在线观看| 亚洲另类春色国产| 青椒成人免费视频| 成人午夜视频在线观看| 在线观看欧美日本| 久久久99免费| 亚洲综合免费观看高清完整版在线 | 国产乱子伦视频一区二区三区 | 久久综合九色欧美综合狠狠| 国产精品免费视频观看| 午夜影院在线观看欧美| 国产精品一二三四区| 欧美日韩免费观看一区二区三区| 欧美成人性战久久| 一区二区三区日韩在线观看| 国产在线精品国自产拍免费| 在线观看亚洲一区| 久久精品一区二区三区不卡牛牛| 亚洲综合区在线| 成人性生交大片免费看中文网站|