mt_stak.hファイル

(Mini-c マルチタスク化)

 関数ごとの、スタックエリアの確保を行います。システム用に256byt、 各タスク用に512bytずつ確保します。これのみ、”C”のソースファイル の最後に記述す る必要が有ります。
#include	"mt_stak.h"

 スタックの大きさを変える場合に、"start_mt.h" と合わせて変更する必要が有り、 一応ここでは、512Byt確保してあります。このままでたいていのプログラムは 問題なく動作するでしょうが、動的変数を多量に使用する時は、大きくして下さい。
 例えば、タスク”0”のスタックを1024Bytに変更するときは、
STAK_EREA_0	DS	512
これを
STAK_EREA_0	DS	1024
に変更します。また、"start_mt.h"
RAM_TOP		EQU	STAK_START+512*TASK_0+512*TASK_1・・・・・・・・・・
これを
RAM_TOP		EQU	STAK_START+1024*TASK_0+512*TASK_1・・・・・・・・・

目次に戻る


/*==============================================================*/
/*								*/
/*	マルチタスク用スタックエリア確保			*/
/*								*/
/*	mt_stak.h	Vr1.00		97/01/20		*/
/*								*/
/*	("c"ソースの最後にインクルード)			*/
/*								*/
/*==============================================================*/
#asm

;*********************************************************************
;
;	スタックエリアスタート
;;
;*********************************************************************

		ORG	STAK_START

;===================================================
		IF	TASK_0

STAK_EREA_0	DS	512			;必要に応じて変更可能
STAK_START_0	EQU	STAK_EREA_0 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_1

STAK_EREA_1	DS	512			;必要に応じて変更可能
STAK_START_1	EQU	STAK_EREA_1 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_2

STAK_EREA_2	DS	512			;必要に応じて変更可能
STAK_START_2	EQU	STAK_EREA_2 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_3

STAK_EREA_3	DS	512			;必要に応じて変更可能
STAK_START_3	EQU	STAK_EREA_3 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_4

STAK_EREA_4	DS	512			;必要に応じて変更可能
STAK_START_4	EQU	STAK_EREA_4 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_5

STAK_EREA_5	DS	512			;必要に応じて変更可能
STAK_START_5	EQU	STAK_EREA_5 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_6

STAK_EREA_6	DS	512			;必要に応じて変更可能
STAK_START_6	EQU	STAK_EREA_6 + 512 - 1

		ENDIF
;===================================================
		IF	TASK_7

STAK_EREA_7	DS	512			;必要に応じて変更可能
STAK_START_7	EQU	STAK_EREA_7 + 512 - 1

		ENDIF
;===================================================

STAK_EREA_SYS	DS	256				;変更禁止
STAK_START_SYS	EQU	STAK_EREA_SYS + 256 - 1

STAK_BOTTOM	EQU	STAK_EREA_SYS + 256

;************************************************************

#endasm



目次に戻る