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

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

?? 44binit.s

?? 《基于s3c44B0X嵌入式uCLinux系統原理及應用》李巖編的ppt
?? S
字號:
/* *******************************************************
 * NAME    : 44BINIT.S					*
 * Version : 10.JAn.2003				*
 * Description:					*
 *	C start up codes				*
 *	Configure memory, Initialize ISR ,stacks	*
 *	Initialize C-variables				*
 *	Fill zeros into zero-initialized C-variables	*
 *******************************************************/
 
//#include "arm.h"

.globl _start
_start:
    b ResetHandler  //for debug
    b HandlerUndef  //handlerUndef
    b HandlerSWI    //SWI interrupt handler
    b HandlerPabort //handlerPAbort
    b HandlerDabort //handlerDAbort
    b .		    //handlerReserved
    b IsrIRQ
    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. 
    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

	

HandlerFIQ:	.word HandleFIQ
HandlerIRQ:	.word HandleIRQ
HandlerUndef:	.word HandleUndef
HandlerSWI:	.word HandleSWI
HandlerDabort:	.word HandleDabort
HandlerPabort:	.word HandlePabort

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


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

IsrIRQ:	//using I_ISPR register.
	stmdb    r13!,{r0-r8,r12,r14}
	bl IRQ
	ldmia    r13!,{r0-r8,r12,r14}
	subs     pc,r14,#0x4
IRQ:    
	sub	    sp,sp,#4       //reserved for PC
    	stmfd   sp!,{r8-r9}   

    	ldr	    r9,I_ISPR
    	ldr	    r9,[r9]
    	mov	    r8,#0x0
F0:
    	movs    r9,r9,lsr #1
    	bcs	    F1
    	add	    r8,r8,#4
    	b	    F0

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


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

    	ldr	    r0,INTMSK
    	ldr	    r1,MASKALL   //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]

	ldr	r0,PLLCON			//temporary setting of PLL
	ldr	r1,PLLCON_DAT 	//Fin=10MHz,Fout=40MHz
	str	r1,[r0]

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

/*  ****************************************************
    *	Set memory control registers			* 	
    *****************************************************/
    	adr	    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,IsrIRQ			//if there isn't 'subs pc,lr,#4' at 0x18, 0x1c
    	str	    r1,[r0]

    	BL	Main	    //Don't use main() because ......
    	B	.						


/*****************************************************
	The function for initializing stack	    *
/*****************************************************/
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,#0X1F
    	orr	    r1,r0,#0xDB		//UNDEFMODE|NOINT
    	msr	    cpsr,r1		//UndefMode
    	ldr	    sp,UndefStack
	
    	orr	    r1,r0,#0XD7		//ABORTMODE|NOINT
    	msr	    cpsr,r1 	    	//AbortMode
    	ldr	    sp,AbortStack

    	orr	    r1,r0,#0XD2		//IRQMODE|NOINT
    	msr	    cpsr,r1 	    	//IRQMode
    	ldr	    sp,IRQStack
	
    	orr	    r1,r0,#0XD1		//FIQMODE|NOINT
    	msr	    cpsr,r1 	    	//FIQMode
    	ldr	    sp,FIQStack

    	bic	    r0,r0,#0XDF		//MODEMASK|NOINT
    	orr	    r1,r0,#0X13
    	msr	    cpsr,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
    
B0: 	subs    r0,r0,#1
    	bne	B0

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

SMRDATA:
/******************************************************************
 * Memory configuration has to be optimized for best performance *
 * The following parameter is not optimized.                     *
 ******************************************************************/

/**** memory access cycle parameter strategy ***
// 1) Even FP-DRAM, EDO setting has more late fetch point by half-clock
// 2) The memory settings,here, are made the safe parameters even at 66Mhz.
// 3) FP-DRAM Parameters:tRCD=3 for tRAC, tcas=2 for pad delay, tcp=2 for bus load.
// 4) DRAM refresh rate is for 40Mhz. */

   
	.long	 0x11110090	//Bank0=OM[1:0], Bank1~Bank7=16bit, bank2=8bit//
 	.long	 0X600		//GCS0
	.long	 0X7bc0		//GCS1 
	.long    0X7fc0		//GCS2
	.long    0X7ffc		//GCS3
	.long	 0X7ffc		//GCS4
	.long	 0X7ffc		//GCS5
	.long	 0X18000	//GCS6
	.long	 0X18000	//GCS7
	.long	 0x820591	//REFRESH RFEN=1, TREFMD=0, trp=3clk, trc=5clk, tchr=3clk,count=1019
	.long	 0x16				//SCLK power mode, BANKSIZE 32M/32M
	.long	 0x20			//MRSR6 CL=2clk
	.long	 0x20			//MRSR7
				
UserStack:	.word	0xc7ffa00
SVCStack:	.word	0xc7ffb00
UndefStack:	.word	0xc7ffc00
AbortStack:	.word	0xc7ffd00
IRQStack:	.word	0xc7ffe00
FIQStack:	.word	0xc7fff00


HandleReset:	.word	0xc7fff00
HandleUndef:	.word	0xc7fff04
HandleSWI:	.word	0xc7fff08
HandlePabort:	.word	0xc7fff0c
HandleDabort:	.word	0xc7fff10
HandleReserved:	.word	0xc7fff14
HandleIRQ:	.word	0xc7fff18
HandleFIQ:	.word	0xc7fff1c

//Don't use the label 'IntVectorTable',
//because armasm.exe cann't recognize this label correctly.
//the value is different with an address you think it may be.
//IntVectorTable
HandleADC:	.word	0xc7fff20
HandleRTC:	.word	0xc7fff24
HandleUTXD1:	.word	0xc7fff28
HandleUTXD0:	.word	0xc7fff2c
HandleSIO:	.word	0xc7fff30
HandleIIC:	.word	0xc7fff34
HandleURXD1:	.word	0xc7fff38
HandleURXD0:	.word	0xc7fff3c
HandleTIMER5:	.word	0xc7fff40
HandleTIMER4:	.word	0xc7fff44
HandleTIMER3:	.word	0xc7fff48
HandleTIMER2:	.word	0xc7fff4c
HandleTIMER1:	.word	0xc7fff50
HandleTIMER0:	.word	0xc7fff54
HandleUERR01:	.word	0xc7fff58
HandleWDT:	.word	0xc7fff5c
HandleBDMA1:	.word	0xc7fff60
HandleBDMA0:	.word	0xc7fff64
HandleZDMA1:	.word	0xc7fff68
HandleZDMA0:	.word	0xc7fff6c
HandleTICK:	.word	0xc7fff70
HandleEINT4567:	.word	0xc7fff74
HandleEINT3:	.word	0xc7fff78
HandleEINT2:	.word	0xc7fff7c
HandleEINT1:	.word	0xc7fff80
HandleEINT0:	.word	0xc7fff84

/* some parameters for the board */
/*Interrupt Control*/
INTPND:
	.long	    0x01e00004
INTMOD:
	.long	    0x01e00008
INTMSK:
	.long	    0x01e0000c
I_ISPR:
	.long	    0x01e00020
I_CMST:
	.long	    0x01e0001c

/*;Watchdog timer*/
WTCON:
	.long	    0x01d30000

/*;Clock Controller*/
PLLCON:
	.long	    0x01d80000
CLKCON:
	.long	    0x01d80004
LOCKTIME:
	.long    0x01d8000c
	
/*;Memory Controller*/
REFRESH:
	.long	     	0x01c80024

/*;Pre-defined constants*/
USERMODE:
	.long    0x10
FIQMODE:
	.long	    0x11
IRQMODE:
	.long	    0x12
SVCMODE:
	.long	    0x13
ABORTMODE:
	.long   0x17
UNDEFMODE:
	.long   0x1b
MODEMASK:
	.long    0x1f
NOINT:
	.long	    0xc0

_ISR_STARTADDRESS:
	.long   0xc7fff00 //GCS6:64M DRAM/SDRAM

PLLCLK:
	.long		40000000
PLLCON_DAT:
    .long   ((2 << 0) + (3 << 4) +( 0x48<< 12))

MASKALL:
	.long   0x07ffffff
	

		




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲免费在线一区| 91精品欧美一区二区三区综合在 | 久久久久久麻豆| 欧美午夜在线观看| 久久婷婷国产综合国色天香| 欧美电影免费观看高清完整版在线| 欧美在线观看视频一区二区三区| 成人网在线播放| 国产一区二区91| 极品少妇xxxx精品少妇| 美女视频一区二区三区| 天堂久久一区二区三区| 亚洲va在线va天堂| 五月天一区二区三区| 欧美aaa在线| 裸体一区二区三区| 日韩精品欧美成人高清一区二区| fc2成人免费人成在线观看播放 | 亚洲免费看黄网站| 自拍偷自拍亚洲精品播放| 亚洲日本va午夜在线影院| 久久成人免费日本黄色| 欧美日韩精品一区视频| 久久午夜羞羞影院免费观看| 日韩精品视频网站| 欧美日韩久久久一区| 一区二区三区中文在线观看| 亚洲电影视频在线| 色网综合在线观看| 欧美日韩日本视频| 久久久久久99久久久精品网站| 日韩专区在线视频| 欧美挠脚心视频网站| 亚洲综合色成人| 五月天视频一区| 欧美日韩免费电影| 婷婷国产在线综合| 欧美一区二区三区在线看| 欧美国产日韩亚洲一区| 亚洲另类春色国产| 精品综合久久久久久8888| 日韩欧美激情在线| 男女性色大片免费观看一区二区| 91免费观看视频在线| 欧美一区二区精品在线| 免费人成在线不卡| 精品第一国产综合精品aⅴ| 国产精品国产a级| 日韩精彩视频在线观看| 91精品国产综合久久精品| 青青草视频一区| 26uuu国产在线精品一区二区| 国产精品99久久久久| 91精品国产黑色紧身裤美女| 久久精品国产亚洲a| 国产午夜亚洲精品羞羞网站| 日韩成人精品在线| 在线精品视频免费观看| 婷婷综合五月天| 91精品国产日韩91久久久久久| 久久99最新地址| 欧美国产精品一区二区三区| 色网站国产精品| 日本在线观看不卡视频| 国产色一区二区| 色婷婷国产精品久久包臀| 日韩二区三区在线观看| 久久天堂av综合合色蜜桃网| 99久久99久久精品国产片果冻 | 色婷婷国产精品综合在线观看| 亚洲午夜视频在线| 99riav一区二区三区| 亚洲一区二区三区不卡国产欧美| 日韩一级视频免费观看在线| 丝袜亚洲另类丝袜在线| 国产香蕉久久精品综合网| 色悠悠亚洲一区二区| 美女在线视频一区| 亚洲女同一区二区| 欧美一级高清片在线观看| 不卡一区二区在线| 国产精品久久久久9999吃药| 欧美日本一道本在线视频| 国产成人免费视频精品含羞草妖精| 久久久影院官网| 色哟哟欧美精品| 国产精品99久久久| 亚洲高清中文字幕| 国产精品拍天天在线| 成人福利视频在线| 日本不卡视频在线观看| 亚洲免费观看高清在线观看| 久久久www免费人成精品| 欧美日韩极品在线观看一区| www.亚洲激情.com| 久久99久国产精品黄毛片色诱| 一区二区三区欧美视频| 精品日韩av一区二区| 成人一级黄色片| 奇米777欧美一区二区| 亚洲自拍都市欧美小说| 国产精品国产三级国产aⅴ中文 | 亚洲精品久久7777| 日本一区二区三区久久久久久久久不| 粉嫩一区二区三区在线看| 亚洲欧美自拍偷拍色图| 欧美自拍偷拍一区| 99久久综合色| 成人精品国产福利| 国产高清精品在线| 狠狠色丁香久久婷婷综合_中| 国产精品欧美一级免费| 国产夜色精品一区二区av| 欧美本精品男人aⅴ天堂| 欧美精品亚洲一区二区在线播放| 国产在线一区二区综合免费视频| 日本成人超碰在线观看| 午夜久久久久久久久久一区二区| 一区二区三区四区亚洲| 亚洲女性喷水在线观看一区| 亚洲欧美欧美一区二区三区| 中文字幕欧美一| 中文字幕字幕中文在线中不卡视频| 久久久久9999亚洲精品| 国产亚洲欧美激情| 久久精品综合网| 国产日本亚洲高清| 国产精品久久久久影视| 国产精品福利影院| 亚洲码国产岛国毛片在线| 一区二区三区在线视频播放| 夜夜嗨av一区二区三区四季av| 一区二区三区在线免费| 婷婷综合五月天| 久久狠狠亚洲综合| 国产精品系列在线播放| 成人短视频下载| 色婷婷精品大在线视频| 欧美三日本三级三级在线播放| 欧美美女网站色| 精品久久久久久久久久久久久久久久久 | 国产精品久久久久久久久图文区| 国产精品视频免费| 亚洲精品国产一区二区精华液 | 亚洲国产日产av| 婷婷国产v国产偷v亚洲高清| 蜜臀99久久精品久久久久久软件| 久久99国产乱子伦精品免费| 国产iv一区二区三区| 91免费精品国自产拍在线不卡| 欧美日韩国产精选| 精品久久久久久久久久久院品网| 国产日韩欧美精品电影三级在线| 亚洲天堂网中文字| 日本不卡视频在线| 成人开心网精品视频| 欧美性极品少妇| 亚洲精品一区二区在线观看| 国产精品乱人伦中文| 午夜天堂影视香蕉久久| 国产精品18久久久久久久久 | 欧美日韩一区二区三区在线看| 欧美sm美女调教| 一区二区三区四区亚洲| 国内精品视频一区二区三区八戒| 99国产精品国产精品久久| 欧美成人aa大片| 亚洲另类色综合网站| 国产一区二区三区四| 欧美日韩中文精品| 中文字幕av一区 二区| 日韩va欧美va亚洲va久久| 波多野结衣欧美| 精品国产一区二区三区不卡 | 久久国产精品第一页| 色狠狠综合天天综合综合| 色综合久久综合网| 精品久久五月天| 亚洲国产另类精品专区| 成人av网址在线观看| 欧美大白屁股肥臀xxxxxx| 一区二区三区国产| 成人激情小说乱人伦| 久久久久国产一区二区三区四区| 亚洲成人动漫精品| 99v久久综合狠狠综合久久| 久久午夜国产精品| 免费在线观看成人| 欧美日韩小视频| 亚洲女人****多毛耸耸8| 国产91在线看| 久久久高清一区二区三区| 精品在线一区二区三区| 欧美一区二区三区小说| 亚洲制服丝袜一区| 91豆麻精品91久久久久久| 亚洲欧洲精品一区二区三区| 成人午夜av电影| 国产精品久久久久四虎| 国产91露脸合集magnet|