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

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

?? bootloader_arm.s

?? Sharp LH75401(ARM7)處理器部分控制程序。
?? S
字號:
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 ; $Workfile:   bootloader_arm.s  $ 
 ; $Revision:   0.00  $ 
 ; $Author:     AnvikE  $ 
 ; $Date:       Mar 06 2003   $ 
 ; 
 ; Project:     LH754XX
 ; 
 ; Description: 
 ;  This file implements boot code for the KEV754XX chip.
 ; 
 ; Revision History: 
 ; 				
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
 ; 
 ;  Copyright (c) 2002 Sharp Microelectronics of the Americas 
 ; 
 ;  All rights reserved 
 ; 
 ;  SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION 
 ;  OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE, 
 ;  AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES, 
 ;  SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE. 
 ; 
 ;  SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY 
 ;  FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A 
 ;  SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE 
 ;  FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS. 
 ; 				
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	
	AREA    BootInit, CODE, READONLY
	CODE32
	INCLUDE bootloader_arm.i
	IMPORT |Image$$RO$$Base|
	IMPORT |Image$$RO$$Limit|
	EXPORT __start		; export entry point to the linker
	; The code starts here 
__start
	; This is the location of the required interrupt
	; vectors that are used by the arm core to handle
	; system faults.
	;		
	B   resetHandler	; run out of the ROM Physical location   ;
	B   undefHandler	; 0x04 - undefined instruction           
	B   swiHandler		; 0x08 - software interrupt              
	B   prefetchHandler	; 0x0C - prefetch abort                  
	B   abortHandler	; 0x10 - data abort                      
	NOP                     ; reserved vector                        
        LDR pc, [pc, #-0xFF0]   ; 0x18 instruction to invoke VIC for IRQ 
fiqHandler	
undefHandler
swiHandler
prefetchHandler
abortHandler
	; All exceptions are handled by a default handler for now. The user
	; or operating system can add functionality at run time if they wish.
	; Note: To install handlers at a later time requires that the system 
	; have volatile memory mapped to 0. This can be accomplished via the 
	; remap register.
	 
	B   faultHandler

resetHandler	
	; This section set up the system clocks to 50Mhz for the default
	 
	MOV	r0, #RCPC_SYSCLK_PRESCALE_DEFAULT
	LDR	r1, =RCPC_REG_BASE
	STR	r0, [r1,#RCPC_SYSCLK_PRESCALE_OFFSET]

	; This section inits all of the stacks for the different modes
	; that the arm core can run in (IRQ, SVC mode etc ...)
	; Note: All of individual mode stacks point to the same location
	; in TCM memory. This was done for simplicity since there is no
	; exception handler installed, this can be done by the user or an
	; operating system at run time. The fault handler basically sets up
	; the timer and goes back to blinking the led in the at the idle
	; loop. If the user breaks in with debugger after an exception they
	; can look at the lrm and sp to determine which execption took place,
	; and where the stack pointer was when the fault happened.
	 
modeInit
	; All interrupts disabled at core 	
	MOV	r1, #I_MASK
	ADD     r1, r1, #F_MASK	

	; Enter IRQ mode and setup the IRQ stack pointer 
	ORR	r0, r1, #MODE_IRQ	
	MSR	cpsr_cxsf, r0
	LDR	r13, =EXCEPTION_STACK
	
	; Enter FIQ mode and setup the FIQ stack pointer 
	ORR	r0, r1, #MODE_FIQ 	
 	MSR	cpsr_cxsf, r0
	LDR	r13, =EXCEPTION_STACK
	
	; Enter Abort mode and setup the Abort stack pointer 
	ORR	r0, r1, #MODE_ABORT	
	MSR	cpsr_cxsf, r0
	LDR	r13, =EXCEPTION_STACK
	
	; Enter Undefined mode and setup the Undefined stack pointer 
	ORR	r0, r1, #MODE_UNDEF	
	MSR	cpsr_cxsf, r0
	LDR	r13, =EXCEPTION_STACK

	; Enter System mode and setup the User/System stack pointer 
	ORR	r0, r1, #MODE_SYSTEM	
	MSR	cpsr_cxsf, r0
	LDR	r13, =EXCEPTION_STACK

	; Enter SVC mode and setup the SVC stack pointer 
	ORR	r0, r1, #MODE_SVC		
	MSR	cpsr_cxsf, r0
	LDR	r13,=EXCEPTION_STACK

	; We are now running in service mode and it is time to set up 
	; external memory and chip selects
	 
memoryInit
	; Set up the external bus interface  
	LDR	r0, =EBI_MUX_BASE		; base address of ebi			
	LDR	r1, =EBI_PIN_CONFIG		; config for 3 CS's etc 		
	STR	r1, [r0, #0]			; mem[0xFFFE5000] <- data[0x00005B3F]  

	; Set up chip selects 
	LDR	r0, =SMC_REG_BASE		; base address of SMC		       

	; Setup Flash BCR0 on CS0 
	LDR	r1, =SMC_BCR0_INIT		; register setting for Flash          
	STR	r1, [r0, #SMC_BCR0_OFFSET]	; mem[0xFFFF1000] <- data[0x1C001481] 

	; Setup SRAM BCR1 on CS1 
	LDR	r1, =SMC_BCR1_INIT		; register setting for Sram           
	STR	r1, [r0, #SMC_BCR1_OFFSET]	; mem[0xFFFF1004] <- data[0x10000000] 

	; Setup AHB periferals BCR2 on CS2 
	LDR	r1, =SMC_BCR2_INIT		; register settings                   
	STR	r1, [r0, #SMC_BCR2_OFFSET]	; mem[0xFFFF1008] <- data[0x10000C21] 

bootcodeCopy	
	; Now that the memory controller is set up we want to make a copy
	; of this boot code in internal ram. We are doing this so we can
	; use the remap register to remap flash to 0x60000000, and internal
	; sram to 0. This allows the c applications to install interrupt
	; vectors at 0. So after we remap the memory space we better have
	; a shadow copy of this boot code at 0 or we are going to go off
	; into the weeds.
	LDR	r0, =|Image$$RO$$Base|
	LDR	r1, =INTERNAL_SRAM_BASE		; destination 
	LDR	r2, =|Image$$RO$$Limit|		; end
codeCopy	
	LDR	r3, [r0]			; move the opcode from rom           
	STR	r3, [r1]			; move the opcode to internal memory 
	CMP	r0, r2           
	BEQ	switchCheck			; are we done the copy yet	      
	ADD	r0, r0, #4			; increment source pointer           
	ADD	r1, r1, #4		        ; increment destination pointer      
	B	codeCopy

switchCheck
	; Now we are going to check the switch on the user board to determone
	; if we are going to execute a user application or go to the idle loop
	; where we sit a blink the green led.
	; Switch Mappings:
	; 1 - ON - copy code from sector 0x02 to 0x44000000
	; 2 - ON - copy code from sector 0x01 to 0x44000000
	 
	LDR	r0, =DIP_SWITCH_ADRS	; set up the switch base address 
	LDRB	r1, [r0, #0]		; get the switch current setting 

	; Run the Angel application 
	MOV	r2, #ANGEL_DEMO
	LDR	r0, =ANGEL_APP_BASE
	LDR	r3, =ANGEL_APP_SIZE
	MOV	r4, #0x01	
	LDR	r5,	=ANGEL_ENTRY
	CMP	r1, r2
	BEQ	appLoadInit

	; Run the User demo application 
	MOV	r2, #USER_DEMO
	LDR	r0, =USER_APP_BASE
	LDR	r3, =USER_APP_SIZE
	MOV	r4, #0x01	
	LDR	r5,	=USER_ENTRY
	CMP	 r1, r2
	BEQ	appLoadInit
	MOV	r4, #0
	B	memoryRemap	
	
appLoadInit
	MOV	r1, r5			; destination in Sram           
	MOV	r2, r3			; Max number of bytes per demo  
	ADD	r2, r2, r0              ; The end address of the demo   

appLoad
	LDR	r3, [r0]		; move the opcode from rom           
	STR	r3, [r1]		; move the opcode to external memory 
	CMP	r0, r2           
	BEQ	memoryRemap		; are we done the copy yet	      
	ADD	r0, r0, #4		; increment source pointer           
	ADD	r1, r1, #4		; increment destination pointer      
	B	appLoad
	
memoryRemap	
	; We are now remapping the memory chip selects so that it will look
	; like the memory for flash has been mapped to 0x04000000 and internal
	; sram is mapped to 0.
	 
	LDR	r0, =RCPC_REG_BASE	
	MOV	r1, #RCPC_REMAP_INTERNAL_RAM
	STR	r1, [r0, #RCPC_REMAP_OFFSET] ; mem[0xFFFF1008] <- data[0x00000002] 
			
	; Now lets set up the c stack and put the current mode stack 
	; (service mode) at the top of external SRAM. The c startup code should 
	; take care of this but ya never know, and besides it won't hurt.
	 
	LDR	r13,=C_STACK

demoExecute	
	; Now that we are ready to go to the idle loop, lets see if the
	; user dip switch has been set to user demo mode.
	; Note: The switch state of 1 means that we should execute from
	; 0x44000000. This value was saved in r4
	 
	MOV	r0, #1
	CMP	r0, r4
	BNE	idleLoopStart
	MOV	pc, r5 

idleLoopStart	
	; The rest of the code sets up a timer compare register and spins on
	; the counter until it gets a compare match. Once the compare match is
	; determined the green led on the board is toggled between the on/off
	; state.
	 
timerInit		
	; set up Port D Bit 1 as an output 
	MOV	r0, #GPIO_D1			; keep the GPIO base address in r3 
	LDR	r3, =GPIO_REG_BASE		
	STR	r0, [r3,#GPIO_PDDDR_OFFSET]

	; Configure Timer 0 to be clocked as slowly as possible 
	LDR	r1, =TIMER0_REG_BASE		; keep the base address of TIMER0 in r1  
	MOV	r0, #TIMER0_CTRL_INIT	
	STR	r0, [r1, #TIMER0_CTRL_REG_OFFSET]
	MOV	r2,#TIMER0_STATUS_CMP1    

ledToggle	
        LDR     r0,[r3,#GPIO_PDDR_OFFSET]
        EOR     r0,r0,#GPIO_D1
	STR     r0,[r3,#GPIO_PDDR_OFFSET]

	; wait for TIMER0 compare match 
idleLoop	
	LDR     r0,[r1,#TIMER0_STATUS_REG_OFFSET]
	TST     r0,r2
	beq     idleLoop		

	; At compare match clear the count 
	LDR     r0,[r1,#TIMER0_CTRL_REG_OFFSET]
	ORR     r0,r0,#TIMER0_CTRL_COUNT_CLEAR
	STR     r0,[r1,#TIMER0_CTRL_REG_OFFSET]

	; now that there is no compare match, clear the compare match status 
	STR     r2,[r1,#TIMER0_STATUS_REG_OFFSET]
	B	ledToggle

faultHandler	
	B       timerInit           ; spin
	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选视频在线| 中文字幕欧美国产| 在线观看日韩av先锋影音电影院| 国模大尺度一区二区三区| 日韩精品免费视频人成| 日韩制服丝袜先锋影音| 日韩激情视频网站| 美女一区二区三区| 韩国女主播一区| 国产在线国偷精品产拍免费yy| 美国三级日本三级久久99 | 国产高清亚洲一区| 国产一区二区三区在线观看免费视频 | 日韩一区二区三区四区| 欧美一区二区久久| 精品美女一区二区| 国产精品免费aⅴ片在线观看| 国产精品久久三区| 亚洲国产美女搞黄色| 日本少妇一区二区| 国产丶欧美丶日本不卡视频| av在线不卡电影| 欧美影视一区二区三区| 欧美一区二区观看视频| 久久一留热品黄| 最新中文字幕一区二区三区| 亚洲超丰满肉感bbw| 国产一区 二区| 99国产精品久久久久久久久久| 欧美自拍丝袜亚洲| 精品国产亚洲在线| 亚洲婷婷综合色高清在线| 五月天欧美精品| 国产精品一色哟哟哟| 91麻豆国产在线观看| 日韩欧美资源站| 中文字幕中文字幕在线一区| 亚洲国产日韩综合久久精品| 精彩视频一区二区| 色综合久久九月婷婷色综合| 在线播放91灌醉迷j高跟美女| 26uuu精品一区二区| 一区二区三区日本| 国产乱子伦视频一区二区三区| 精品婷婷伊人一区三区三| 国产三区在线成人av| 午夜欧美2019年伦理| 福利一区在线观看| 日韩三级伦理片妻子的秘密按摩| 亚洲男人的天堂网| 国产一区二区中文字幕| 91麻豆精品国产综合久久久久久| 国产精品乱人伦| 国产在线国偷精品免费看| 欧美群妇大交群的观看方式| 中文字幕一区二区三区蜜月| 精品写真视频在线观看| 欧美久久一二三四区| 亚洲人成网站在线| 99久久99久久综合| 国产亚洲成av人在线观看导航 | 激情五月播播久久久精品| 精品视频一区 二区 三区| 国产精品国产三级国产三级人妇| 久久不见久久见免费视频7| 在线视频国内自拍亚洲视频| 亚洲欧洲无码一区二区三区| 国产精品亚洲午夜一区二区三区 | 亚洲香肠在线观看| 91美女视频网站| 日本一区二区久久| 成人免费的视频| 欧美国产精品v| 99视频精品全部免费在线| 中文字幕第一区第二区| 成人精品小蝌蚪| 亚洲欧洲av在线| 91在线视频播放地址| 最新不卡av在线| 91网址在线看| 亚洲自拍另类综合| 欧美体内she精高潮| 午夜久久久久久电影| 欧美精品在线一区二区三区| 三级久久三级久久| 日韩视频免费观看高清完整版| 日韩高清一级片| 精品久久人人做人人爰| 国产精品资源在线观看| 亚洲国产精品ⅴa在线观看| 91老师国产黑色丝袜在线| 亚洲一区二区三区四区中文字幕| 欧美视频在线一区| 日本aⅴ精品一区二区三区| 日韩欧美国产麻豆| 波多野结衣欧美| 亚洲永久精品大片| 日韩欧美一级二级三级久久久| 久久丁香综合五月国产三级网站| 久久综合九色综合久久久精品综合| 国产**成人网毛片九色| 亚洲尤物在线视频观看| 欧美精品一区二区三区蜜桃视频 | 成人美女视频在线观看| 综合电影一区二区三区| 欧美猛男超大videosgay| 成人欧美一区二区三区| 国产精品美日韩| 久久亚洲精华国产精华液| 日韩精品欧美成人高清一区二区| 亚洲精品五月天| 久久99精品国产| 亚洲一区二区三区三| 一级精品视频在线观看宜春院| 国产亚洲美州欧州综合国| 国产亚洲欧洲一区高清在线观看| 精品欧美久久久| 日韩精品一区二| 精品美女在线观看| 久久久久久97三级| 国产欧美一区二区精品仙草咪| 久久九九久久九九| 亚洲欧洲精品成人久久奇米网| 中文字幕视频一区| 亚洲综合自拍偷拍| 视频一区中文字幕国产| 麻豆freexxxx性91精品| 国产一区二区三区av电影| 成人免费视频网站在线观看| www.久久久久久久久| 色综合久久99| 欧美精品自拍偷拍动漫精品| 欧美一区二区久久久| 国产亚洲一区二区在线观看| 国产精品久久久久7777按摩| 一区二区三区成人在线视频| 日韩国产欧美在线视频| 久久99精品久久久久久国产越南 | 2019国产精品| 欧美激情一区二区三区在线| 亚洲精品中文字幕乱码三区| 亚洲国产精品一区二区www在线| 日韩电影免费在线观看网站| 久久精品国产精品亚洲精品| av在线不卡免费看| 91精品国产一区二区三区| 国产午夜精品美女毛片视频| 亚洲与欧洲av电影| 国产精品一卡二卡| 欧美无乱码久久久免费午夜一区| 欧美精品一区二区三区在线播放| 中文字幕综合网| 日av在线不卡| 99视频精品在线| 欧美精品一区二区不卡| 亚洲欧美日本在线| 久久成人羞羞网站| 在线观看日韩精品| 国产精品素人视频| 日本va欧美va瓶| 91福利在线看| 国产精品进线69影院| 麻豆国产欧美日韩综合精品二区| 北条麻妃国产九九精品视频| 日韩一级片网站| 亚洲综合成人网| 成人高清视频免费观看| 日韩一区二区三区在线| 夜夜爽夜夜爽精品视频| 国产成人综合亚洲91猫咪| 欧美精品自拍偷拍动漫精品| 亚洲欧洲美洲综合色网| 国产麻豆日韩欧美久久| 日韩一区二区免费高清| 一区二区三区在线观看欧美| 国产一区二区视频在线| 91精品国产欧美日韩| 亚洲精品视频在线| 国产不卡视频在线观看| 日韩欧美黄色影院| 亚洲成人你懂的| 欧美在线视频不卡| 亚洲免费高清视频在线| 国产宾馆实践打屁股91| 精品久久人人做人人爱| 六月婷婷色综合| 欧美老女人在线| 亚洲成人一区二区| 欧美喷水一区二区| 一区二区激情小说| 色欧美乱欧美15图片| 国产精品免费视频观看| 不卡在线观看av| 亚洲欧洲日韩在线| 91丨porny丨户外露出| 中文字幕制服丝袜成人av| 国产成人综合亚洲网站| 亚洲国产成人私人影院tom| 国产成人8x视频一区二区| 国产欧美日韩在线|