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

📄 pacctx.s

📁 itron
💻 S
字号:
/* ------------------------------------------------------------------------ */
/*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  */
/*    プロセッサ藐据步コンポ〖ネント (泣惟 SH4脱)                           */
/*                                                                          */
/*                                                                          */
/*                                  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:
	mov.l	bl_set_mask,r1
	stc	sr,r0
	or	r1,r0		/* 链充り哈みマスク */
	ldc		r0,sr
	rts
	nop

bl_set_mask:
	.long	0x10000000

/************************************************
  充り哈み钓材
  void hospac_ena_int(void)
************************************************/
		.text
		.align	2
_hospac_ena_int:
	stc	sr,r0
	mov.l	bl_imsk_clr_mask,r1
	and	r1,r0			/* 充り哈みマスク猛笆嘲を艰评 */
	mov.l	imsk_addr,r1
	mov.l	@r1,r1
	or	r1,r0			/* 充り哈みマスクの猛を肋年 */
	ldc	r0,sr
	rts
	nop

		.align	2
bl_imsk_clr_mask:
	.long	0xefffff0f
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 + -