# C言語ファイルの追加
CSRCS += $(SRC_PROC_DIR)/val_int.c \
- $(SRC_IRC_DIR)/intc.c
+ $(SRC_IRC_DIR)/kini_irc.c \
+ $(SRC_IRC_DIR)/karm_irq.c \
+ $(SRC_IRC_DIR)/karm_fiq.c \
+ $(SRC_IRC_DIR)/ena_int.c \
+ $(SRC_IRC_DIR)/dis_int.c
# アセンブラファイルの追加
include $(KERNEL_MAKINC_DIR)/knldep.inc
+# %jp{固有の依存関係}
+$(OBJS_DIR)/kini_irc.(EXT_OBJ): $(SRC_IRC_DIR)/kini_irc.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/karm_irq.(EXT_OBJ): $(SRC_IRC_DIR)/karm_irq.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/karm_fiq.(EXT_OBJ): $(SRC_IRC_DIR)/karm_fiq.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/ena_int.(EXT_OBJ): $(SRC_IRC_DIR)/ena_int.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/dis_int.(EXT_OBJ): $(SRC_IRC_DIR)/dis_int.c $(SRC_IRC_DIR)/aduc7000.h
+
# end of file
# C言語ファイルの追加
CSRCS += $(SRC_PROC_DIR)/val_int.c \
- $(SRC_IRC_DIR)/intc.c
+ $(SRC_IRC_DIR)/kini_irc.c \
+ $(SRC_IRC_DIR)/karm_irq.c \
+ $(SRC_IRC_DIR)/karm_fiq.c \
+ $(SRC_IRC_DIR)/ena_int.c \
+ $(SRC_IRC_DIR)/dis_int.c
+
# アセンブラファイルの追加
ASRCS += $(SRC_PROC_CC_DIR)/kdis_int.S \
include $(KERNEL_MAKINC_DIR)/knldep.inc
+# %jp{固有の依存関係}
+$(OBJS_DIR)/kini_irc.(EXT_OBJ): $(SRC_IRC_DIR)/kini_irc.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/karm_irq.(EXT_OBJ): $(SRC_IRC_DIR)/karm_irq.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/karm_fiq.(EXT_OBJ): $(SRC_IRC_DIR)/karm_fiq.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/ena_int.(EXT_OBJ): $(SRC_IRC_DIR)/ena_int.c $(SRC_IRC_DIR)/aduc7000.h
+$(OBJS_DIR)/dis_int.(EXT_OBJ): $(SRC_IRC_DIR)/dis_int.c $(SRC_IRC_DIR)/aduc7000.h
+
+
# end of file
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file aduc7000.h
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#ifndef _kernel__aduc7000_h__
+#define _kernel__aduc7000_h__
+
+
+#define IRQSTA (*(volatile UW *)0xffff0000)
+#define IRQSIG (*(volatile UW *)0xffff0004)
+#define IRQEN (*(volatile UW *)0xffff0008)
+#define IRQCLR (*(volatile UW *)0xffff000c)
+
+#define FIQSTA (*(volatile UW *)0xffff0100)
+#define FIQSIG (*(volatile UW *)0xffff0104)
+#define FIQEN (*(volatile UW *)0xffff0108)
+#define FIQCLR (*(volatile UW *)0xffff010c)
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void _kernel_arm_irq(void);
+void _kernel_arm_fiq(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _kernel__aduc7000_h__ */
+
+
+/* end of file */
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file dis_int.c
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "core/core.h"
+#include "object/inhobj.h"
+#include "object/isrobj.h"
+#include "aduc7000.h"
+
+
+
+/* 割り込みの禁止 */
+ER dis_int(INTNO intno)
+{
+ IRQCLR = (1 << intno);
+
+ return E_OK;
+}
+
+
+
+/* end of file */
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file ena_int.c
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "core/core.h"
+#include "object/inhobj.h"
+#include "object/isrobj.h"
+#include "aduc7000.h"
+
+
+/* 割り込みの許可 */
+ER ena_int(INTNO intno)
+{
+ IRQEN |= (1 << intno);
+
+ return E_OK;
+}
+
+
+/* end of file */
+++ /dev/null
-/**
- * Hyper Operating System V4 Advance
- *
- * @file intc.h
- * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
- *
- * Copyright (C) 1998-2006 by Project HOS
- * http://sourceforge.jp/projects/hos/
- */
-
-
-#include "core/core.h"
-#include "object/inhobj.h"
-#include "object/isrobj.h"
-
-
-#define IRQSTA (*(volatile UW *)0xffff0000)
-#define IRQSIG (*(volatile UW *)0xffff0004)
-#define IRQEN (*(volatile UW *)0xffff0008)
-#define IRQCLR (*(volatile UW *)0xffff000c)
-
-#define FIQSTA (*(volatile UW *)0xffff0100)
-#define FIQSIG (*(volatile UW *)0xffff0104)
-#define FIQEN (*(volatile UW *)0xffff0108)
-#define FIQCLR (*(volatile UW *)0xffff010c)
-
-
-
-void _kernel_arm_irq(void);
-void _kernel_arm_fiq(void);
-
-
-/** %jp{割込みコントローラの初期化} */
-void _kernel_ini_irc(void)
-{
- IRQCLR = 0x00ffffff;
- FIQCLR = 0x00ffffff;
-
- _kernel_inh_tbl[_KERNEL_ARM_INHNO_IRQ].inthdr = (FP)_kernel_arm_irq;
- _kernel_inh_tbl[_KERNEL_ARM_INHNO_FIQ].inthdr = (FP)_kernel_arm_fiq;
-}
-
-void _kernel_exe_irc(INHNO inhno)
-{
- switch ( inhno )
- {
- case _KERNEL_ARM_INHNO_IRQ:
- _kernel_arm_irq();
- break;
-
- case _KERNEL_ARM_INHNO_FIQ:
- _kernel_arm_fiq();
- break;
- }
-}
-
-
-/** %jp{IRQ割り込み処理開始} */
-void _kernel_arm_irq(void)
-{
- INTNO intno;
- UW irqsta;
-
- irqsta = IRQSTA;
-
- /* 割り込み番号取得 */
- for ( intno = 0; intno <= 23; intno++ )
- {
- if ( irqsta & 1 )
- {
- /* 割込みサービスルーチン呼び出し */
- _kernel_exe_isr(intno);
- }
-
- irqsta >>= 1;
- }
-}
-
-
-/* FIQ割り込み処理開始 */
-void _kernel_arm_fiq(void)
-{
- INTNO intno;
- UW fiqsta;
-
- fiqsta = FIQSTA;
-
- /* 割り込み番号取得 */
- for ( intno = 0; intno <= 23; intno++ )
- {
- if ( fiqsta & 1 )
- {
- /* 割込みサービスルーチン呼び出し */
- _kernel_exe_isr(intno);
- }
-
- fiqsta >>= 1;
- }
-}
-
-
-/* 割り込みの許可 */
-ER ena_int(INTNO intno)
-{
- IRQEN |= (1 << intno);
-
- return E_OK;
-}
-
-
-/* 割り込みの禁止 */
-ER dis_int(INTNO intno)
-{
- IRQCLR = (1 << intno);
-
- return E_OK;
-}
-
-
-
-/* end of file */
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file intc.h
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "core/core.h"
+#include "object/inhobj.h"
+#include "object/isrobj.h"
+#include "aduc7000.h"
+
+
+/* FIQ割り込み処理開始 */
+void _kernel_arm_fiq(void)
+{
+ INTNO intno;
+ UW fiqsta;
+
+ fiqsta = FIQSTA;
+
+ /* 割り込み番号取得 */
+ for ( intno = 0; intno <= 23; intno++ )
+ {
+ if ( fiqsta & 1 )
+ {
+ /* 割込みサービスルーチン呼び出し */
+ _kernel_exe_isr(intno);
+ }
+
+ fiqsta >>= 1;
+ }
+}
+
+
+
+/* end of file */
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file intc.h
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "core/core.h"
+#include "object/inhobj.h"
+#include "object/isrobj.h"
+#include "aduc7000.h"
+
+
+/** %jp{IRQ割り込み処理開始} */
+void _kernel_arm_irq(void)
+{
+ INTNO intno;
+ UW irqsta;
+
+ irqsta = IRQSTA;
+
+ /* 割り込み番号取得 */
+ for ( intno = 0; intno <= 23; intno++ )
+ {
+ if ( irqsta & 1 )
+ {
+ /* 割込みサービスルーチン呼び出し */
+ _kernel_exe_isr(intno);
+ }
+
+ irqsta >>= 1;
+ }
+}
+
+
+/* end of file */
--- /dev/null
+/**
+ * Hyper Operating System V4 Advance
+ *
+ * @file intc.h
+ * @brief %jp{ADuC7000シリーズ用割込みコントローラ操作}%en{ADuC7000 series}
+ *
+ * Copyright (C) 1998-2007 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "core/core.h"
+#include "object/inhobj.h"
+#include "object/isrobj.h"
+#include "aduc7000.h"
+
+
+/** %jp{割込みコントローラの初期化} */
+void _kernel_ini_irc(void)
+{
+ IRQCLR = 0x00ffffff;
+ FIQCLR = 0x00ffffff;
+
+ _kernel_inh_tbl[_KERNEL_ARM_INHNO_IRQ].inthdr = (FP)_kernel_arm_irq;
+ _kernel_inh_tbl[_KERNEL_ARM_INHNO_FIQ].inthdr = (FP)_kernel_arm_fiq;
+}
+
+void _kernel_exe_irc(INHNO inhno)
+{
+ switch ( inhno )
+ {
+ case _KERNEL_ARM_INHNO_IRQ:
+ _kernel_arm_irq();
+ break;
+
+ case _KERNEL_ARM_INHNO_FIQ:
+ _kernel_arm_fiq();
+ break;
+ }
+}
+
+
+
+/* end of file */