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

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

?? bootloader_gnu.s

?? Sharp LH75401(ARM7)處理器部分控制程序。
?? S
字號:
/*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 ; $Workfile:   bootloader_gnu.s  $ 
 ; $Revision:   0.00  $ 
 ; $Author:     AnvikE  $ 
 ; $Date:       Mar 06 2003   $ 
 ; 
 ; Project:     LH754XX
 ; 
 ; Description: 
 ;  This file is a implementation file for KEV754XX chip boot code.
 ; 
 ; 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. 
 ; 				
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/	
	.TEXT
	.CODE 32
	.INCLUDE "bootloader_gnu.h"
	.GLOBAL   __start	/* export entry point to the linker   */
	.EXTERN   __end		/* linker defined end of boot code    */
	/* 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		      */
	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 VIC 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 51.6MHz 
	 */
	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]		/* m[0xFFFE5000] <- d[0x5B3F] */

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

	/* Setup Flash BCR0 on CS0                                    */
	LDR	r1, =SMC_BCR0_INIT	   /* reg setting for Flash   */
	STR	r1, [r0, #SMC_BCR0_OFFSET] /* d[0x1C001481]           */ 

	/* Setup SRAM BCR1 on CS1                                     */
	LDR	r1, =SMC_BCR1_INIT	   /* reg setting for Sram    */
	STR	r1, [r0, #SMC_BCR1_OFFSET] /* d[0x10000000]           */

	/* Setup Memory mapped BCR2 on CS2                            */
	LDR	r1, =SMC_BCR2_INIT	   /* register settings       */
	STR	r1, [r0, #SMC_BCR2_OFFSET] /* d[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, =__start		/* source		      */
	LDR	r1, =INTERNAL_SRAM_BASE	/* destination                */
	LDR	r2, =__end		/* 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 
	 * determine 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 addr   */
	LDRB	r1, [r0, #0]	     /* get the switch cur 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 
	 * 0x40000000 and internal sram is mapped to 0.
	 */
	LDR	r0, =RCPC_REG_BASE	
	MOV	r1, #RCPC_REMAP_INTERNAL_RAM
	STR	r1, [r0, #RCPC_REMAP_OFFSET] /* d[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		/* 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	/* base addr 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一区二区三区免费野_久草精品视频
亚洲青青青在线视频| 麻豆视频观看网址久久| 精品福利在线导航| 5566中文字幕一区二区电影| 欧美亚洲尤物久久| 色婷婷综合激情| 色先锋久久av资源部| 91成人在线观看喷潮| 欧美喷水一区二区| 一个色综合av| 国产精品第13页| 国产最新精品精品你懂的| 欧美日韩另类国产亚洲欧美一级| 色老汉一区二区三区| 欧美影视一区二区三区| 4438x成人网最大色成网站| 在线成人午夜影院| 日韩视频一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 国产在线精品免费av| 韩国av一区二区| 99精品国产视频| 欧美成人一区二区三区 | 青青草原综合久久大伊人精品优势| 亚洲一区二区三区在线看| 午夜伦欧美伦电影理论片| 日本三级亚洲精品| 国产成人综合在线| 欧美影视一区在线| 国产亚洲人成网站| 亚洲自拍偷拍欧美| 国产激情视频一区二区在线观看| 色综合一区二区三区| 欧美精品在线观看播放| 国产日韩欧美a| 亚洲高清免费视频| 精品一区二区三区蜜桃| 一本到不卡免费一区二区| 欧美一区二区三区色| 国产偷国产偷精品高清尤物| 一区二区三区不卡视频在线观看| 蓝色福利精品导航| 欧洲色大大久久| 精品国产免费视频| 亚洲国产精品久久久男人的天堂| 精品无人码麻豆乱码1区2区 | 亚洲精品一二三四区| 激情图片小说一区| 日韩区在线观看| 4438x成人网最大色成网站| 秋霞av亚洲一区二区三| 99久久久国产精品免费蜜臀| 亚洲国产毛片aaaaa无费看| 国产精品一区在线观看你懂的| 欧美亚洲一区二区三区四区| 中文字幕精品在线不卡| 色香蕉久久蜜桃| 欧美一区二区三区视频在线| 国产精品青草综合久久久久99| 日产国产欧美视频一区精品| 色爱区综合激月婷婷| 国产精品第五页| 成人av影视在线观看| 久久久www免费人成精品| 三级精品在线观看| 91精品国产综合久久香蕉的特点| 亚洲欧美日韩人成在线播放| 风间由美中文字幕在线看视频国产欧美| 91精品国产综合久久久久久久| 亚洲精品中文字幕乱码三区| 91视频免费看| 一本色道a无线码一区v| 秋霞午夜av一区二区三区| 国产成人精品影视| 国内精品久久久久影院色 | 国产成人一级电影| 精品久久一二三区| 狠狠色狠狠色合久久伊人| 欧美xxxx老人做受| 丝瓜av网站精品一区二区| 色综合久久久久综合体桃花网| 自拍偷拍欧美激情| 在线视频亚洲一区| 亚洲国产视频网站| 欧美色涩在线第一页| 亚洲第一搞黄网站| 日韩亚洲国产中文字幕欧美| 精品亚洲国产成人av制服丝袜| 欧美成人精精品一区二区频| 日韩av电影免费观看高清完整版在线观看| 亚洲免费av高清| 777午夜精品视频在线播放| 久久久久久免费| www.日韩精品| 午夜精品在线视频一区| 欧美一区二区视频网站| 国产.精品.日韩.另类.中文.在线.播放| 久久久久久久综合| 91视频.com| 午夜久久电影网| 久久久久久久久久久电影| 99国产精品久久久久久久久久| 亚洲综合免费观看高清完整版在线 | 尤物av一区二区| 欧美精品日韩一区| 国产尤物一区二区| 国产精品久久久久久久久搜平片 | 精品久久一区二区三区| 国产成人精品一区二| 一区二区三区在线视频观看| 欧美一区二区三区视频在线 | 《视频一区视频二区| 在线看一区二区| 激情综合五月天| ㊣最新国产の精品bt伙计久久| 91麻豆精品91久久久久久清纯| 国产精品自在在线| 亚洲国产精品一区二区www在线| 日韩免费看的电影| 在线观看一区不卡| 国产成人在线视频免费播放| 亚洲无人区一区| 国产精品天美传媒| 欧美一级二级在线观看| 一本色道a无线码一区v| 久久精品国产99国产精品| 精品久久久久久久一区二区蜜臀| 国产一区二区毛片| 最新久久zyz资源站| 欧美成人精品高清在线播放 | 久久se这里有精品| 一区二区三区四区高清精品免费观看 | 亚洲第一成年网| 亚洲欧美一区二区三区国产精品| 精品国产99国产精品| 884aa四虎影成人精品一区| 一本色道**综合亚洲精品蜜桃冫| 成人深夜福利app| 国产在线一区二区综合免费视频| 首页国产丝袜综合| 亚洲黄色av一区| 亚洲乱码国产乱码精品精的特点| www国产精品av| 欧美电影免费提供在线观看| 国产精品不卡在线观看| 久久久精品综合| 精品盗摄一区二区三区| 91精品婷婷国产综合久久性色 | 亚洲欧洲在线观看av| 久久久美女艺术照精彩视频福利播放| 欧美一二三四区在线| 91精品啪在线观看国产60岁| 91国在线观看| 欧美性色黄大片| 欧美日韩精品二区第二页| 色94色欧美sute亚洲线路一久| 99热99精品| 日本麻豆一区二区三区视频| 国产91在线观看丝袜| 欧美精品一区二区在线播放| 裸体在线国模精品偷拍| 在线不卡的av| 日本sm残虐另类| 日韩三级视频中文字幕| 热久久久久久久| 91精品国产入口在线| 婷婷六月综合亚洲| 久久99精品网久久| 亚洲一区二区三区四区不卡| 国产成人精品影视| 亚洲私人黄色宅男| www.亚洲色图.com| 日韩一区日韩二区| 99久久精品国产麻豆演员表| 日韩av网站在线观看| 日韩和欧美一区二区| 国内精品视频666| 色婷婷久久99综合精品jk白丝| 欧美精品v国产精品v日韩精品| 欧美精品一区二区三| 亚洲国产成人一区二区三区| 亚洲一区二区三区影院| 久久国产精品99精品国产| gogogo免费视频观看亚洲一| 欧美日韩日日摸| 久久影院午夜论| 亚洲国产日韩一区二区| 蜜桃视频一区二区三区| 成人毛片老司机大片| 欧美撒尿777hd撒尿| 精品久久久久一区| 亚洲一区二区三区影院| 国产一区在线观看麻豆| 欧美亚洲综合久久| 色噜噜狠狠色综合中国| 欧美亚洲国产一区在线观看网站| 亚洲r级在线视频| 一区二区三区免费| 国内精品免费**视频| 91黄视频在线观看|