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

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

?? entry-armv.s

?? ARM 嵌入式 系統(tǒng) 設計與實例開發(fā) 實驗教材 二源碼
?? S
?? 第 1 頁 / 共 3 頁
字號:
		mrs	r9, cpsr			@ Enable interrupts if they were		tst	r3, #I_BIT		biceq	r9, r9, #I_BIT			@ previously		msr	cpsr_c, r9		mov	r0, r2				@ address (pc)		mov	r1, sp				@ regs		bl	SYMBOL_NAME(do_PrefetchAbort)	@ call abort handler		mov	r0, #I_BIT | MODE_SVC		msr	cpsr_c, r0		ldr	r0, [sp, #S_PSR]		msr	spsr, r0		ldmia	sp, {r0 - pc}^			@ load r0 - pc, cpsr		.align	5.LCirq:		.word	__temp_irq.LCund:		.word	__temp_und.LCabt:		.word	__temp_abt#ifdef MULTI_CPU.LCprocfns:	.word	SYMBOL_NAME(processor)#endif.LCfp:		.word	SYMBOL_NAME(fp_enter)		irq_prio_table/* * User mode handlers */		.align	5__dabt_usr:	sub	sp, sp, #S_FRAME_SIZE		@ Allocate frame size in one go		stmia	sp, {r0 - r12}			@ save r0 - r12		ldr	r7, .LCabt		add	r5, sp, #S_PC		ldmia	r7, {r2 - r4}			@ Get USR pc, cpsr		stmia	r5, {r2 - r4}			@ Save USR pc, cpsr, old_r0		stmdb	r5, {sp, lr}^		alignment_trap r7, r7, __temp_abt		zero_fp		mov	r0, r2				@ remove once everyones in sync#ifdef MULTI_CPU		ldr	r4, .LCprocfns			@ pass r0, r3 to		mov	lr, pc				@ processor code		ldr	pc, [r4]			@ call processor specific code#else		bl	cpu_data_abort#endif		mov	r2, #MODE_SVC		msr	cpsr_c, r2			@ Enable interrupts		mov	r2, sp		adrsvc	al, lr, ret_from_exception		b	SYMBOL_NAME(do_DataAbort)		.align	5__irq_usr:	sub	sp, sp, #S_FRAME_SIZE		stmia	sp, {r0 - r12}			@ save r0 - r12		ldr	r4, .LCirq		add	r8, sp, #S_PC		ldmia	r4, {r5 - r7}			@ get saved PC, SPSR		stmia	r8, {r5 - r7}			@ save pc, psr, old_r0		stmdb	r8, {sp, lr}^		alignment_trap r4, r7, __temp_irq		zero_fp1:		get_irqnr_and_base r0, r6, r5, lr		movne	r1, sp		adrsvc	ne, lr, 1b		@		@ routine called with r0 = irq number, r1 = struct pt_regs *		@		bne	do_IRQ		mov	why, #0		get_current_task tsk		b	ret_to_user		.align	5__und_usr:	sub	sp, sp, #S_FRAME_SIZE		@ Allocate frame size in one go		stmia	sp, {r0 - r12}			@ Save r0 - r12		ldr	r4, .LCund		add	r8, sp, #S_PC		ldmia	r4, {r5 - r7}		stmia	r8, {r5 - r7}			@ Save USR pc, cpsr, old_r0		stmdb	r8, {sp, lr}^			@ Save user sp, lr		alignment_trap r4, r7, __temp_und		zero_fp		adrsvc	al, r9, ret_from_exception	@ r9  = normal FP return		adrsvc	al, lr, fpundefinstr		@ lr  = undefined instr returncall_fpe:	get_current_task r10		mov	r8, #1		strb	r8, [r10, #TSK_USED_MATH]	@ set current->used_math		ldr	r4, .LCfp		add	r10, r10, #TSS_FPESAVE		@ r10 = workspace		ldr	pc, [r4]			@ Call FP module USR entry pointfpundefinstr:	mov	r0, #MODE_SVC		msr	cpsr_c, r0			@ Enable interrupts		mov	r0, lr		mov	r1, sp		adrsvc	al, lr, ret_from_exception		b	SYMBOL_NAME(do_undefinstr)		.align	5__pabt_usr:	sub	sp, sp, #S_FRAME_SIZE		@ Allocate frame size in one go		stmia	sp, {r0 - r12}			@ Save r0 - r12		ldr	r4, .LCabt		add	r8, sp, #S_PC		ldmia	r4, {r5 - r7}			@ Get USR pc, cpsr		stmia	r8, {r5 - r7}			@ Save USR pc, cpsr, old_r0		stmdb	r8, {sp, lr}^			@ Save sp_usr lr_usr		alignment_trap r4, r7, __temp_abt		zero_fp		mov	r0, #MODE_SVC		msr	cpsr_c, r0			@ Enable interrupts		mov	r0, r5				@ address (pc)		mov	r1, sp				@ regs		bl	SYMBOL_NAME(do_PrefetchAbort)	@ call abort handler		/* fall through *//* * This is the return code to user mode for abort handlers */ENTRY(ret_from_exception)		get_current_task tsk		mov	why, #0		b	ret_to_user		.dataENTRY(fp_enter)		.word	fpe_not_present		.text/* * Register switch for ARMv3 and ARMv4 processors * r0 = previous, r1 = next, return previous. * previous and next are guaranteed not to be the same. */ENTRY(__switch_to)		stmfd	sp!, {r4 - sl, fp, lr}		@ Store most regs on stack		mrs	ip, cpsr		str	ip, [sp, #-4]!			@ Save cpsr_SVC#ifdef CONFIG_CPU_XSCALE		mra	r4, r5, acc0		stmfd	sp!, {r4, r5}#endif		str	sp, [r0, #TSS_SAVE]		@ Save sp_SVC		ldr	sp, [r1, #TSS_SAVE]		@ Get saved sp_SVC		ldr	r2, [r1, #TSS_DOMAIN]#ifdef CONFIG_CPU_XSCALE		ldmfd	sp!, {r4, r5}		mar	acc0, r4, r5#endif		ldr	ip, [sp], #4		mcr	p15, 0, r2, c3, c0		@ Set domain register		msr	spsr, ip			@ Save tasks CPSR into SPSR for this return		ldmfd	sp!, {r4 - sl, fp, pc}^		@ Load all regs saved previously		.section ".text.init",#alloc,#execinstr/* * Vector stubs.  NOTE that we only align 'vector_IRQ' to a cache line boundary, * and we rely on each stub being exactly 48 (1.5 cache lines) in size.  This * means that we only ever load two cache lines for this code, or one if we're * lucky.  We also copy this code to 0x200 so that we can use branches in the * vectors, rather than ldr's. */		.align	5__stubs_start:/* * Interrupt dispatcher * Enter in IRQ mode, spsr = SVC/USR CPSR, lr = SVC/USR PC */vector_IRQ:	@		@ save mode specific registers		@		ldr	r13, .LCsirq		sub	lr, lr, #4		str	lr, [r13]			@ save lr_IRQ		mrs	lr, spsr		str	lr, [r13, #4]			@ save spsr_IRQ		@		@ now branch to the relevent MODE handling routine		@		mov	r13, #I_BIT | MODE_SVC		msr	spsr_c, r13			@ switch to SVC_32 mode		and	lr, lr, #15		ldr	lr, [pc, lr, lsl #2]		movs	pc, lr				@ Changes mode and branches.LCtab_irq:	.word	__irq_usr			@  0  (USR_26 / USR_32)		.word	__irq_invalid			@  1  (FIQ_26 / FIQ_32)		.word	__irq_invalid			@  2  (IRQ_26 / IRQ_32)		.word	__irq_svc			@  3  (SVC_26 / SVC_32)		.word	__irq_invalid			@  4		.word	__irq_invalid			@  5		.word	__irq_invalid			@  6		.word	__irq_invalid			@  7		.word	__irq_invalid			@  8		.word	__irq_invalid			@  9		.word	__irq_invalid			@  a		.word	__irq_invalid			@  b		.word	__irq_invalid			@  c		.word	__irq_invalid			@  d		.word	__irq_invalid			@  e		.word	__irq_invalid			@  f		.align	5/* * Data abort dispatcher - dispatches it to the correct handler for the processor mode * Enter in ABT mode, spsr = USR CPSR, lr = USR PC */vector_data:	@		@ save mode specific registers		@		ldr	r13, .LCsabt		sub	lr, lr, #8		str	lr, [r13]		mrs	lr, spsr		str	lr, [r13, #4]		@		@ now branch to the relevent MODE handling routine		@		mov	r13, #I_BIT | MODE_SVC		msr	spsr_c, r13			@ switch to SVC_32 mode		and	lr, lr, #15		ldr	lr, [pc, lr, lsl #2]		movs	pc, lr				@ Changes mode and branches.LCtab_dabt:	.word	__dabt_usr			@  0  (USR_26 / USR_32)		.word	__dabt_invalid			@  1  (FIQ_26 / FIQ_32)		.word	__dabt_invalid			@  2  (IRQ_26 / IRQ_32)		.word	__dabt_svc			@  3  (SVC_26 / SVC_32)		.word	__dabt_invalid			@  4		.word	__dabt_invalid			@  5		.word	__dabt_invalid			@  6		.word	__dabt_invalid			@  7		.word	__dabt_invalid			@  8		.word	__dabt_invalid			@  9		.word	__dabt_invalid			@  a		.word	__dabt_invalid			@  b		.word	__dabt_invalid			@  c		.word	__dabt_invalid			@  d		.word	__dabt_invalid			@  e		.word	__dabt_invalid			@  f		.align	5/* * Prefetch abort dispatcher - dispatches it to the correct handler for the processor mode * Enter in ABT mode, spsr = USR CPSR, lr = USR PC */vector_prefetch:		@		@ save mode specific registers		@		ldr	r13, .LCsabt		sub	lr, lr, #4		str	lr, [r13]			@ save lr_ABT		mrs	lr, spsr		str	lr, [r13, #4]			@ save spsr_ABT		@		@ now branch to the relevent MODE handling routine		@		mov	r13, #I_BIT | MODE_SVC		msr	spsr_c, r13			@ switch to SVC_32 mode		ands	lr, lr, #15		ldr	lr, [pc, lr, lsl #2]		movs	pc, lr.LCtab_pabt:	.word	__pabt_usr			@  0 (USR_26 / USR_32)		.word	__pabt_invalid			@  1 (FIQ_26 / FIQ_32)		.word	__pabt_invalid			@  2 (IRQ_26 / IRQ_32)		.word	__pabt_svc			@  3 (SVC_26 / SVC_32)		.word	__pabt_invalid			@  4		.word	__pabt_invalid			@  5		.word	__pabt_invalid			@  6		.word	__pabt_invalid			@  7		.word	__pabt_invalid			@  8		.word	__pabt_invalid			@  9		.word	__pabt_invalid			@  a		.word	__pabt_invalid			@  b		.word	__pabt_invalid			@  c		.word	__pabt_invalid			@  d		.word	__pabt_invalid			@  e		.word	__pabt_invalid			@  f		.align	5/* * Undef instr entry dispatcher - dispatches it to the correct handler for the processor mode * Enter in UND mode, spsr = SVC/USR CPSR, lr = SVC/USR PC */vector_undefinstr:		@		@ save mode specific registers		@		ldr	r13, .LCsund		str	lr, [r13]			@ save lr_UND		mrs	lr, spsr		str	lr, [r13, #4]			@ save spsr_UND		@		@ now branch to the relevent MODE handling routine		@		mov	r13, #I_BIT | MODE_SVC		msr	spsr_c, r13			@ switch to SVC_32 mode		and	lr, lr, #15		ldr	lr, [pc, lr, lsl #2]		movs	pc, lr				@ Changes mode and branches.LCtab_und:	.word	__und_usr			@  0 (USR_26 / USR_32)		.word	__und_invalid			@  1 (FIQ_26 / FIQ_32)		.word	__und_invalid			@  2 (IRQ_26 / IRQ_32)		.word	__und_svc			@  3 (SVC_26 / SVC_32)		.word	__und_invalid			@  4		.word	__und_invalid			@  5		.word	__und_invalid			@  6		.word	__und_invalid			@  7		.word	__und_invalid			@  8		.word	__und_invalid			@  9		.word	__und_invalid			@  a		.word	__und_invalid			@  b		.word	__und_invalid			@  c		.word	__und_invalid			@  d		.word	__und_invalid			@  e		.word	__und_invalid			@  f		.align	5/*============================================================================= * Undefined FIQs *----------------------------------------------------------------------------- * Enter in FIQ mode, spsr = ANY CPSR, lr = ANY PC * MUST PRESERVE SVC SPSR, but need to switch to SVC mode to show our msg. * Basically to switch modes, we *HAVE* to clobber one register...  brain * damage alert!  I don't think that we can execute any code in here in any * other mode than FIQ...  Ok you can switch to another mode, but you can't * get out of that mode without clobbering one register. */vector_FIQ:	disable_fiq		subs	pc, lr, #4/*============================================================================= * Address exception handler *----------------------------------------------------------------------------- * These aren't too critical. * (they're not supposed to happen, and won't happen in 32-bit data mode). */vector_addrexcptn:		b	vector_addrexcptn/* * We group all the following data together to optimise * for CPUs with separate I & D caches. */		.align	5.LCvswi:	.word	vector_swi.LCsirq:	.word	__temp_irq.LCsund:	.word	__temp_und.LCsabt:	.word	__temp_abt__stubs_end:		.equ	__real_stubs_start, .LCvectors + 0x200.LCvectors:	swi	SYS_ERROR0		b	__real_stubs_start + (vector_undefinstr - __stubs_start)		ldr	pc, __real_stubs_start + (.LCvswi - __stubs_start)		b	__real_stubs_start + (vector_prefetch - __stubs_start)		b	__real_stubs_start + (vector_data - __stubs_start)		b	__real_stubs_start + (vector_addrexcptn - __stubs_start)		b	__real_stubs_start + (vector_IRQ - __stubs_start)		b	__real_stubs_start + (vector_FIQ - __stubs_start)ENTRY(__trap_init)		stmfd	sp!, {r4 - r6, lr}		adr	r1, .LCvectors			@ set up the vectors		ldmia	r1, {r1, r2, r3, r4, r5, r6, ip, lr}		stmia	r0, {r1, r2, r3, r4, r5, r6, ip, lr}		add	r2, r0, #0x200		adr	r0, __stubs_start		@ copy stubs to 0x200		adr	r1, __stubs_end1:		ldr	r3, [r0], #4		str	r3, [r2], #4		cmp	r0, r1		blt	1b		LOADREGS(fd, sp!, {r4 - r6, pc})		.data/* * Do not reorder these, and do not insert extra data between... */__temp_irq:	.word	0				@ saved lr_irq		.word	0				@ saved spsr_irq		.word	-1				@ old_r0__temp_und:	.word	0				@ Saved lr_und		.word	0				@ Saved spsr_und		.word	-1				@ old_r0__temp_abt:	.word	0				@ Saved lr_abt		.word	0				@ Saved spsr_abt		.word	-1				@ old_r0		.globl	SYMBOL_NAME(cr_alignment)		.globl	SYMBOL_NAME(cr_no_alignment)SYMBOL_NAME(cr_alignment):		.space	4SYMBOL_NAME(cr_no_alignment):		.space	4

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www激情久久| 亚洲最新视频在线播放| 国产精品福利在线播放| 亚洲免费在线观看| 国产一区二区在线电影| 在线欧美小视频| 欧美国产97人人爽人人喊| 奇米一区二区三区| 色屁屁一区二区| 国产情人综合久久777777| 蜜桃av一区二区| 欧美日韩免费高清一区色橹橹| 亚洲国产电影在线观看| 蜜桃精品在线观看| 欧美乱妇15p| 亚洲一卡二卡三卡四卡无卡久久| 成人高清视频在线| 国产日韩精品一区| 久久99国产乱子伦精品免费| 欧美日韩国产美| 亚洲综合精品久久| 91激情在线视频| 中文字幕在线播放不卡一区| 国产成人免费视| 久久精品一区二区三区不卡 | 亚洲成人av一区二区三区| 本田岬高潮一区二区三区| 精品毛片乱码1区2区3区| 日韩精品电影在线| 91精品婷婷国产综合久久| 亚洲va天堂va国产va久| 欧美在线不卡视频| 亚洲成人在线观看视频| 在线看日本不卡| 亚洲午夜在线电影| 欧美日韩中字一区| 视频一区视频二区中文| 欧美日韩精品一二三区| 亚洲一区二区三区激情| 欧美色大人视频| 日韩中文欧美在线| 亚洲精品一区二区三区福利| 国产精品一线二线三线| 国产精品伦理在线| 91麻豆.com| 午夜激情综合网| 日韩精品在线网站| 国产99久久精品| 亚洲免费观看在线视频| 欧美日韩二区三区| 青青草国产精品亚洲专区无| 欧美精品一区二区三区在线| 国产成人免费9x9x人网站视频| 国产精品伦理一区二区| 在线免费一区三区| 精品伊人久久久久7777人| 久久久精品免费观看| 99综合电影在线视频| 亚洲国产成人porn| 欧美mv日韩mv| av在线这里只有精品| 亚洲一区二区三区四区在线免费观看| 欧美精品久久99久久在免费线 | 精品一区二区综合| 国产欧美视频一区二区| 99久久99久久久精品齐齐| 亚洲一区在线电影| 欧美精品一区二区在线播放| 91麻豆免费看| 久久99国内精品| 亚洲精品国产无天堂网2021| 欧美白人最猛性xxxxx69交| caoporn国产精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲男人电影天堂| 欧美电影免费观看高清完整版在| 国产成人午夜99999| 亚洲国产精品久久久久秋霞影院| 久久香蕉国产线看观看99| 色久综合一二码| 国产成人av网站| 午夜亚洲福利老司机| 国产欧美一区视频| 欧美一区二区三区四区五区| 91在线播放网址| 国产一区二区剧情av在线| 天天综合天天综合色| 中文字幕二三区不卡| 日韩精品资源二区在线| 色噜噜狠狠色综合中国| 欧美精品少妇一区二区三区| 99久久久久久| 成人免费视频一区| 美女免费视频一区二区| 亚洲成人资源在线| 亚洲女人的天堂| 国产精品美女一区二区在线观看| 日韩午夜在线观看视频| 欧美日韩国产免费一区二区| 91猫先生在线| 91香蕉视频黄| caoporn国产一区二区| 国产成人午夜高潮毛片| 国产伦精一区二区三区| 免费在线看成人av| 视频一区二区三区中文字幕| 一片黄亚洲嫩模| 亚洲激情图片qvod| 国产精品美女www爽爽爽| 国产三级一区二区| 久久九九久精品国产免费直播| 欧美成人vr18sexvr| 欧美一区二区三区在线电影| 91精品久久久久久久91蜜桃| 在线观看91精品国产麻豆| 欧美日韩一区二区三区在线| 欧美性xxxxxx少妇| 欧美午夜影院一区| 欧美日韩情趣电影| 欧美丰满美乳xxx高潮www| 91精品国产综合久久久久| 欧美一区二区私人影院日本| 日韩限制级电影在线观看| 日韩欧美在线1卡| 精品欧美一区二区在线观看| 欧美成人猛片aaaaaaa| 精品国产精品一区二区夜夜嗨| 精品国产乱码久久久久久浪潮 | 久久免费国产精品| 国产欧美精品区一区二区三区| 国产精品免费久久| 亚洲精品国产a| 亚洲18影院在线观看| 美女在线视频一区| 国产一区二区三区电影在线观看| 国产成人av影院| 色www精品视频在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 在线播放91灌醉迷j高跟美女 | 久久久www成人免费无遮挡大片| 欧美激情资源网| 亚洲老司机在线| 日韩二区三区四区| 国产成人h网站| 欧美在线免费播放| 亚洲精品一区二区在线观看| 日韩一区欧美一区| 日韩精品一区第一页| 国产 欧美在线| 欧美日韩精品一区二区在线播放| 精品国产露脸精彩对白| 亚洲精品视频在线观看免费| 日韩不卡在线观看日韩不卡视频| 丁香婷婷综合色啪| 欧美人xxxx| 国产精品久久久久三级| 亚洲一级二级三级| 国产ts人妖一区二区| 欧美美女黄视频| 亚洲国产精品ⅴa在线观看| 亚洲国产一区视频| 成人性视频免费网站| 91精品国产综合久久久久久| 中文字幕一区二区三区在线不卡 | 精品一区二区三区蜜桃| 99国产精品久久久久久久久久 | 亚洲午夜三级在线| 国产成人免费高清| 91精品国产综合久久久蜜臀粉嫩| 国产精品视频免费| 久久99久久精品| 欧美电影影音先锋| 亚洲精品高清在线| 成人午夜视频网站| 精品久久国产老人久久综合| 一区二区在线观看av| 成人精品在线视频观看| 精品久久免费看| 免费观看在线色综合| 欧美三级电影精品| 亚洲人成人一区二区在线观看 | 亚洲精品日韩一| 成人短视频下载| 国产欧美一区二区精品婷婷| 国内国产精品久久| 日韩写真欧美这视频| 视频一区二区欧美| 欧美美女视频在线观看| 亚洲韩国一区二区三区| 91久久免费观看| 亚洲男人的天堂av| 91免费观看国产| 亚洲视频一二区| 91蜜桃免费观看视频| 亚洲日本电影在线| 色欧美乱欧美15图片| 一区二区三区四区精品在线视频| 99久精品国产| 亚洲欧美色综合| 在线免费视频一区二区|