//  Copyright (C) 2016, mituhiromatuura all right reserved.

/*
 *  各タスクの優先度の定義
 */

#define MAIN_PRIORITY	5
#define HIGH_PRIORITY	9
#define MID_PRIORITY	10
#define LOW_PRIORITY	11

/*
 *  ターゲットに依存する可能性のある定数の定義
 */

#ifndef TASK_PORTID
#define	TASK_PORTID		1
#endif /* TASK_PORTID */

#define GPS_PORTID		(2)

#define INHNO_GPS_RX	IRQ_VECTOR_MFSRX(2)
#define INHNO_GPS_TX	IRQ_VECTOR_MFSTX(2)
#define INTNO_GPS_RX	IRQ_VECTOR_MFSRX(2)
#define INTNO_GPS_TX	IRQ_VECTOR_MFSTX(2)

#define INTPRI_GPS		-3		/* 割込み優先度 */
#define INTATR_GPS		0		/* 割込み属性 */

#define ESP_PORTID		(3)

#define INHNO_ESP_RX	IRQ_VECTOR_MFSRX(3)
#define INHNO_ESP_TX	IRQ_VECTOR_MFSTX(3)
#define INTNO_ESP_RX	IRQ_VECTOR_MFSRX(3)
#define INTNO_ESP_TX	IRQ_VECTOR_MFSTX(3)

#define INTPRI_ESP		-3		/* 割込み優先度 */
#define INTATR_ESP		0		/* 割込み属性 */

#ifndef STACK_SIZE
#define	STACK_SIZE		4096		/* タスクのスタックサイズ */
#endif /* STACK_SIZE */

/*
 *  関数のプロトタイプ宣言
 */
#ifndef TOPPERS_MACRO_ONLY

extern void	task_main(intptr_t exinf);
extern void	task_gps(intptr_t exinf);
extern void	task_sensor(intptr_t exinf);
extern void	isr_exint_camvs(intptr_t exinf);
extern void	cyclic_handler(intptr_t exinf);
extern void disk_timerproc (void);
extern void setup(void);
extern void loop(void);

#endif /* TOPPERS_MACRO_ONLY */
