OSDN Git Service

sys_config.h からタスクスタックサイズとタスク優先順位を制御できるようにした
authortakemasa <suikan@users.sourceforge.jp>
Sun, 30 Dec 2012 13:21:44 +0000 (22:21 +0900)
committertakemasa <suikan@users.sourceforge.jp>
Sun, 30 Dec 2012 13:21:44 +0000 (22:21 +0900)
uzumeapp/Makefile.depend
uzumeapp/configure-project
uzumeapp/kernel/config/blackfin/bsp_amakusa592/sys_config.h
uzumeapp/kernel/uzume/ad7999.cfg
uzumeapp/kernel/uzume/ad7999.h
uzumeapp/kernel/uzume/i2s.cfg
uzumeapp/kernel/uzume/i2s_subsystem.h
uzumeapp/uzume_app.cfg
uzumeapp/uzume_app.h

index b1608bc..8f8c8b7 100644 (file)
@@ -9,14 +9,14 @@ kernel_cfg.c kernel_id.h kernel_chk.c: kernel/systask/logtask.cfg \
        kernel/include/t_stddef.h kernel/uzume/i2c0_m.cfg \
        kernel/include/t_services.h kernel/include/sil.h \
        kernel/config/blackfin/tool_defs.h kernel/include/t_syslog.h \
-       kernel/config/blackfin/_common_bf592/hw_timer.h uzume_app.h \
-       kernel/systask/timer.cfg kernel/systask/serial.cfg \
+       kernel/config/blackfin/_common_bf592/hw_timer.h \
+       kernel/systask/timer.cfg uzume_app.h \
+       kernel/systask/serial.cfg \
        kernel/config/blackfin/bsp_amakusa592/sys_config.h \
        kernel/uzume/bsp_amakusa592.cfg kernel/uzume/i2s.cfg \
-       kernel/config/blackfin/cpu_config.h \
        kernel/include/s_services.h \
+       kernel/config/blackfin/cpu_config.h kernel/include/itron.h \
        kernel/config/blackfin/_common_bf592/chip_config.h \
-       kernel/include/itron.h \
        kernel/config/blackfin/_common_bf592/hw_serial.cfg \
        kernel/config/blackfin/bsp_amakusa592/sys_defs.h 
 makeoffset.s: kernel/include/kernel.h \
@@ -787,16 +787,25 @@ start.o: kernel/include/kernel.h kernel/config/blackfin/cpu_defs.h \
        kernel/config/blackfin/_common_bf592/chip_config.h \
        kernel/config/blackfin/bsp_amakusa592/sys_defs.h 
 cpu_crtbegin.o: kernel/config/blackfin/cpu_crtbegin.c 
-uzume_app.o: kernel/include/kernel.h kernel/include/t_services.h \
+uzume_app.o: kernel/include/kernel.h \
        kernel/config/blackfin/cpu_defs.h \
        kernel/config/blackfin/_common_bf592/chip_defs.h \
+       kernel/config/blackfin/_common_bf592/sys_rename.h \
+       kernel/include/t_config.h \
+       kernel/config/blackfin/tool_config.h kernel/include/serial.h \
+       uzume_app.c kernel/config/blackfin/cpu_rename.h \
+       kernel/include/t_stddef.h kernel/include/t_services.h \
+       kernel/include/sil.h \
        /opt/uClinux2011R1RC4/bfin-elf/bin/../lib/gcc/bfin-elf/4.3.5/include-fixed/limits.h \
-       kernel/include/t_syslog.h kernel/config/blackfin/tool_defs.h \
-       uzume_app.h kernel/include/serial.h uzume_app.c kernel_id.h \
-       kernel/include/itron.h \
+       kernel/config/blackfin/tool_defs.h kernel/include/t_syslog.h \
+       uzume_app.h \
+       kernel/config/blackfin/bsp_amakusa592/sys_config.h \
+       kernel/config/blackfin/cpu_config.h \
+       kernel/include/s_services.h \
+       kernel/config/blackfin/_common_bf592/chip_config.h \
        /opt/uClinux2011R1RC4/bfin-elf/bin/../lib/gcc/bfin-elf/4.3.5/include/stddef.h \
-       kernel/config/blackfin/bsp_amakusa592/sys_defs.h \
-       kernel/include/t_stddef.h 
+       kernel/include/itron.h kernel_id.h \
+       kernel/config/blackfin/bsp_amakusa592/sys_defs.h 
 timer.o: \
        /opt/uClinux2011R1RC4/bfin-elf/bin/../lib/gcc/bfin-elf/4.3.5/../../../../bfin-elf/include/defBF59x_base.h \
        kernel/include/kernel.h kernel/include/timer.h \
index 81dca3e..de3461c 100755 (executable)
@@ -1,8 +1,7 @@
-pushd .
 cd kernel/cfg
 make depend
 make
-popd
+cd ../..
 kernel/configure -C blackfin -S bsp_amakusa592 -A uzume_app
 make depend
 make clean
index e2cd68c..d29cc83 100644 (file)
 //#define UZUME_SSM2603_I2C_ADRS 0x1A
 //#define UZUME_AD7999_I2C_ADRS 0x28
 
+// #define MAIN_TASK_PRIORITY    7
+// #define LOGTASK_PRIORITY      5
+// #define CODEC_TASK_PRIORITY   4
+// #define AD7999_TASK_PRIORITY  6
+
+// #define MAIN_TASK_STACK_SIZE   1024
+// #define LOGTASK_STACK_SIZE     1024
+// #define CODEC_TASK_STACK_SIZE  1024
+// #define AD7999_TASK_STACK_SIZE 1024
+
 /*
  * システムタイマーの選択
  * USE_TIC_COREをdefineすると、COREタイマーが使用される
index e4e490c..cb33954 100644 (file)
 INCLUDE("\"ad7999.h\"");
 
 /*
-* タスク優先順位はGUIや一般タスクより低くても構わない。
-*/
-#define AD7999_TASK_PRI 7
-
-/*
 * プライベートな資源
 */
 
@@ -33,11 +28,11 @@ CRE_SEM (AD7999_SEM,
 
 CRE_TSK( AD7999_TASK, 
             { 
-                TA_HLNG|TA_ACT, /* 初期状態からアクティブ */
-                0,           /* タスク引数(無視) */
-                ad7999_task,    /* タスク本体 */
-                AD7999_TASK_PRI, /* タスク優先順位 */
-                1024,           /* タスク・スタックサイズ */
-                NULL            /* タスク・スタック。NULLならシステムが準備 */
+                TA_HLNG|TA_ACT,         /* 初期状態からアクティブ */
+                0,                      /* タスク引数(無視) */
+                ad7999_task,            /* タスク本体 */
+                AD7999_TASK_PRIORITY,   /* タスク優先順位 */
+                AD7999_TASK_STACK_SIZE, /* タスク・スタックサイズ */
+                NULL                    /* タスク・スタック。NULLならシステムが準備 */
              });
 
index f61cad9..c7abe5c 100644 (file)
 
 #include "uzume.h"
 
+/*
+* タスク優先順位はGUIや一般タスクより低くても構わない。
+* タスク優先順位とスタックサイズを変更する場合には sys_config.h でマクロ宣言する
+*/
+#ifndef AD7999_TASK_PRIORITY
+#define AD7999_TASK_PRIORITY 7
+#endif
+
+#ifndef AD7999_TASK_STACK_SIZE
+#define AD7999_TASK_STACK_SIZE 1024
+#endif
+
 
 #ifndef _MACRO_ONLY
 
index 702442c..6a51b60 100644 (file)
@@ -1,13 +1,5 @@
 INCLUDE("\"i2s_subsystem.h\"");
 
-/* 
-* CODEC_TASKのタスク優先順位。0が最も優先順位が高い。I2SのCODEC制御はDMA割り込みに連動する。基本的には小ディレイは
-* 問題なく、割り込み周期いないで処理が完結すればいい。GUIよりも優先順位を高く、プロトコル・スタックのような応答性能が
-* 求められるタスクより低く設定する。
-*/
-
-#define CODEC_TASK_PRI 3        
-
 
 /*
 * SPORT0の割り込み通知用セマフォ
@@ -32,7 +24,7 @@ CRE_TSK(
             0,                  /* タスク引数。特に何も与えない */
             task_audiocodec,    /* タスク実体となる関数 */
             CODEC_TASK_PRI,     /* タスク優先順位 */
-            1024,                /* タスク・スタック・サイズ */
+            CODEC_TASK_STACK_SIZE, /* タスク・スタック・サイズ */
             NULL                /* スタックは自動割付とする */
          });
 
index 0f566bd..520aef2 100644 (file)
 #include <s_services.h>
 #include "uzume.h"
 
+/*
+* CODEC_TASKのタスク優先順位。0が最も優先順位が高い。I2SのCODEC制御はDMA割り込みに連動する。基本的には小ディレイは
+* 問題なく、割り込み周期いないで処理が完結すればいい。GUIよりも優先順位を高く、プロトコル・スタックのような応答性能が
+* 求められるタスクより低く設定する。
+*
+* 変更する場合には sys_config.h でマクロ宣言する
+*/
+#ifndef CODEC_TASK_PRI
+#define CODEC_TASK_PRI 3
+#endif
+
+#ifndef CODEC_TASK_STACK_SIZE
+#define CODEC_TASK_STACK_SIZE 1024
+#endif
 
 /**
  * @brief サンプルあたりのスロット数。I2Sなら2。
index ef8613c..eaf8ea9 100644 (file)
@@ -6,8 +6,8 @@
 #include "uzume_app.h"
 
 INCLUDE("\"uzume_app.h\"");
-CRE_TSK(MAIN_TASK, { TA_HLNG|TA_ACT, 0, main_task, MAIN_PRIORITY,
-            STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_HLNG|TA_ACT, 0, main_task, MAIN_TASK_PRIORITY,
+            MAIN_TASK_STACK_SIZE, NULL });
 
 #include "kernel/systask/timer.cfg"
 #include "kernel/systask/serial.cfg"
index 88349ff..8b9fb1d 100644 (file)
@@ -1,19 +1,25 @@
+#ifndef _UZUME_APP_H_
+#define _UZUME_APP_H_
 
-
+#include <s_services.h>
 #include <t_services.h>
 
 /*
  *  各タスクの優先度の定義
+ *
+ *  タスク優先順位とスタックサイズを変更する際には sys_config.h でマクロ宣言する
  */
-
-#define MAIN_PRIORITY   5       /* メインタスクの優先度 */
-
+#ifndef MAIN_TASK_PRIORITY
+#define MAIN_TASK_PRIORITY   5       /* メインタスクの優先度 */
+#endif
 
 #if defined(BLACKFIN)
 
 #define CPUEXC1     0      /* CPU例外ハンドラ番号 */
 #define RAISE_CPU_EXCEPTION asm("excpt 0;") /* ソフトウェア割込み発生 */
-#define STACK_SIZE  1024     /* タスクのスタックサイズ */
+#ifndef MAIN_TASK_STACK_SIZE
+#define MAIN_TASK_STACK_SIZE  1024     /* タスクのスタックサイズ */
+#endif
 #define TASK_PORTID 1       /* 文字入力するシリアルポートID */
 
 
@@ -36,3 +42,5 @@
 extern void main_task(VP_INT exinf);
 
 #endif /* _MACRO_ONLY */
+
+#endif