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

📄 vr4131_icu.h

📁 符合日本著名的ITRON规范的开源操作系统。 TOPPERS/JSP内核就是TOPPERS工程按μITRON4.0研发的第一个 软件
💻 H
📖 第 1 页 / 共 2 页
字号:
    nop;/*  充哈み妥傍の冉侍  *//*    充哈みコントロ〖ラはMIPS3コアのInt0に儡鲁されているマスクのチェック */#define PROC_INT0						\/*  タイマの炳批拉を惧げるため、SYSINT2REGから拇べる  */	\    li      t1, ICU_BASE_ADDR_asm;				\    lh      t3, SYSINT2_offset(t1);    /* t3 = SYSINT2REG */	\    lh      t4, MSYSINT2_offset(t1);   /* t4 = MSYSINT2REG */	\    and     t5, t3, t4;     /*  充哈み妥滇ビットにマスク  */	\    beq     t5, zero, proc_SYSINT1;				\    andi    t6, t5, (BIT0 | BIT1 | BIT2 | BIT3 | BIT4 );	\    beq     t6, zero, proc_SYSINT2_HIGH_5BIT;			\								\/*  SYSINT2REG (b0:4) の借妄  */				\    andi    t7, t5, ( RTCL2INTR | LEDINTR );			\    beq     t7, zero, proc_SYSINT2_BIT3_4;			\    andi    t8, t5, LEDINTR;					\    beq     t8, zero, proc_LED;					\MAKE_PROC(RTCL2);						\MAKE_PROC(LED);							\								\proc_SYSINT2_BIT3_4:						\    andi    t1, t5, TCLKINTR;					\    beq     t1, zero, proc_FIR;					\MAKE_PROC(TCLK);						\MAKE_PROC(FIR);							\								\/*  SYSINT2REG (b5:9) の借妄  */				\proc_SYSINT2_HIGH_5BIT:						\    andi    t7, t5, (DSIUINTR | PCIINTR);			\    beq     t7, zero, proc_SYSINT2_BIT7_7;			\    andi    t2, t5, DSIUINTR;					\    beq     t2, zero, proc_PCI;					\MAKE_PROC(DSIU);						\MAKE_PROC(PCI);							\								\proc_SYSINT2_BIT7_7:						\    andi    t3, t5, SCUINTR;					\    beq     t3, zero, proc_SYSINT2_BIT8_9;			\MAKE_PROC(SCU);							\								\proc_SYSINT2_BIT8_9:						\    andi    t4, t5, CSIINTR;					\    beq     t4, zero, proc_BCU;					\MAKE_PROC(CSI);							\MAKE_PROC(BCU);							\								\/*  SYSINT1REGのチェック  */					\/*  t1にICU_BASE_ADDRが掐った觉轮でここに丸る  */		\proc_SYSINT1:							\    lh      t3, SYSINT1_offset(t1);	/* t3 = SYSINT1REG */	\    lh      t4, MSYSINT1_offset(t2);	/* t4 = MSYSINT1REG */	\    and     t5, t3, t4;     /*  充哈み妥滇ビットにマスク  */	\    andi    t6, t5, 0xff;					\    beq     t6, zero, proc_SYSINT1_HIGH_BYTE;			\								\/*  SYSINT1REG (布疤バイト) の借妄  */				\    andi    t7, t5, (BATINTR | POWERINTR);			\    beq     t7, zero, proc_SYSINT1_BIT2_3;			\    andi    t8, t5, BATINTR;					\    beq     t8, zero, proc_POWER;				\MAKE_PROC(BAT);							\MAKE_PROC(POWER);						\								\proc_SYSINT1_BIT2_3:						\    andi    t1, t5, ETIMERINTR;					\    beq     t1, zero, proc_ETIME;				\MAKE_PROC(RTCL1);						\MAKE_PROC(ETIME);						\								\/*  SYSINT1REG (惧疤バイト) の借妄  */				\proc_SYSINT1_HIGH_BYTE:						\    andi    t8, t5, (GIUINTR | SIUINTR);			\    beq     t8, zero, proc_SYSINT1_BIT11_12;			\    andi    t9, t5, GIUINTR;					\    beq     t9, zero, proc_SIU;					\MAKE_PROC(GIU);							\MAKE_PROC(SIU);							\								\proc_SYSINT1_BIT11_12:						\    andi    t1, t5, SOFTINTR;					\    beq     t1, zero, proc_CLKRUN;				\MAKE_PROC(SOFTINT);						\MAKE_PROC(CLKRUN);						\								\proc_END:/*============================================================================*//* 充哈み借妄に簇する、充哈み妥傍の冉们尸呆借妄のシステム巴赂婶 */	/*  钙び叫されたとき、       */	/*    a1にステ〖タスレジスタ */	/*    a2に付傍レジスタ       */	/*  の猛が掐っている         */#define PROC_INTERRUPT_SYS							\	and     t2, a2, a1;          /*  充哈み妥滇ビットにマスクをかける  */	\	andi    t3, t2, Cause_IP0;   /*  IP0ビット艰り叫し  */			\	bne     t3, zero, proc_IP0;						\	andi    t4, t2, Cause_IP1;   /*  IP1ビット艰り叫し  */			\	bne     t4, zero, proc_IP1;						\	andi    t5, t2, Cause_IP2;   /*  IP2ビット艰り叫し  */			\	bne     t5, zero, proc_IP2;						\	andi    t6, t2, Cause_IP3;   /*  IP3ビット艰り叫し  */			\	bne     t6, zero, proc_IP3;						\	andi    t7, t2, Cause_IP4;   /*  IP4ビット艰り叫し  */			\	bne     t7, zero, proc_IP4;						\	nop;									\	/* VR4131の眷圭、Cause_IP5とCause_IP6は踏儡鲁なので臼维 */		\	/*∈ハ〖ドウェア试p196徊救∷*/						\										\	/* なんらかの付傍で尸呆できない眷圭 */					\	j       join_interrupt_and_exception;					\	nop;									\										\										\/*  MIPS3コアレベルで尸呆したレベルでの借妄		*/			\/*    充哈み妥傍戎规を t0 に掐れて			*/			\/*    充哈み妥滇クリアのための年眶を t1 に掐れて	*/			\/*    set_ICU_IPM へ若ぶ				*/			\proc_IP7:   /*  充哈み妥傍IP7∈タイマ∷の眷圭  */				\	xori    t1, zero, Cause_IP7;						\	j       set_ICU_IPM;							\	ori     t0, zero, INTNO_IP7;						\										\proc_IP0:   /*  充哈み妥傍IP0∈ソフトウェア充哈み0∷の眷圭  */			\	xori    t1, zero, Cause_IP0;						\	j       set_ICU_IPM;							\	ori     t0, zero, INTNO_IP0;						\										\proc_IP1:   /*  充哈み妥傍IP1∈ソフトウェア充哈み1∷の眷圭  */			\	xori    t1, zero, Cause_IP1;						\	j       set_ICU_IPM;							\	ori     t0, zero, INTNO_IP1;						\										\proc_IP2:   /*  充哈み妥傍IP2∈Int0∷の眷圭  */					\            /*  ≈すべての充哈み∽が奶梦される。*/				\	PROC_INT0;	/* 尸呆借妄は vr4131_icu.h でマクロ年盗されている */	\	xori    t1, zero, Cause_IP2;						\	j       set_ICU_IPM;							\	nop;									\										\proc_IP3:   /*  充哈み妥傍IP3∈Int1∷の眷圭  */ 				\            /*  ≈rtc_long1_intr∽∈インタ〖バルタイマ∷が奶梦される。*/	\	xori    t1, zero, Cause_IP3;						\	j       set_ICU_IPM;							\	ori     t0, zero, INTNO_IP3;						\										\proc_IP4:   /*  充哈み妥傍IP4∈Int2∷の眷圭  */ 				\            /*  ≈rtc_long2_intr∽∈インタ〖バルタイマ∷が奶梦される。*/	\	xori    t1, zero, Cause_IP4;						\	j       set_ICU_IPM;							\	ori     t0, zero, INTNO_IP4;						\										\/*  充哈みコントロ〖ラ巴赂のマスク肋年  */					\set_ICU_IPM:									\										\	SET_ICU_IPM;	/* 充哈みマスクを肋年するマクロ			    */	\			/*   悸刘を乖うときには、布淡にてt0、t1は网脱するの */	\			/*   で撬蝉しないように、庙罢しなければならない。   */	\										\/*  付傍レジスタIPビットに瘦积されている称硷充哈みの充哈み妥滇をクリアする。	\    t1には、充哈み妥滇ビットを瓤啪したものが掐っている。 */			\										\	mfc0    t8, Cause;							\	and     t8, t8, t1;							\	mtc0    t8, Cause;							\										\/*  ステ〖タスレジスタのマスク肋年とC咐胳ル〖チン钙び叫し  */			\/*    t0に充哈み妥傍戎规が肋年された觉轮でここに丸る  */			\	la      t3, int_table;   /* 导击ベクタアドレス */			\	sll     t4, t0, 3;       /* 充哈み妥傍戎规を8擒				\				      INT_TABLE房は、				\					ハンドラのアドレス(4バイト)		\					≤MIPS3コアの充哈みマスク(4バイト)	\				      の、圭纷8バイト。 */			\	add     t5, t3, t4;      /* ベクタアドレスを换叫 */			\	lw      t6, INT_TABLE_intmask(t5);					\           		    	/*  IPM(充哈み钓材ビット)粕み叫し。		\				    充哈みマスク笆嘲の猛は、			\					IEビットはセット			\					EXLビットはリセット			\				    觉轮になっている。*/			\	lw      t7, (t5);        /* C咐胳ル〖チン黎片アドレス粕み叫し  */	\										\	jalr    ra, t7;          /* C咐胳ル〖チン钙び叫し  */			\	mtc0    t6, Status;      /* 充哈み钓材〃ステ〖タスレジスタのマスク肋年*/\										\	mfc0    t0, Status;							\	ori     t0, t0, SR_EXL;  /* 充哈み敦贿〃IEビットの猛は瘦积しなければなら\						ないのでEXLビットを脱いる。*/	\	mtc0    t0, Status;							\										\	/*  CP0ハザ〖ドのための箕粗苍ぎ  */					\	NOP_FOR_CP0_HAZARD;#endif /* _VR4131_ICU_H_ */

⌨️ 快捷键说明

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