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

📄 pacctx.s

📁 itron
💻 S
字号:
/* ------------------------------------------------------------------------ */
/*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  */
/*    プロセッサ藐据步コンポ〖ネント (泣惟 SH2脱)                           */
/*                                                                          */
/*                                  Copyright (C) 1998-2002 by Project HOS  */
/*                                  http://sourceforge.jp/projects/hos/     */
/* ------------------------------------------------------------------------ */



				.global	_hospac_dis_int			/* 充り哈み敦贿 */
				.global	_hospac_ena_int			/* 充り哈み钓材 */
				.global	_hospac_cre_ctx_asm		/* 悸乖コンテキストの侯喇 */
				.global	_hospac_swi_ctx			/* 悸乖コンテキストの磊仑 */



/************************************************
  充り哈み敦贿
  void hospac_dis_int(void)
************************************************/
				.text
				.align	2
_hospac_dis_int:
				stc		sr, r0
				or		#0xf0, r0		/* 链充り哈みマスク */
				rts
				ldc		r0, sr



/************************************************
  充り哈み钓材
  void hospac_ena_int(void)
************************************************/
				.text
				.align	2
_hospac_ena_int:
				mov		#0xf0, r1		/* 0x00f0 を瓤啪させて 0xff0f を侯喇 */
				not		r1, r1
				stc		sr, r0
				and		r1, r0			/* 充り哈みマスク猛笆嘲を艰评 */
				mov.l	imsk_addr, r1
				mov.l	@r1, r1
				or		r1, r0			/* 充り哈みマスクの猛を肋年 */
				rts
				ldc		r0, sr

				.align	2
imsk_addr:
				.long	_hospac_sh_imsk			/* 充り哈みマスク */



/************************************************
  悸乖コンテキストエントリ〖アドレス
************************************************/
				.text
				.align 2
ctx_entry:	 	
				jmp		@r14			/* 悸乖アドレスにジャンプ */
				mov		r13, r4			/* 悸乖箕パラメ〖タを妈办苞眶に肋年 */


/************************************************
  悸乖コンテキストの侯喇
  void hospac_cre_ctx_asm(
		 T_HOSPAC_CTXINF *pk_ctxinf,	侯喇するコンテキスト
		 VP 	sp, 					スタックポインタ
		 void	(*task)(VP_INT),		悸乖アドレス
		 VP_INT exinf)					悸乖箕パラメ〖タ
************************************************/
				.text
				.align 2
_hospac_cre_ctx_asm:
				add 	#-20, r5				/* r14-10尸コンテキストのstackを凯ばす */
				mov.l	r7, @-r5				/* 悸乖パラメ〖タの呈羌(r9) */
				mov.l	r6, @-r5				/* 悸乖アドレスの呈羌(r8) */
				mov.l	ctx_entry_addr, r0		/* 悸乖エントリポイントをコンテキストの */
				mov.l	r0, @-r5				/* スタックに瘦赂 */
				rts
				mov.l	r5, @(0,r4) 			/* コンテキストのスタックポインタ瘦赂 */

				.align	2
ctx_entry_addr:
				.long	ctx_entry



/************************************************
  悸乖コンテキストの磊仑
  void hospac_swi_ctx(
		T_HOSPAC_CTXINF *pk_pre_ctxinf,	附哼のコンテキストの瘦赂黎
		T_HOSPAC_CTXINF *pk_nxt_ctxinf)	磊り仑えるコンテキスト
************************************************/
				.text
				.align 2
_hospac_swi_ctx:
				mov.l	 r8, @-r15		/* 8-r14,prを锣闰 */
				mov.l	 r9, @-r15
				mov.l	 r10, @-r15
				mov.l	 r11, @-r15
				mov.l	 r12, @-r15
				mov.l	 r13, @-r15
				mov.l	 r14, @-r15
				sts.l	 pr, @-r15

				mov.l	 r15, @(0, r4)	/* スタックポインタ瘦赂 */
				mov.l	 @(0, r5), r15	/* スタックポインタ牲耽 */

				lds.l	 @r15+, pr		/* r8-r14,prを牲耽 */
				mov.l	 @r15+, r14
				mov.l	 @r15+, r13
				mov.l	 @r15+, r12
				mov.l	 @r15+, r11
				mov.l	 @r15+, r10
				mov.l	 @r15+, r9
				rts
				mov.l	 @r15+, r8



				.end


/* ------------------------------------------------------------------------ */
/*  Copyright (C) 1998-2002 by Project HOS                                  */
/* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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