OSDN Git Service

(none)
authorryuz <ryuz>
Tue, 4 Mar 2008 15:56:27 +0000 (15:56 +0000)
committerryuz <ryuz>
Tue, 4 Mar 2008 15:56:27 +0000 (15:56 +0000)
aplfw/sample/arm/ez_arm7/gcc/gmake.mak
aplfw/sample/arm/ez_arm7/ostimer.c
aplfw/sample/arm/ez_arm7/ostimer.h
aplfw/sample/arm/ez_arm7/system.cfg
kernel/include/object/tskobj.h
kernel/source/core/toq/add_toq.c
kernel/source/core/toq/sig_toq.c

index e37b684..a4fa29a 100755 (executable)
@@ -28,6 +28,11 @@ APLFW_BUILD_DIR   = $(APLFW_DIR)/build/arm/arm_v4t/gcc
 OBJS_DIR          = objs_$(TARGET)
 
 
+# %jp{カーネル設定}
+KERNEL_HOK_TSK = Yes
+KERNEL_HOK_ISR = Yes
+
+
 # %jp{共通定義読込み}
 include $(KERNEL_MAKINC_DIR)/common.inc
 
index 9c8a2a7..f90bf75 100755 (executable)
@@ -8,6 +8,8 @@
  * http://sourceforge.jp/projects/hos/
  */
 
+#include "hosaplfw.h"
+#include "system/sysapi/sysapi.h"
 
 #include "kernel.h"
 #include "ostimer.h"
 
 #define INTNO_TIMER0   4
 
-static void OsTimer_Isr(VP_INT exinf); /**< %jp{タイマ割込みサービスルーチン} */
+
+static void OsTimer_Isr(VPARAM Param);         /**< %jp{タイマ割込みサービスルーチン} */
 
 
 /** %jp{OS用タイマ初期化ルーチン} */
-void OsTimer_Initialize(VP_INT exinf)
+void OsTimer_Initialize(void)
 {
-       T_CISR cisr;
-       
-       /* %jp{割り込みサービスルーチン生成} */
-       cisr.isratr = TA_HLNG;
-       cisr.exinf  = 0;
-       cisr.intno  = INTNO_TIMER0;
-       cisr.isr    = (FP)OsTimer_Isr;
-       acre_isr(&cisr);
-       ena_int(2);
+       SysIsr_Create(INTNO_TIMER0, OsTimer_Isr, (VPARAM)0);
+       SysInt_Enable(INTNO_TIMER0);
        
        /* %jp{タイマ動作開始} */
        *T0MR0 = 142000 / 4;
@@ -56,13 +52,13 @@ void OsTimer_Initialize(VP_INT exinf)
 
 
 /** %jp{タイマ割り込みハンドラ} */
-void OsTimer_Isr(VP_INT exinf)
+void OsTimer_Isr(VPARAM Param)
 {
        /* %jp{割り込み要因クリア} */
        *T0IR= 1; 
        
        /* %jp{タイムティック供給} */
-       isig_tim();
+       SysTim_Signal(10000000);        /* 10ms */
 }
 
 
index e741bb1..c411e7a 100755 (executable)
@@ -18,7 +18,8 @@ extern "C" {
 #endif
 
 /** %jp{OS用タイマ初期化ルーチン} */
-void OsTimer_Initialize(VP_INT exinf);
+void OsTimer_Initialize(void);
+
 
 #ifdef __cplusplus
 }
index fc327ba..71c1853 100755 (executable)
@@ -20,11 +20,7 @@ KERNEL_MAX_MPFID(32);
 KERNEL_MAX_ISRID(32);
 
 
-/* %jp{OSタイマの設定}%en{OS timer} */
-INCLUDE("\"ostimer.h\"");
-ATT_INI({TA_HLNG, 0, OsTimer_Initialize});
-
-/* %jp{サンプル}%en{Sample program} */
+/* %jp{ブートタスク}%en{Boot task} */
 INCLUDE("\"boot.h\"");
 CRE_TSK(TSKID_BOOT, {TA_HLNG | TA_ACT, 0, Boot_Task, 2, 1024, NULL});
 
index 2d1d5c2..bccc394 100755 (executable)
@@ -1149,7 +1149,8 @@ extern  _KERNEL_T_TCB                                     *_kernel_tcb_tbl[];                                                                             /**< %jp{タスクコン
 extern "C" {
 #endif
 
-ER _kernel_cre_tsk(ID tskid, const T_CTSK *pk_ctsk);
+ER   _kernel_cre_tsk(ID tskid, const T_CTSK *pk_ctsk);         /**< %jp{タスクの生成} */
+void _kernel_exe_tex(_KERNEL_T_TSKHDL tskhdl);                         /**< %jp{タスク例外処理の実行} */
 
 #ifdef __cplusplus
 }
index 2d400f7..a7fbec9 100755 (executable)
@@ -50,7 +50,7 @@ void _kernel_add_toq(
        
        /* %jp{挿入場所を検索} */
        tskhdl_next = tskhdl_head;
-       tcb_next     = _KERNEL_TSK_TSKHDL2TCB(tskhdl_next);
+       tcb_next    = _KERNEL_TSK_TSKHDL2TCB(tskhdl_next);
        do
        {
                tmout_next = _KERNEL_TSK_GET_TOQDIFTIM(tcb_next);
@@ -75,7 +75,7 @@ void _kernel_add_toq(
                        _KERNEL_TSK_SET_TOQPREV(tcb, tskhdl_prev);
                        _KERNEL_TSK_SET_TOQNEXT(tcb_prev, tskhdl);
                        _KERNEL_TSK_SET_TOQPREV(tcb_next, tskhdl);
-                                               
+                       
                        return;
                }
                
index 88eac73..d86020f 100755 (executable)
@@ -51,7 +51,7 @@ void _kernel_sig_toq(
                        break;
                }
                
-               tictim -= diftim;                               /* %jp{タイムティックを減算} */
+               tictim -= diftim;                       /* %jp{タイムティックを減算} */
                
                _KERNEL_TSK_SET_ERCD(tcb, E_TMOUT);
                _KERNEL_DSP_WUP_TSK(tskhdl);
@@ -70,7 +70,7 @@ void _kernel_sig_toq(
                        tskhdl = _KERNEL_TSKHDL_NULL;
                        break;
                }
-
+               
                /* %jp{キューから取り外す} */
                _KERNEL_TSK_SET_TOQNEXT(tcb_prev, tskhdl_next);
                _KERNEL_TSK_SET_TOQPREV(tcb_next, tskhdl_prev);