⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pacfiq.s

📁 Hyper Operating System。基于ITRON接口的实时操作系统。主页: https://sourceforge.jp/projects/hos
💻 S
字号:
/* ------------------------------------------------------------------------ *//*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  *//*    プロセッサ藐据步コンポ〖ネント (ARM gcc脱)                            *//*    FIQ毋嘲ハンドラ                                                       *//*                                                                          *//*                                  Copyright (C) 1998-2002 by Project HOS  *//*                                  http://sourceforge.jp/projects/hos/     *//* ------------------------------------------------------------------------ */#include "pacarm.inc"				.text				.align	4				.global	_HOS_FiqHandler/************************************************  FIQ ハンドラ*************************************************/				.extern	hos_arm_sta_fiq				/* FIQの介袋步借妄 */				.extern	hos_arm_end_fiq				/* FIQの姜位借妄 */				.extern	kernel_sta_int				/* 充り哈み倡幌借妄 */				.extern	kernel_end_int				/* 充り哈み姜位借妄 */				.extern	kernel_exe_int				/* 充り哈み借妄の悸乖 */				.extern	kernel_int_sp				/* 充り哈み脱スタックアドレス */				.extern	kernel_int_cnt				/* 充り哈みネスト搀眶 */				.extern	kernel_int_ssp				/* 充り哈み箕スタック锣闰 */				_HOS_FiqHandler:				sub		lr, lr, #4					/* リタ〖ンアドレス换叫 */						/* Systemモ〖ドに败乖してレジスタ锣闰 */				mov		r13, #(I_Bit | F_Bit | Mode_SYS)				msr		cpsr_csxf, r13				stmfd	sp!, {r1-r3, ip, lr}		/* 绕脱レジスタ锣闰 */			/* FIQモ〖ドに提ってspsr瘦赂 */				mov		r1, #(I_Bit | F_Bit | Mode_FIQ)				msr		cpsr_c, r1				mrs		r1, spsr					/* spsr 艰り叫し */				mov		r2, lr						/* 充り哈み牲耽黎瘦赂 */							/* USRモ〖ドに败乖 */				mov		r3, #(I_Bit | F_Bit | Mode_USR)				msr		cpsr_c, r3							/* レジスタ锣闰 */				stmfd	sp!, {r0-r2}				/* a1, spsr_irq, lr_irq 瘦赂 */							/* 驴脚充り哈みチェック */				ldr		r0, =kernel_int_cnt				ldr		r1, [r0]					/* 充り哈みネストカウンタ艰评 */				cmp		r1, #0				add		r1, r1, #1					/* 充り哈みネストカウンタインクリメント */				str		r1, [r0]				bne		MultipleInt					/* 驴脚充り哈みなら尸呆 */							/* スタックの掐れ仑え */				ldr		r0, =kernel_int_ssp				str		sp, [r0]					/* スタックポインタを锣闰 */				ldr		r0, =kernel_int_sp				ldr		sp, [r0]					/* 充り哈み脱スタックを肋年 */			/* 充り哈み借妄の倡幌 */				bl		kernel_sta_int							/* 充り哈み借妄 */				bl      hos_arm_sta_fiq				/* FIQ倡幌借妄(充哈み戎规艰评) */				bl		kernel_exe_int				/* 充り哈み借妄悸乖 */				bl		hos_arm_end_fiq				/* FIQ姜位借妄 */						/* スタックの牲耽 */				ldr		r0, =kernel_int_ssp				ldr		sp, [r0]					/* スタックポインタを牲耽 */						/* 充り哈みネストカウントデクリメント */				ldr		r0, =kernel_int_cnt				mov		r1, #0				str		r1, [r0]					/* 充り哈みネストカウンタクリア */						/* 觅变ディスパッチ悸乖 */				bl		kernel_end_int				/* 觅变ディスパッチ悸乖 */						/* 充り哈みからの牲耽 */ReturnInt:				.extern	pac_arm_swi_ret				ldmfd	sp!, {r0-r2}				ldr		r3, =pac_arm_swi_ret				stmia	r3, {r0-r2}					/* 充り哈み牲耽デ〖タ肋年 */				ldmfd	sp!, {r1-r3, ip, lr}		/* レジスタ牲耽 */				mov		a1, #2				swi		0x10			/* 驴脚充り哈み借妄 */MultipleInt:			/* 充り哈み借妄 */				bl      hos_arm_sta_fiq				/* FIQ倡幌借妄(充哈み戎规艰评) */				bl		kernel_exe_int				/* 充り哈み借妄悸乖 */				bl		hos_arm_end_fiq				/* FIQ姜位借妄 */			/* 充り哈みネストカウントデクリメント */				ldr		r0, =kernel_int_cnt				ldr		r1, [r0]				sub		r1, r1, #1				str		r1, [r0]				b		ReturnInt				.end/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2002 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -