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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 2410init.s

?? 這個(gè)啟動(dòng)代碼是能在embestIDE下使用
?? S
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#=========================================
# NAME: 2410INIT.S
# DESC: C start up codes
#       Configure memory, ISR ,stacks
#	Initialize C-variables
# HISTORY:
# 2002.02.25:kwtark: ver 0.0
# 2002.03.20:purnnamu: Add some functions for testing STOP,POWER_OFF mode
#=========================================

	 .include "option.a"
     .include "memcfg.a"
     .include "2410addr.s"

.EQU	BIT_SELFREFRESH,(1<<22)
.EQU    REFRESH,            0x48000024
#Pre-defined constants
.equ 	USERMODE,	0x10
.equ 	FIQMODE,	0x11
.equ 	IRQMODE,	0x12
.equ 	SVCMODE,	0x13
.equ 	ABORTMODE,	0x17
.equ 	UNDEFMODE,	0x1b
.equ 	MODEMASK,	0x1f
.equ 	NOINT,		0xc0

#The location of stacks
/*.equ 	UserStack,	(_STACK_BASEADDRESS-0x3800)	/*0x33ff4800 ~*/ 
/*.equ 	SVCStack	(_STACK_BASEADDRESS-0x2800) /*0x33ff5800 ~*/
/*.equ 	UndefStack	(_STACK_BASEADDRESS-0x2400) /*0x33ff5c00 ~*/
/*.equ 	AbortStack	(_STACK_BASEADDRESS-0x2000) /*0x33ff6000 ~*/
/*.equ 	IRQStack	(_STACK_BASEADDRESS-0x1000)	/*0x33ff7000 ~*/
/*.equ 	FIQStack	(_STACK_BASEADDRESS-0x0)	/*0x33ff8000 ~ */

#Check if tasm.exe(armasm -16 ...@ADS 1.0) is used.
/*	GBLL    THUMBCODE
	[ {CONFIG} = 16 
THUMBCODE SETL  {TRUE}
	    CODE32
    	|   
THUMBCODE SETL  {FALSE}
    	]

    	MACRO
	MOV_PC_LR
    	[ THUMBCODE
            bx lr
    	|
            mov	pc,lr
    	]
	MEND

    	MACRO
	MOVEQ_PC_LR
    	[ THUMBCODE
    	    bxeq lr
    	|
            moveq pc,lr
    	]
	MEND*/

.macro HANDLER HandleLabel
	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)*/
.endm
    
	 .extern       Image_RO_Base
    .extern       Image_RO_Limit    /* End of ROM code (=start of ROM data) */
    .extern       Image_RW_Base     /* Base of RAM to initialise */           
    .extern       Image_ZI_Base     /* Base and limit of area */              
    .extern       Image_ZI_Limit    /* to zero initialise */       
    .extern Main		        	/* The main entry of mon program */

    .text

	
ENTRY:
ResetEntry:	
# 1)The code, which converts to Big-endian, should be in little endian code.
	# 2)The following little endian code will be compiled in Big-Endian mode. 
	#   The code byte order should be changed as the memory bus width.
	# 3)The pseudo instruction,.long can't be used here because the linker generates error.
	 .ifeq ENDIAN_CHANGE-1
	    .ifdef ENTRY_BUS_WIDTH
	     .ifeq ENTRY_BUS_WIDTH-32
	    	b	ChangeBigEndian	    @ .long 0xea000007 
	     .elseif ENTRY_BUS_WIDTH-16
	    	andeq	r14,r7,r0,lsl #20   @ .long 0x0007ea00
		 .elseif ENTRY_BUS_WIDTH-8
	    	streq	r0,[r0,-r10,ror #1] @ .long 0x070000ea
		 .endif
	    .endif
	 .else
		b	ResetHandler 
	 .endif
	
	b	HandlerUndef	@ handler for Undefined mode
	b	HandlerSWI	@ handler for SWI interrupt
	b	HandlerPabort	@ handler for PAbort
	b	HandlerDabort	@ handler for DAbort
	b	.		@ reserved
	b	HandlerIRQ	@ handler for IRQ interrupt 
	b	HandlerFIQ	@ handler for FIQ interrupt

#@ 0x20
	b	EnterPWDN
ChangeBigEndian:
#@ 0x24
	.ifeq ENTRY_BUS_WIDTH-32
	    .long	0xee110f10	@ 0xee110f10 => mrc p15,0,r0,c1,c0,0
	    .long	0xe3800080	@ 0xe3800080 => orr r0,r0,#0x80#  //Big-endian
	    .long	0xee010f10	@ 0xee010f10 => mcr p15,0,r0,c1,c0,0
	.endif
	.ifeq ENTRY_BUS_WIDTH-16
	    .long 0x0f10ee11
	    .long 0x0080e380	
	    .long 0x0f10ee01	
	.endif
	.ifeq ENTRY_BUS_WIDTH-8
	    .long 0x100f11ee	
	    .long 0x800080e3	
	    .long 0x100f01ee	
    .endif
    	
	.long 0xffffffff  @ swinv 0xffffff is similar with NOP and run well in both endian mode. 
	.long 0xffffffff
	.long 0xffffffff
	.long 0xffffffff
	.long 0xffffffff
	b ResetHandler
	
#Function for entering power down mode
# 1. SDRAM should be in self-refresh mode.
# 2. All interrupt should be maksked for SDRAM/DRAM self-refresh.
# 3. LCD controller should be disabled for SDRAM/DRAM self-refresh.
# 4. The I-cache may have to be turned on. 
# 5. The location of the following code may have not to be changed.

#void EnterPWDN(int CLKCON); 
EnterPWDN:			
	mov r2,r0		@r2=rCLKCON
	tst r0,#0x8		@POWER_OFF mode?
	bne ENTER_POWER_OFF

ENTER_STOP:	
	ldr r0,=REFRESH		
	ldr r3,[r0]		@r3=rREFRESH	
	mov r1, r3
	orr r1, r1, #BIT_SELFREFRESH
	str r1, [r0]		@Enable SDRAM self-refresh

	mov r1,#16	   	@wait until self-refresh is issued. may not be needed.
B0:	subs r1,r1,#1
	bne B0

	ldr r0,=CLKCON		@enter STOP mode.
	str r2,[r0]    

	mov r1,#32
F0:	subs r1,r1,#1	@1) wait until the STOP mode is in effect.
	bne B0		@2) Or wait here until the CPU&Peripherals will be turned-off
			@   Entering POWER_OFF mode, only the reset by wake-up is available.

	ldr r0,=REFRESH @exit from SDRAM self refresh mode.
	str r3,[r0]
	
	MOV_PC_LR

ENTER_POWER_OFF:	
	#NOTE.
	#1) rGSTATUS3 should have the return address after wake-up from POWER_OFF mode.
	
	ldr r0,=REFRESH		
	ldr r1,[r0]		@;r1=rREFRESH	
	orr r1, r1, #BIT_SELFREFRESH
	str r1, [r0]		@;Enable SDRAM self-refresh

	mov r1,#16	   	@;Wait until self-refresh is issued,which may not be needed.
B1:	subs r1,r1,#1
	bne B1

	ldr 	r1,=MISCCR
	ldr	r0,[r1]
	orr	r0,r0,#(7<<17)  @;Make sure that SCLK0:SCLK->0, SCLK1:SCLK->0, SCKE=L during boot-up 
	str	r0,[r1]

	ldr r0,=CLKCON
	str r2,[r0]    

	b .			@;CPU will die here.
	

WAKEUP_POWER_OFF:
	#;Release SCLKn after wake-up from the POWER_OFF mode.

	ldr r1,=MISCCR
	ldr	r0,[r1]
	bic	r0,r0,#(7<<17)  @;SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:L->H
	str	r0,[r1]

	#;Set memory control registers
	ldr	r0,=SMRDATA
	ldr	r1,=BWSCON	@;BWSCON Address
	add	r2, r0, #52	@;End address of SMRDATA
B2:       
	ldr	r3, [r0], #4
	str	r3, [r1], #4
	cmp	r2, r0
	bne	B2

	mov r1,#256
B3:	subs r1,r1,#1		@;1) wait until the SelfRefresh is released.
	bne B3		
	
	ldr r1,=GSTATUS3 	@;GSTATUS3 has the start address just after POWER_OFF wake-up
	ldr r0,[r1]
	mov pc,r0

.LTORG  
HandlerFIQ:      HANDLER HandleFIQ
HandlerIRQ:      HANDLER HandleIRQ
HandlerUndef:    HANDLER HandleUndef
#;HandlerUndef
#;	sub	sp, sp, #4			;decrement sp(to store jump address)
#;	stmfd	sp!, {r14}		;PUSH the work register to stack(lr does't push because it return to original address)
#;	ldr	r0, =HandleUndef	;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}	
HandlerSWI:      HANDLER HandleSWI
HandlerDabort:   HANDLER HandleDabort
HandlerPabort:   HANDLER HandlePabort

IsrIRQ:  
	sub	sp, sp, #4       @ ;reserved for PC
	stmfd	sp!, {r8-r9}
	
	ldr	r9, =INTOFFSET
	ldr	r9, [r9]
	ldr	r8, =HandleEINT0
	add	r8, r8,r9,lsl #2
	ldr	r8, [r8]
	str	r8, [sp,#8]
	ldmfd	sp!,{r8-r9,pc}

#=======
# ENTRY  
#=======
ResetHandler:
	ldr	r0,=WTCON       @watch dog disable 
	ldr	r1,=0x0         
	str	r1,[r0]

	ldr	r0,=INTMSK
	ldr	r1,=0xffffffff  @all interrupt disable
	str	r1,[r0]

	ldr	r0,=INTSUBMSK
	ldr	r1,=0x7ff		@all sub interrupt disable
	str	r1,[r0]

   .ifdef LED_FALSE
        # rGPFDAT = (rGPFDAT & ~(0xf<<4))   ((~data & 0xf)<<4)#    
        # Led_Display
	ldr	r0,=GPFCON
	ldr	r1,=0x5500		
	str	r1,[r0]
	ldr	r0,=GPFDAT
	ldr	r1,=0x10
	str	r1,[r0]
	.endif
	
    ldr	r0,=GPBCON     @蜂鳴器靜止
	ldr	r1,=0x15555a	
	str	r1,[r0]
	ldr	r0,=GPBDAT
	ldr	r1,=0x7f8
	str	r1,[r0]

    ldr	r0,=GPGCON     @顯示器黑皮
	ldr	r1,=0xff85ff02		
	str	r1,[r0]
	ldr	r0,=GPGDAT
	ldr	r1,=0x0
	str	r1,[r0]


	#To reduce PLL lock time, adjust the LOCKTIME register. 
	ldr	r0,=LOCKTIME
	ldr	r1,=0xffffff
	str	r1,[r0]
        
    .ifdef PLL_ON_START
	# Configure MPLL
    
    ldr	r0,=CLKDIVN         
	ldr	r1,=0x3
	str	r1,[r0]

	ldr	r0,=MPLLCON          
	ldr	r1,=0xa1031
	str	r1,[r0]
	.endif

#Check if the boot is caused by the wake-up from POWER_OFF mode.
    ldr	r1,=GSTATUS2
	ldr	r0,[r1]
	tst	r0,#0x2
#In case of the wake-up from POWER_OFF mode, go to POWER_OFF_WAKEUP handler. 
	bne	WAKEUP_POWER_OFF

   .global StartPointAfterPowerOffWakeUp
StartPointAfterPowerOffWakeUp:

    #Set memory control registers
	adr	r0, SMRDATA	@can't use ldr r0, =xxxx important!!!
	ldr	r1, =BWSCON	@BWSCON Address
	add	r2, r0, #52	@End address of SMRDATA
B4:       
	ldr	r3, [r0], #4    
	str	r3, [r1], #4    
	cmp	r2, r0		
	bne	B4

    #Initialize stacks
	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]

	ldr	r0, =BWSCON
	ldr	r0, [r0]
	ands	r0, r0, #6		@OM[1:0] != 0, NOR FLash boot
	bne	copy_proc_beg		@don't read nand flash
	Ldr	r0, =ResetEntry		@OM[1:0] == 0, NAND FLash boot   , 是不是判斷resetentry地址在0x0還是0x30000000????
@	cmp	r0, #0			    @if use Multi-ice,               , 是不是“若是0x0,則表明是nandflash啟動(dòng)”
    cmp	r0, #0x30000000
	bne	copy_proc_beg		@don't read nand flash for boot  , 若是“0x30000000,則程序已經(jīng)通過仿真器下載到sdram,
#===========================================================   resetentry從0x30000000開始執(zhí)行,不需要在搬運(yùn)nandflash里面的代碼
nand_boot_beg:
	ldr	r5, =NFCONF
	ldr	r0,	=(1<<15)|(1<<12)|(1<<11)|(7<<8)|(7<<4)|(7)
	str	r0,	[r5]
	
	bl	ReadNandID
	mov	r6, #0
	ldr	r0, =0xec73
	cmp	r5,	r0
	beq	G1
	ldr	r0, =0xec75                     @我們做的板讀出來(lái)是0xec76
	cmp	r5, r0
	beq	G1
	mov	r6, #1
G1:	
	bl	ReadNandStatus
	
	mov	r8, #0
#	ldr	r9, =ResetEntry          @從nandflash啟動(dòng)時(shí),resetentry地址是0x0還是0x30000000????
     ldr	r9, =0x30000000                  @修改后的,自己添加的
G2:	
	ands	r0, r8, #0x1f                @判斷一塊block是否拷貝完
	bne		G3
	mov		r0, r8
	bl		CheckBadBlk
	cmp		r0, #0
	addne	r8, r8, #32                  @若是壞塊,跳到下一塊  
	bne		G4
G3:	
	mov	r0, r8
	mov	r1, r9
	bl	ReadNandPage
	add	r9, r9, #512
	add	r8, r8, #1
G4:	
	cmp	r8, #4096                         @總共要拷貝256頁(yè),128kbytes,為什么是這個(gè)數(shù)目,是不是由程序大小決定的?????
@	cmp	r8, #1 
	bcc	G2
G5:	
	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色噜噜| 蜜桃免费网站一区二区三区| 国产欧美综合在线| 国产亚洲欧美日韩在线一区| 26uuu亚洲| 久久久久久久久岛国免费| 精品久久久久一区| 26uuu亚洲婷婷狠狠天堂| 色视频欧美一区二区三区| 色婷婷av一区二区三区大白胸| 色噜噜夜夜夜综合网| 91成人网在线| 欧美精品一卡二卡| 欧美一区二区三区在线观看视频| 欧美一区二区三区四区在线观看| 欧美一区二区观看视频| 日韩电影在线观看网站| 亚洲aaa精品| 婷婷开心激情综合| 丝袜诱惑制服诱惑色一区在线观看 | 久久66热偷产精品| 国产91丝袜在线播放0| 国产mv日韩mv欧美| 97久久超碰国产精品| 欧美日韩国产免费一区二区 | 在线视频一区二区三区| 欧美日本不卡视频| 欧美电视剧在线观看完整版| 中文字幕精品一区二区三区精品| 亚洲人一二三区| 五月婷婷激情综合| 国产麻豆成人传媒免费观看| 成人avav影音| 欧美日韩一级视频| 久久免费的精品国产v∧| 国产精品久久久久婷婷二区次| 一级精品视频在线观看宜春院 | 亚洲成年人网站在线观看| 免费欧美日韩国产三级电影| 国产不卡在线播放| 欧美视频一区二区在线观看| 欧美不卡激情三级在线观看| 国产精品护士白丝一区av| 亚洲丶国产丶欧美一区二区三区| 国产尤物一区二区在线| eeuss鲁片一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 国产一区欧美二区| av在线不卡免费看| 4hu四虎永久在线影院成人| 亚洲综合激情网| 日韩中文字幕1| 成人一级片在线观看| 91麻豆精品国产91久久久使用方法| 久久久一区二区三区捆绑**| 亚洲一区二区成人在线观看| 国产精品资源在线| 欧美男女性生活在线直播观看| 久久天天做天天爱综合色| 亚洲一区在线观看免费观看电影高清 | 一二三区精品视频| 国产高清成人在线| 4hu四虎永久在线影院成人| 国产精品国产三级国产aⅴ入口| 日韩高清不卡一区二区三区| 91网址在线看| 久久久久久9999| 日本成人在线网站| 色婷婷av一区二区三区之一色屋| 久久精品一二三| 日本美女一区二区| 欧美三级三级三级| 亚洲欧洲成人av每日更新| 国产在线一区观看| 制服丝袜成人动漫| 亚洲第一电影网| 色婷婷亚洲精品| 国产精品国产三级国产普通话三级| 国内精品伊人久久久久影院对白| 欧美日韩精品一区二区三区| 亚洲精品成人悠悠色影视| 成人h精品动漫一区二区三区| 精品国产乱码久久| 日本va欧美va欧美va精品| 欧美日韩高清影院| 亚洲国产精品久久久男人的天堂| 一本大道久久a久久精二百| 中文字幕亚洲一区二区av在线| 国产麻豆日韩欧美久久| 精品国产凹凸成av人导航| 免费成人小视频| 欧美一区二区三区色| 亚瑟在线精品视频| 欧美日韩大陆一区二区| 一区二区三区国产精华| 欧洲日韩一区二区三区| 亚洲午夜在线视频| 欧美日韩一级片在线观看| 亚洲成人免费在线| 欧美福利视频导航| 香港成人在线视频| 91精品国产91综合久久蜜臀| 日韩专区一卡二卡| 欧美一区三区四区| 免费观看在线综合| 日韩女优av电影| 国产一区视频网站| 国产女人水真多18毛片18精品视频 | 亚洲精品成a人| 色婷婷综合激情| 亚洲地区一二三色| 欧美一区二区日韩| 久久精品999| 久久综合狠狠综合久久激情| 国产成人午夜精品影院观看视频| 国产精品水嫩水嫩| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲精选在线视频| 欧美三区在线视频| 日韩av在线免费观看不卡| 日韩亚洲欧美一区二区三区| 久久激情综合网| 中文在线一区二区| 色菇凉天天综合网| 天天色图综合网| 精品国产免费一区二区三区香蕉| 国产成+人+日韩+欧美+亚洲| 亚洲欧美日韩在线| 欧美日韩国产美女| 国产一级精品在线| 中文字幕亚洲一区二区va在线| 欧美色倩网站大全免费| 精品一二线国产| 中文字幕中文乱码欧美一区二区| 欧美三级三级三级| 国产一区二区在线影院| 亚洲欧洲国产日本综合| 91麻豆精品国产91久久久久 | 久久蜜桃av一区精品变态类天堂| av成人动漫在线观看| 亚洲444eee在线观看| 久久婷婷久久一区二区三区| 一本到高清视频免费精品| 另类小说一区二区三区| √…a在线天堂一区| 91精品国产综合久久久久久久| 国产在线不卡一区| 亚洲午夜激情网页| 久久久久久久久久久黄色| 欧美性色综合网| 国产精品伊人色| 亚洲国产精品久久不卡毛片| 久久久久国色av免费看影院| 欧美系列一区二区| 丁香婷婷综合五月| 国产精品亚洲视频| 中文字幕一区二区三区在线播放 | 国产精品你懂的在线| 欧美久久久久中文字幕| 不卡在线视频中文字幕| 青青草视频一区| 亚洲欧美偷拍卡通变态| 一区二区三区国产精华| 精品处破学生在线二十三| 在线观看区一区二| 国产成人精品在线看| 天天亚洲美女在线视频| 亚洲男女一区二区三区| 久久久精品tv| 日韩欧美资源站| 欧美视频一区二区三区四区| 成人毛片视频在线观看| 久久精品国产精品亚洲综合| 亚洲午夜av在线| 亚洲欧洲成人精品av97| 久久久久国色av免费看影院| 欧美精品vⅰdeose4hd| 91免费视频网| 成人免费看的视频| 国产精品一区在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲综合久久久久| 亚洲欧美激情在线| 国产精品久久久久久久裸模| 久久精品日产第一区二区三区高清版| 欧美乱妇20p| 欧美日韩免费一区二区三区| 91色porny在线视频| 成人av免费在线观看| 国产99久久久久久免费看农村| 麻豆高清免费国产一区| 男女性色大片免费观看一区二区| 亚洲va国产天堂va久久en| 亚洲人午夜精品天堂一二香蕉| 欧美激情一区二区| 国产亚洲女人久久久久毛片| 久久综合精品国产一区二区三区 | 久久精品国产澳门| 青青草国产成人av片免费| 日韩精品一级中文字幕精品视频免费观看 |