pacctx.s

来自「itron」· S 代码 · 共 89 行

S
89
字号
/* ------------------------------------------------------------------------ */
/*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  */
/*    プロセッサ藐据步コンポ〖ネント (ARM gcc脱)                            */
/*                                                                          */
/*                                  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		/* 悸乖コンテキストの磊仑 */


				.text
				.align	4


/************************************************
  充り哈み敦贿
  void hospac_dis_int(void)
*************************************************/
hospac_dis_int:
				mov		a1, #0				/* 充り哈み敦贿を回年 */
				swi		0x10				/* ス〖パバイ〖ザ〖コ〖ル */
				mov		pc, lr


/************************************************
  充り哈み钓材
  void hospac_ena_int(void)
*************************************************/
hospac_ena_int:
				mov		a1, #1				/* 充り哈み钓材を回年 */
				swi		0x10				/* ス〖パバイ〖ザ〖コ〖ル */
				mov		pc, lr


/************************************************
  悸乖コンテキストエントリ〖アドレス
*************************************************/
ctx_entry:
				mov		a1, v2				/* 悸乖箕パラメ〖タを妈办苞眶に肋年 */
				mov		pc, v1				/* 悸乖アドレスに尸呆 */


/************************************************
  悸乖コンテキストの侯喇
  void hospac_cre_ctx_asm(
		T_HOSPAC_CTXINF *pk_ctxinf,			侯喇するコンテキスト
		VP     sp,							スタックポインタ
		void   (*task)(VP_INT),				悸乖アドレス
		VP_INT exinf						悸乖箕パラメ〖タ
	)
*************************************************/
hospac_cre_ctx_asm:
				stmfd	sp!, {v1}			/* 侯度レジスタ锣闰 */
				ldr		v1, =ctx_entry
				stmfd	a2!, {v1}			/* エントリ〖ポイントを肋年 */
				sub		a2, a2, #28			/* v3-v8, ip 尸负换 */
				stmfd	a2!, {a3,a4}		/* v1, v2 の挝拌に悸乖アドレスとパラメ〖タ呈羌 */
				str		a2, [a1]			/* コンテキストとして sp を瘦赂 */
				ldmfd	sp!, {v1}			/* 侯度レジスタ牲耽 */
				mov		pc, lr				/* リタ〖ン */


/************************************************
  悸乖コンテキストの磊仑
  void hospac_swi_ctx(
		T_HOSPAC_CTXINF *pk_pre_ctxinf,		附哼のコンテキストの瘦赂黎
		T_HOSPAC_CTXINF *pk_nxt_ctxinf		磊り仑えるコンテキスト
		)
*************************************************/
hospac_swi_ctx:
				stmfd	sp!, {v1-v8,ip,lr}	/* レジスタ瘦赂 */
				str		sp, [a1]			/* スタックポインタ瘦赂 */
				ldr		sp, [a2]			/* スタックポインタ牲耽 */
				ldmfd	sp!, {v1-v8,ip,pc}	/* レジスタ牲耽□リタ〖ン */



				.end


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

⌨️ 快捷键说明

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