OSDN Git Service

(none)
authorryuz <ryuz>
Thu, 2 Nov 2006 10:48:28 +0000 (10:48 +0000)
committerryuz <ryuz>
Thu, 2 Nov 2006 10:48:28 +0000 (10:48 +0000)
18 files changed:
sample/h8/h83069/ch38/dbsct.c [deleted file]
sample/h8/h83069/ch38/gmake.mak
sample/h8/h83069/ch38/lowlvl.src [deleted file]
sample/h8/h83069/ch38/lowsrc.c [deleted file]
sample/h8/h83069/ch38/lowsrc.h [deleted file]
sample/h8/h83069/ch38/sbrk.c [deleted file]
sample/h8/h83069/ch38/sbrk.h [deleted file]
sample/h8/h83069/ch38/startup.src
sample/h8/h83069/ch38/typedefine.h [deleted file]
sample/h8/h83069/ch38/vcttbl.src
sample/h8/h83069/main.c
sample/h8/h83069/ostimer.c
sample/h8/h83069/ostimer.h
sample/h8/h83069/sample.c
sample/h8/h83069/sample.h
sample/h8/h83069/sci1.c [new file with mode: 0755]
sample/h8/h83069/sci1.h [new file with mode: 0755]
sample/h8/h83069/system.cfg

diff --git a/sample/h8/h83069/ch38/dbsct.c b/sample/h8/h83069/ch38/dbsct.c
deleted file mode 100755 (executable)
index aa5eb6b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :dbsct.c                                               */
-/*  DATE        :Wed, Aug 02, 2006                                     */
-/*  DESCRIPTION :Setting of B,R Section                                */
-/*  CPU TYPE    :SH7040                                                */
-/*                                                                     */
-/*  This file is generated by Renesas Project Generator (Ver.4.5).     */
-/*                                                                     */
-/***********************************************************************/
-                  
-
-
-
-#pragma section $DSEC
-static const struct {
-    unsigned char *rom_s;       /* 初期化データセクションのROM 上の先頭アドレス */
-    unsigned char *rom_e;       /* 初期化データセクションのROM 上の最終アドレス */
-    unsigned char *ram_s;       /* 初期化データセクションのRAM 上の先頭アドレス */
-}   DTBL[] = {
-    { __sectop("D"), __secend("D"), __sectop("R") }
-};
-
-#pragma section $BSEC
-static const struct {
-    unsigned char *b_s;         /* 未初期化データセクションの先頭アドレス */
-    unsigned char *b_e;         /* 未初期化データセクションの最終アドレス */
-}   BTBL[] = {
-    { __sectop("B"), __secend("B") }
-};
index 2caccea..5a162f9 100755 (executable)
@@ -1,16 +1,26 @@
 
+OS_DIR = ../../../..
 
-TARGET ?= sample.abs
+TARGET ?= sample
 
-INC_DIR = ../../../../kernel/include
+ifeq ($(ROM),Yes)
+TARGET := $(TARGET)_rom
+ADDR_VECT = 0
+ADDR_ROM  = 0100
+ADDR_RAM  = 0FFE140
+else
+ADDR_VECT = 0FFC040
+ADDR_ROM  = 0FFC140
+ADDR_RAM  = 0FFE140
+endif
+
+
+INC_DIR = $(OS_DIR)/kernel/include
 
 # Tools
 CC     = ch38
 ASM    = asm38
 LINK   = optlnk
-DEPEND = depend
-LINT   = splint
-AWK    = gawk
 
 CFLAGS = -CP=300HA -DEBug -I=$(INC_DIR)
 AFLAGS = -CP=300HA -DEBug
@@ -18,40 +28,38 @@ LFLAGS =
 
 OBJS_DIR = objs
 
-OBJS = $(OBJS_DIR)/main.obj                    \
+OBJS = $(OBJS_DIR)/vcttbl.obj          \
+       $(OBJS_DIR)/startup.obj         \
+       $(OBJS_DIR)/dbsct.obj           \
+       $(OBJS_DIR)/kernel_cfg.obj      \
+       $(OBJS_DIR)/main.obj                    \
        $(OBJS_DIR)/sample.obj          \
        $(OBJS_DIR)/ostimer.obj         \
-       $(OBJS_DIR)/kernel_cfg.obj      \
-       $(OBJS_DIR)/dbsct.obj           \
-       $(OBJS_DIR)/startup.obj         \
-       $(OBJS_DIR)/vcttbl.obj          \
-       $(OBJS_DIR)/lowlvl.obj          \
-       $(OBJS_DIR)/lowsrc.obj          \
-       $(OBJS_DIR)/sbrk.obj                    \
+       $(OBJS_DIR)/sci1.obj                    \
 
 
 
-OS_LIBS = ../../../../kernel/build/h8/h8300ha/ch38/libhosv4a.lib
-OS_CFG  = ../../../../cfgrtr/build/gcc/h4acfg-h8300ha.exe
+OS_LIBS = $(OS_DIR)/kernel/build/h8/h8300ha/ch38/libhosv4a.lib
+OS_CFG  = $(OS_DIR)/cfgrtr/build/gcc/h4acfg-h8300ha.exe
 
 STD_LIBS = stdlib.lib
 
 VPATH = ..
 
-all: mkdir_objs mk_kernel $(TARGET)
+all: mkdir_objs mk_kernel $(TARGET).abs
 
 
-$(TARGET): $(OBJS) $(STD_LIBS) $(OS_LIBS)
+$(TARGET).abs: $(OBJS) $(STD_LIBS) $(OS_LIBS)
        echo rom D=R                         > $(OBJS_DIR)/subcmd.txt
-       echo list smp.map                   >> $(OBJS_DIR)/subcmd.txt
+       echo list $(TARGET).map             >> $(OBJS_DIR)/subcmd.txt
        echo -Input=$(OBJS) | sed "s/ /,/g" >> $(OBJS_DIR)/subcmd.txt
        echo -LIB=$(OS_LIBS),$(STD_LIBS)    >> $(OBJS_DIR)/subcmd.txt
-       echo "-start=VECTTBL,P,C,C\$$BSEC,C\$$DSEC,D/00,B,R/0200000,S/000FFBF20" >> $(OBJS_DIR)/subcmd.txt
-       echo -output=$(TARGET)              >> $(OBJS_DIR)/subcmd.txt
+       echo "-start=VECTTBL/$(ADDR_VECT),P,C,C\$$BSEC,C\$$DSEC,D/$(ADDR_ROM),B,R,S/$(ADDR_RAM)" >> $(OBJS_DIR)/subcmd.txt
+       echo -output=$(TARGET).abs          >> $(OBJS_DIR)/subcmd.txt
        echo end                            >> $(OBJS_DIR)/subcmd.txt
-       echo -input=$(TARGET)               >> $(OBJS_DIR)/subcmd.txt
+       echo -input=$(TARGET).abs           >> $(OBJS_DIR)/subcmd.txt
        echo form stype                     >> $(OBJS_DIR)/subcmd.txt
-       echo output smp.mot                 >> $(OBJS_DIR)/subcmd.txt
+       echo output $(TARGET).mot           >> $(OBJS_DIR)/subcmd.txt
        echo -exit                          >> $(OBJS_DIR)/subcmd.txt
        $(LINK) -SU=$(OBJS_DIR)/subcmd.txt
 
@@ -59,7 +67,7 @@ $(STD_LIBS):
        lbg38 -OUTPut=$(STD_LIBS) $(CFLAGS) -REent 
 
 mk_kernel:
-       make -C ../../../../kernel/build/h8/h8300ha/ch38 -f gmake.mak
+       make -C $(OS_DIR)/kernel/build/h8/h8300ha/ch38 -f gmake.mak
 
 mkdir_objs:
        @mkdir -p $(OBJS_DIR)
diff --git a/sample/h8/h83069/ch38/lowlvl.src b/sample/h8/h83069/ch38/lowlvl.src
deleted file mode 100755 (executable)
index 61f9a7b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-;------------------------------------------------------------------------
-;                                                                       |
-;   FILE        :lowlvl.src                                             |
-;   DATE        :Mon, Aug 07, 2006                                      |
-;   DESCRIPTION :Program of Low level                                   |
-;   CPU TYPE    :H8/                                                    |
-;                                                                       |
-;   This file is generated by Renesas Project Generator (Ver.4.5).      |
-;                                                                       |
-;------------------------------------------------------------------------
-                  
-
-
-
-         .EXPORT    _charput
-         .EXPORT    _charget
-
-SIM_IO:  .EQU       H'0000
-         
-         .SECTION   P,CODE,ALIGN=2
-;-----------------------------------------------------------------------
-;  _charput:
-;-----------------------------------------------------------------------
-_charput:
-         MOV.B      R0L,@IO_BUF
-         MOV.W      #H'0112,R0
-         MOV.L      #IO_BUF,ER1
-         MOV.L      ER1,@PARM
-;         MOV.W      #H'0000,E1
-;         MOV.W      #LWORD PARM,R1
-               mov.l           #PARM, er1
-         JSR        @SIM_IO
-         RTS
-;-----------------------------------------------------------------------
-;  _charget:
-;-----------------------------------------------------------------------
-_charget:
-         MOV.W      #H'0101,R0
-         MOV.W      #LWORD IO_BUF,R1
-         MOV.W      R1,@PARM
-         MOV.W      #H'0000,E1
-         MOV.W      #LWORD PARM,R1
-         JSR        @SIM_IO
-         MOV.B      @IO_BUF,R0L
-         RTS
-;-----------------------------------------------------------------------
-;  I/O Buffer
-;-----------------------------------------------------------------------
-         .SECTION   B,DATA,ALIGN=2
-PARM:    .RES.L     1
-IO_BUF:  .RES.B     1
-         .END
diff --git a/sample/h8/h83069/ch38/lowsrc.c b/sample/h8/h83069/ch38/lowsrc.c
deleted file mode 100755 (executable)
index b18a428..0000000
+++ /dev/null
@@ -1,481 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :lowsrc.c                                              */
-/*  DATE        :Tue, Mar 04, 2003                                     */
-/*  DESCRIPTION :Program of I/O Stream                                 */
-/*  CPU TYPE    :H8/SH                                                 */
-/*                                                                     */
-/***********************************************************************/
-                  
-// SH・H8共用ファイル
-
-
-#include <string.h>
-#include <stdio.h>
-#include <stddef.h>
-#include "lowsrc.h"
-
-/* H8のみno_float.hをインクルード */
-#if   defined( __2000N__ ) || defined( __2600N__ ) || defined( __300HN__ ) || defined( __2000A__ ) || defined( __2600A__ ) || defined( __300HA__ ) || defined( __300__ ) || defined( __300L__ )
-#include <no_float.h>
-#endif
-
-/* ファイル番号 */
-#define STDIN  0                                       /* 標準入力           (コンソール) */
-#define STDOUT 1                                       /* 標準出力           (コンソール) */
-#define STDERR 2                                       /* 標準エラー出力     (コンソール) */
-
-#define FLMIN  0                                       /* 最小のファイル番号              */
-
-/* ファイルフラグ       */
-#define O_RDONLY 0x0001                /* 読み込み専用にオープン。                                         */
-#define O_WRONLY 0x0002                /* 書き出し専用にオープン。                                         */
-#define O_RDWR   0x0004                /* 読み書き、両用にオープン。                                      */
-#define O_CREAT  0x0008                /* ファイルが存在しない場合、新規作成。                       */
-#define O_TRUNC  0x0010                /* ファイルが存在する場合、ファイルサイズを0に。*/
-#define O_APPEND 0x0020                /* 次に読み書きを行うファイル内の位置を設定。      */
-                                                       /* 0:ファイルの先頭。 1:ファイルの最後。            */
-
-
-/* 特殊文字コード */
-#define CR 0x0d                                                /* 復帰                            */
-#define LF 0x0a                                                /* 改行                            */
-
-const int _nfiles = IOSTREAM;          /* 入出力ファイル数を指定。        */
-struct _iobuf _iob[IOSTREAM];
-unsigned char sml_buf[IOSTREAM];
-
-
-/* H8ノーマルモード・SH */
-#if   defined( __2000N__ ) || defined( __2600N__ ) || defined( __300HN__ ) || defined( _SH1 ) || defined( _SH2 ) || defined( _SH2E ) || defined( _SH3 ) || defined( _SH4 )
-/* 標準入力からの1文字入力処理  */
-extern void charput(char);
-/* 標準出力への1文字出力処理    */
-extern char charget(void);
-/* ファイルへの1文字出力処理       */
-extern char fcharput(char, unsigned char);
-/* ファイルからの1文字入力処理    */
-extern char fcharget(char*, unsigned char);
-/* ファイルのオープン                 */
-extern char fileopen(char*, unsigned char, unsigned char*);
-/* ファイルのクローズ                 */
-extern char fileclose(unsigned char);
-/* ファイルポインタの移動           */
-extern char fpseek(unsigned char, long, unsigned char);
-/* ファイルポインタの取得           */
-extern char fptell(unsigned char, long*);
-
-/* H8アドバンストモード */
-#elif defined( __2000A__ ) || defined( __2600A__ ) || defined( __300HA__ )
-/* 標準入力からの1文字入力処理  */
-extern void charput(char);
-/* 標準出力への1文字出力処理    */
-extern char charget(void);
-/* ファイルへの1文字出力処理       */
-extern char fcharput(char, unsigned char);
-/* ファイルからの1文字入力処理    */
-extern char fcharget(char*, unsigned char);
-/* ファイルのオープン                 */
-/* 引数格納レジスタ3指定。          */
-extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);
-/* ファイルのクローズ                 */
-extern char fileclose(unsigned char);
-/* ファイルポインタの移動           */
-extern char fpseek(unsigned char, long, unsigned char);
-/* ファイルポインタの取得           */
-extern char fptell(unsigned char, long*);
-
-/* H8300・H8300L */
-#elif defined( __300__ ) || defined( __300L__ )
-/* 標準入力からの1文字入力処理  */
-extern void charput(char);
-/* 標準出力への1文字出力処理    */
-extern char charget(void);
-/* ファイルへの1文字出力処理       */
-extern char fcharput(char, unsigned char);
-/* ファイルからの1文字入力処理    */
-extern char fcharget(char*, unsigned char);
-/* ファイルのオープン                 */
-/* 引数格納レジスタ3指定。          */
-extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);
-/* ファイルのクローズ                 */
-extern char fileclose(unsigned char);
-/* ファイルポインタの移動           */
-/* 引数格納レジスタ3指定。          */
-extern char __regparam3 fpseek(unsigned char, long, unsigned char);
-/* ファイルポインタの取得           */
-extern char fptell(unsigned char, long*);
-#endif
-
-char flmod[IOSTREAM];                    /* オープンしたファイルのモード設定場所 */     
-
-
-/**************************************************************************/
-/*       open:file open                                                   */
-/*          Return value:File number (Pass)                               */
-/*                       -1          (Failure)                            */
-/**************************************************************************/
-open(char *name,                                               /* ファイル名                                        */
-     int  mode,                                                        /* オープンモード                                  */
-     int  flg)                                                 /* オープンフラグ                                  */
-{
-    char                       rcode    = 0;           /* fileopen()の戻り値             */
-       unsigned char   fileno   = 0;           /* ファイル番号                   */
-       unsigned char   openmode = 0;           /* シミュレータ用オープンモード     */
-
-
-    if(strcmp(name,"stdin")==0){          /* 標準入力ファイル   */
-             if((mode&O_RDONLY)==0){
-                      return -1;
-             }
-             flmod[STDIN] = mode;
-             return STDIN;
-       }
-
-       else if(strcmp(name,"stdout")==0){   /* 標準出力ファイル */
-             if((mode&O_WRONLY)==0){
-                      return -1;
-             }
-             flmod[STDOUT] = mode;
-             return STDOUT;
-       }
-
-       else if(strcmp(name,"stderr")==0){   /* 標準エラー出力ファイル */
-             if((mode&O_WRONLY)==0){
-                      return -1;
-             }
-             flmod[STDERR] = mode;
-             return STDERR;
-       }
-
-
-       flg = 0777;                                                     /* フラグの設定                                     */
-
-    /* ファイル名に従ってモードをチェックし、ファイル番号を返す。       */
-       /* fileopen()でオープン処理を行い、得られたファイル番号を返す。                  */
-
-       /*  引数で与えられたオープンモードをシミュレータ用に変換。                     */
-
-       if( mode == O_RDONLY )                                                          /*  "r"   */ 
-       {
-               openmode = 0x00;
-       }
-       else if( mode == (O_WRONLY | O_CREAT | O_TRUNC) )       /*  "w"   */
-       {
-               openmode = 0x01;
-       }
-       else if( mode == (O_WRONLY | O_CREAT | O_APPEND) )      /*  "a"   */
-       {
-               openmode = 0x02;
-       }
-       else if( mode == O_RDWR )                                                       /*  "r+"  */
-       {
-               openmode = 0x03;
-       }
-       else if( mode == (O_RDWR | O_CREAT | O_TRUNC) )         /*  "w+"  */
-       {
-               openmode = 0x04;
-       }
-       else if( mode == (O_RDWR | O_CREAT | O_APPEND) )        /*  "a+"  */
-       {
-               openmode = 0x05;
-       }
-       else                                                                                            /* 対象外 */
-       {       
-               return -1;
-       }
-
-    rcode=fileopen( name, openmode, &fileno );
-    if( rcode==0 )                                             /* オープン処理成功。             */
-    {
-        flmod[fileno] = mode;          /* モードを設定。                  */
-               if( fileno == 0 )
-               {
-                       flmod[fileno] = O_RDONLY;
-               }
-        return fileno;                 /* ファイル番号を返却。                 */
-    }
-    else                                       /* オープン処理失敗。                    */
-    {
-        return -1;                                     /* エラー。                                           */
-    }
-}
-
-/**************************************************************************/
-/*   close:File close                                                     */
-/*     Return value: 0 (pass)                                             */
-/*                  -1 (Failure)                                          */
-/**************************************************************************/
-close(int fileno)                                              /* ファイル番号                                     */
-{
-    char rcode = 0;                    /* fclose()の戻り値               */
-
-       /* ファイル番号をチェックし、fileclose()でファイルをクローズする。      */
-
-       /* 最小ファイル番号、最大ファイル番号チェック。                                             */
-       if( (fileno < FLMIN) || (IOSTREAM <= fileno) )                          
-       {
-               return -1;                                              /* エラー。                                           */
-       }
-       else
-       {
-               if( flmod[fileno] != 0 )                /* ファイルのオープンチェック。     */
-               {
-                       rcode = fileclose( fileno );
-               if( rcode == 0 )                /* クローズ処理成功。            */
-               {   
-                   flmod[fileno] = 0;          /* ファイルモードのリセット。        */
-                   return 0;
-               }
-               else                            /* クローズ処理失敗。            */
-               {
-                   return -1;                          /* エラー。                                           */
-               }               
-               }
-               else                                                    /* オープンされていない。              */
-               {
-                       return -1;                                      /* エラー。                                           */
-
-               }
-       }
-}
-
-/**************************************************************************/
-/* read:Data read                                                         */
-/*  Return value:Number of read characters (Pass)                         */
-/*               -1                        (Failure)                      */
-/**************************************************************************/
-read(int  fileno,                                              /* ファイル番号                             */
-     char *buf,                                                        /* 転送先バッファアドレス              */
-     int  count)                                               /* 読み込む文字数                          */
-{
-      unsigned int i;                                  /* カウント用変数                                  */
-      char         rcode   = 0;        /* fcharget()の戻り値                 */
-         char*            tmppt   = NULL;              /* 先頭アドレスの保持                    */
-         int              datanum = 0;                 /* 読み込んだデータ数                    */
-
-    /* ファイルのモードをチェックし、一文字づつ読み込みバッファに格納。          */
-
-    /* 読み込み専用 or 読み込み書き出し両用にオープンされているか判定。   */
-    if(flmod[fileno]&O_RDONLY||flmod[fileno]&O_RDWR)
-    {
-        /* ファイル番号を比較。                                                        */
-        /* 標準入力(stdin)の時           ⇒ charget()をコール。                      */
-               /* 標準出力(stdout・stderr)        ⇒ エラーを返却。                                         */
-        /* それ以外                        ⇒ fcharget()をコール。                             */
-
-        if( fileno == STDIN )                  /* 標準入力                       */
-        {
-            for(i=count; i>0; --i)
-            {
-                *buf = charget();
-                  if( *buf == CR )      /* 改行文字の置き換え。           */
-                    *buf=LF;
-                  buf++;
-            }
-                       return count;                           /* 読み込んだ文字数返却。              */
-        } 
-        else if( (fileno == STDOUT) ||
-                                (fileno == STDERR) )   /* 標準出力                                           */
-               {
-                       return -1;
-        }
-        else                            /* ファイル入力                   */
-        {
-                       tmppt = buf;                            /* 先頭アドレスの保持。                         */
-                   for( i=count; i>0; --i )
-            {
-                rcode = fcharget( buf, fileno );
-                if( rcode == 0 )        /* 処理成功                       */
-                {
-                    if( *buf == CR )    /* 改行文字の置き換え。           */
-                    {
-                                               *buf = LF;
-                                       }
-                                       datanum++;                      /* 取得文字数のインクリメント。     */
-                                       buf++;                          /* 出力先ポインタのインクリメント。*/
-                }
-                else                    /* EOF検出(-1)                    */
-                {
-                                       break;                          /* 処理終了                                           */
-                }
-            }
-                       buf = tmppt;                            /* 先頭アドレスの設定。                         */
-        }
-               return datanum;                                 /* 読み込んだ文字数返却。              */
-    }
-    else
-    {
-        return -1;                      /* エラー。                       */
-    }
-}
-
-/**************************************************************************/
-/* write:Data write                                                       */
-/*  Return value:Number of write characters (Pass)                        */
-/*               -1                         (Failure)                     */
-/**************************************************************************/
-write(int  fileno,                                             /* ファイル番号                                     */
-      char *buf,                                               /* 転送先バッファアドレス              */
-      int  count)                                              /* 書き出し文字数                          */
-{
-    unsigned int       i;                                      /* カウント用変数                                  */ 
-    char                       c;                                      /* 出力文字                                           */
-    char                       rcode   = 0;            /* fcaharget()戻り値                   */
-       int                             datanum = 0;            /* 書き出したデータ数                    */
-
-    /* ファイルのモードをチェックし、一文字づつ出力。                                     */
-
-    /* 書き出し専用 or 読み込み書き出し両用にオープンされているか判定。    */
-    if(flmod[fileno]&O_WRONLY || flmod[fileno]&O_RDWR)
-    {
-        /* ファイル番号を比較。                                                */
-        /* 標準出力(stdout・stderr)の時 ⇒ charput()をコール。              */
-               /* 標準入力(stdin)の時                    ⇒ エラーを返却。                                 */
-               /* それ以外                         ⇒ fcharput()をコール。             */
-
-               if( fileno == STDIN )                   /* 標準入力                       */
-               {
-                       return -1;
-               }
-        else if( (fileno == STDOUT) ||
-                                (fileno == STDERR) )   /* 標準出力                                   */
-        {
-            for( i = count; i > 0; --i )
-            {
-                c = *buf++;
-                charput(c);
-            }
-               return count;                           /* 書き出した文字数返却。              */
-        }
-        else                            /* ファイル出力                            */
-        {
-            for( i = count; i > 0; --i )
-            {
-                c = *buf++;
-                rcode = fcharput( c, fileno );
-                if( rcode != 0 )        /* 処理失敗                                  */
-                {
-                    return -1;
-                }
-                               datanum++;                              /* 出力文字数のインクリメント。     */
-            }
-                       return datanum;                         /* 書き出した文字数返却。              */
-        }
-    }
-    else
-       {
-        return -1;                      /* エラー                         */
-       }
-}
-
-/**************************************************************************/
-/* lseek:Definition of file read/write position                           */
-/*  Return value:Offset from the top of file read/whrte position(Pass)    */
-/*               -1              (Failure)                                */
-/*  (lseek is not supported in the console input/output)                  */
-/**************************************************************************/
-long lseek(int  fileno,                                        /* ファイル番号                                     */
-           long offset,                                        /* 読み込み/書き出し位置                */
-           int  base)                                  /* オフセットの起点                               */
-{
-       char    rcode      = 0;                         /* fpseek()の戻り値                           */
-       long    new_offset = 0;                         /* 新しいオフセット値                    */                            
-
-    /* ファイル番号を比較。                                                            */
-    /* 標準入出力(stdin・stdout・stderr)の時  ⇒ エラーを返却。                 */
-       /* ファイルの時                                                   ⇒ fpseek()をコール。               */
-       /*              fpseek() 成功 ⇒ fptell()により、新しいオフセット値の取得。   */
-       /*                      取得したオフセット値 < 0      ⇒ エラーを返却。                         */
-       /*                      それ以外                                    ⇒ オフセット値返却。           */
-       /*              fpseek() 失敗 ⇒ エラーを返却。                                                                 */
-
-       if( (fileno == STDIN)  ||
-           (fileno == STDOUT) ||
-               (fileno == STDERR) )                    /* 標準入出力の場合                       */ 
-       {
-       return -1;                                              /* エラー。                                           */
-       }
-       else                                                            /* 標準入出力以外                                  */
-       {
-               rcode = fpseek( fileno, offset, base );
-               if( rcode == 0 )                                /* ポインタ移動処理成功                 */
-               {
-                       /* fptell()で新しいオフセット値の取得。                                             */
-                       rcode = fptell( fileno, &new_offset );  
-                       if( rcode == 0 )                        /* オフセット取得成功                    */
-                       {
-                               if( new_offset < 0 )    /* オフセット値判定。                    */
-                               {
-                                       return -1;                      /* エラー。                                           */
-                               }
-                               else
-                               {
-                                       return new_offset;      /* 新しいオフセットの返却。           */
-                               }
-                       }
-                       else
-                       {
-                               return -1;                              /* エラー。                                           */
-                       }
-               }
-               else                                                    /* ポインタ移動処理失敗。              */
-               {
-                       return -1;                                      /* エラー。                                   */
-               }
-       }
-}
-
-/****************************************************************************/
-/* _INIT_IOLIB                                                              */
-/*  Initialize C library Functions, if necessary.                           */
-/*  Define USES_SIMIO on Assembler Option.                                  */
-/****************************************************************************/
-void _INIT_IOLIB(void)
-{
-FILE *fp;
-
-    for( fp = _iob; fp < _iob + _nfiles; fp++ )        /* ファイル型データの初期設定           */
-     {
-        fp->_bufptr = NULL;                     /* バッファへのポインタ                 */
-        fp->_bufcnt = 0;                        /* バッファカウント                     */
-        fp->_buflen = 0;                        /* バッファ長                                     */
-        fp->_bufbase = NULL;                    /* バッファへのベースポインタ           */
-        fp->_ioflag1 = 0;                       /* I/Oフラグ                            */
-        fp->_ioflag2 = 0;                       /* I/Oフラグ                            */
-        fp->_iofd = 0;                          /* ファイル番号                         */
-     }
-
-       // 標準入出力用ファイルをオープン。
-       // "stdin"・"stdout"・"stderr"は、ファイルが存在しなくても自動生成されます。
-       // "stdin"は、実際は"r"でオープンしなくてはならないが、
-       // 自動生成するために"w"でオープンした後I/Oフラグに"r"を設定しています。
-   if(freopen( "stdin",  "r", stdin )==NULL)   /* 標準入力ファイルをオープン。         */
-        stdin->_ioflag1 = 0xff;                                                /* オープン失敗時のアクセス禁止。       */
-       stdin->_ioflag1  = _IOREAD;                                                                     /* "r"でオープンしたことにします。                */
-    stdin->_ioflag1 |= _IOUNBUF;                                               /* データのバッファリングなしに設定。   */
-    if(freopen( "stdout", "w", stdout )==NULL) /* 標準出力ファイルをオープン。         */
-        stdout->_ioflag1 = 0xff;                                               /* オープン失敗時のアクセス禁止。       */
-    stdout->_ioflag1 |= _IOUNBUF;                                              /* オープンのバッファリングなしに設定。 */
-    if(freopen( "stderr", "w", stderr )==NULL) /* 標準エラーファイルをオープン。       */
-        stderr->_ioflag1 = 0xff;                                               /* オープン失敗時のアクセス禁止。       */
-    stderr->_ioflag1 |= _IOUNBUF;         
-}
-
-/****************************************************************************/
-/* _CLOSEALL                                                                */
-/****************************************************************************/
-
-void _CLOSEALL(void)
-{
-int i;
-
-    for( i=0; i < _nfiles; i++ )
-       {
-               /* ファイルがオープンしているかチェック。    */
-        if( _iob[i]._ioflag1 & (_IOREAD | _IOWRITE | _IORW ) )
-                       /* ファイルをクローズする。                         */ 
-            fclose( & _iob[i] );
-       }
-}
-
diff --git a/sample/h8/h83069/ch38/lowsrc.h b/sample/h8/h83069/ch38/lowsrc.h
deleted file mode 100755 (executable)
index 2b9167c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :lowsrc.h                                              */
-/*  DATE        :Mon, Aug 07, 2006                                     */
-/*  DESCRIPTION :Header file of I/O Stream file                        */
-/*  CPU TYPE    :H8/                                                   */
-/*                                                                     */
-/*  This file is generated by Renesas Project Generator (Ver.4.5).     */
-/*                                                                     */
-/***********************************************************************/
-/*Number of I/O Stream*/
-#define IOSTREAM 3
diff --git a/sample/h8/h83069/ch38/sbrk.c b/sample/h8/h83069/ch38/sbrk.c
deleted file mode 100755 (executable)
index 1617eb3..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :sbrk.c                                                */
-/*  DATE        :Mon, Aug 07, 2006                                     */
-/*  DESCRIPTION :Program of sbrk                                       */
-/*  CPU TYPE    :H8/                                                   */
-/*                                                                     */
-/*  This file is generated by Renesas Project Generator (Ver.4.5).     */
-/*                                                                     */
-/***********************************************************************/
-                  
-
-
-#include <no_float.h>
-#include <stdio.h>
-#include "typedefine.h"
-#include "sbrk.h"
-_SBYTE *sbrk(size_t);
-
-//const size_t _sbrk_size=              /* Specifies the minimum unit of */
-                                        /* the defined heap area         */
-
-#pragma pack 2
-static union {
-    _SWORD  dummy;                      /* 2バイト境界にするためのダミー */
-    _SBYTE  heap[HEAPSIZE];             /* sbrkで管理する領域の宣言      */
-} heap_area;
-#pragma unpack
-
-static _SBYTE *brk=(_SBYTE *)&heap_area;  /* sbrkで割り付けた領域の最終アドレス */
-
-/*****************************************************************************/
-/*  sbrk:データの書き出し                                                    */
-/*       リターン値:割り付けた領域の先頭アドレス(成功)                    */
-/*                   -1                          (失敗)                    */
-/*****************************************************************************/
-extern _SBYTE *sbrk(size_t size)              /* 割り付ける領域のサイズ */
-{
-    _SBYTE  *p;
-    if(brk+size > heap_area.heap+HEAPSIZE){   /* 空き領域のチェック */
-        p = (_SBYTE *)-1;
-    }
-    else {
-        p = brk;                              /* 領域の割り付け     */
-        brk += size;                          /* 最終アドレスの更新 */
-    }
-
-    return p;
-}
diff --git a/sample/h8/h83069/ch38/sbrk.h b/sample/h8/h83069/ch38/sbrk.h
deleted file mode 100755 (executable)
index aa298c5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :sbrk.h                                                */
-/*  DATE        :Mon, Aug 07, 2006                                     */
-/*  DESCRIPTION :Header file of sbrk file                              */
-/*  CPU TYPE    :H8/                                                   */
-/*                                                                     */
-/*  This file is generated by Renesas Project Generator (Ver.4.5).     */
-/*                                                                     */
-/***********************************************************************/
-/* size of area managed by sbrk */
-#define HEAPSIZE 0x420
index 27aff7e..ae25e00 100755 (executable)
@@ -1,14 +1,15 @@
 
                                .EXPORT         _ResetHandler
                                .IMPORT     __INITSCT
-                               .IMPORT         __INIT_IOLIB
+       ;                       .IMPORT         __INIT_IOLIB
                                .IMPORT     _main
 
                                .SECTION        P, CODE, ALIGN=2
 _ResetHandler:
-                               mov.l   #H'00FFFF00, er7
+       ;                       mov.l   #H'00FFFF00, er7
+                               mov.l   #H'00FFFF20, er7
                                jsr             @__INITSCT
-                               jsr             @__INIT_IOLIB
+       ;                       jsr             @__INIT_IOLIB
                                jsr             @_main
                                sleep
 
diff --git a/sample/h8/h83069/ch38/typedefine.h b/sample/h8/h83069/ch38/typedefine.h
deleted file mode 100755 (executable)
index d007711..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/***********************************************************************/
-/*                                                                     */
-/*  FILE        :typedefine.h                                          */
-/*  DATE        :Mon, Aug 07, 2006                                     */
-/*  DESCRIPTION :Aliases of Integer Type                               */
-/*  CPU TYPE    :H8/                                                   */
-/*                                                                     */
-/*  This file is generated by Renesas Project Generator (Ver.4.5).     */
-/*                                                                     */
-/***********************************************************************/
-                  
-
-
-typedef signed char _SBYTE;
-typedef unsigned char _UBYTE;
-typedef signed short _SWORD;
-typedef unsigned short _UWORD;
-typedef signed int _SINT;
-typedef unsigned int _UINT;
-typedef signed long _SDWORD;
-typedef unsigned long _UDWORD;
index 4b3675a..1e2f434 100755 (executable)
@@ -1,7 +1,7 @@
 
                                .IMPORT     _ResetHandler
-                               .IMPORT         __kernel_vector_012
                                .IMPORT         __kernel_vector_dmy
+                               .IMPORT         __kernel_vector_024
 
 
                                .SECTION    VECTTBL, DATA, ALIGN=4 
@@ -19,7 +19,7 @@ _Vectors:
                                .DATA.L         __kernel_vector_dmy             ; ベクタ9   TRAP1
                                .DATA.L         __kernel_vector_dmy             ; ベクタ10  TRAP2
                                .DATA.L         __kernel_vector_dmy             ; ベクタ11  TRAP3
-                               .DATA.L         __kernel_vector_012             ; ベクタ12  IRQ0
+                               .DATA.L         __kernel_vector_dmy             ; ベクタ12  IRQ0
                                .DATA.L         __kernel_vector_dmy             ; ベクタ13
                                .DATA.L         __kernel_vector_dmy             ; ベクタ14
                                .DATA.L         __kernel_vector_dmy             ; ベクタ15
@@ -31,7 +31,7 @@ _Vectors:
                                .DATA.L         __kernel_vector_dmy             ; ベクタ21
                                .DATA.L         __kernel_vector_dmy             ; ベクタ22
                                .DATA.L         __kernel_vector_dmy             ; ベクタ23
-                               .DATA.L         __kernel_vector_dmy             ; ベクタ24
+                               .DATA.L         __kernel_vector_024             ; ベクタ24
                                .DATA.L         __kernel_vector_dmy             ; ベクタ25
                                .DATA.L         __kernel_vector_dmy             ; ベクタ26
                                .DATA.L         __kernel_vector_dmy             ; ベクタ27
index c4591df..493af0f 100755 (executable)
@@ -4,8 +4,6 @@
  * @file  main.c
  * @brief %jp{メイン関数}%en{main}
  *
- * @version $Id: main.c,v 1.1 2006-08-16 16:27:04 ryuz Exp $
- *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
  */
 #include "kernel.h"
 
 
+/** %jp{割込み用スタック初期値} */
+void *_kernel_int_isp = (void *)0x0FFFF20;
+
+
 /** %jp{メイン関数} */
 int main()
 {
-       /** %jp{カーネルの動作開始} */
+       /* %jp{カーネルの動作開始} */
        vsta_knl();
        
        return 0;
 }
 
 
-void *_kernel_int_isp = (void *)0x00ffff00;
 
 /* end of file */
index ee6dbcd..1d536fa 100755 (executable)
@@ -4,7 +4,7 @@
  * @file  ostimer.c
  * @brief %jp{OSタイマ}%en{OS timer}
  *
- * @version $Id: ostimer.c,v 1.1 2006-08-16 16:27:04 ryuz Exp $
+ * @version $Id: ostimer.c,v 1.2 2006-11-02 10:47:09 ryuz Exp $
  *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
 #include "ostimer.h"
 
 
-#define OSTIMER_TIMER_INHNO            12                      /**< %jp{割り込みハンドラ番号} */
+#define OSTIMER_TIMER_INHNO            24                      /**< %jp{割り込みハンドラ番号} */
+
+
+#define REG_TIM16_TSTR         ((volatile UB *)0xffffff60)
+#define REG_TIM16_TSNC         ((volatile UB *)0xffffff61)
+#define REG_TIM16_TMDR         ((volatile UB *)0xffffff62)
+#define REG_TIM16_TOLR         ((volatile UB *)0xffffff63)
+#define REG_TIM16_TISRA                ((volatile UB *)0xffffff64)
+#define REG_TIM16_TISRB                ((volatile UB *)0xffffff65)
+#define REG_TIM16_TISRC                ((volatile UB *)0xffffff66)
+
+#define REG_TIM16_TCR0         ((volatile UB *)0xffffff68)
+#define REG_TIM16_TIOR0                ((volatile UB *)0xffffff69)
+#define REG_TIM16_TCNT0                ((volatile UH *)0xffffff6a)
+#define REG_TIM16_TCNT0H       ((volatile UB *)0xffffff6a)
+#define REG_TIM16_TCNT0L       ((volatile UB *)0xffffff6b)
+#define REG_TIM16_GRA0         ((volatile UH *)0xffffff6c)
+#define REG_TIM16_GRA0H                ((volatile UB *)0xffffff6c)
+#define REG_TIM16_GRA0L                ((volatile UB *)0xffffff6d)
+#define REG_TIM16_GRB0         ((volatile UH *)0xffffff6e)
+#define REG_TIM16_GRB0H                ((volatile UB *)0xffffff6e)
+#define REG_TIM16_GRB0L                ((volatile UB *)0xffffff6f)
 
 
 static void OsTimer_IrqHandler(void);          /**< %jp{タイマ割り込みハンドラ} */
@@ -31,12 +52,24 @@ void OsTimer_Initialize(VP_INT exinf)
        def_inh(OSTIMER_TIMER_INHNO, &dfinh);
        
        /* %jp{タイマ動作開始} */
+       *REG_TIM16_TSTR  &= ~0x01;              /* TCNT0動作停止 */
+       *REG_TIM16_TCR0   = 0x23;               /* φ/8でカウント, GRAのコンペアマッチでクリア */
+       *REG_TIM16_TCNT0  = 0;                  /* カウンタクリア */
+       *REG_TIM16_GRA0   = 2500 - 1;   /* 10 msec のインターバル(20MHz/8 = 2.5MHz) */
+       *REG_TIM16_TISRA &= ~0x01;              /* 割り込み要因クリア */
+       *REG_TIM16_TISRA |= 0x10;               /* 割り込み許可 */
+       *REG_TIM16_TSTR  |= 0x01;               /* TCNT0動作開始 */
 }
 
 
 /** %jp{タイマ割り込みハンドラ} */
 void OsTimer_IrqHandler(void)
 {
+       /* 割り込み要因クリア */
+       *REG_TIM16_TISRA &= ~0x01;              /* 割り込み要因クリア */
+       
+/*     Sci1_PutChar('T');      */
+       
        isig_tim();
 }
 
index 26cc6aa..cacaa26 100755 (executable)
@@ -4,7 +4,7 @@
  * @file  ostimer.c
  * @brief %jp{OSタイマ}%en{OS timer}
  *
- * @version $Id: ostimer.h,v 1.1 2006-08-16 16:27:04 ryuz Exp $
+ * @version $Id: ostimer.h,v 1.2 2006-11-02 10:47:09 ryuz Exp $
  *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
index cadfd46..ad4c9c0 100755 (executable)
@@ -4,16 +4,17 @@
  * @file  sample.c
  * @brief %jp{サンプルプログラム}%en{Sample program}
  *
- * @version $Id: sample.c,v 1.1 2006-08-16 16:27:04 ryuz Exp $
+ * @version $Id: sample.c,v 1.2 2006-11-02 10:47:09 ryuz Exp $
  *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
  */
 
-
-#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include "kernel.h"
 #include "kernel_id.h"
+#include "sci1.h"
 
 
 #define LEFT(num)      ((num) <= 1 ? 5 : (num) - 1)
@@ -64,7 +65,7 @@ void Sample_Initialize(VP_INT exinf)
 /** %jp{適当な時間待つ} */
 void rand_wait(void)
 {
-       dly_tsk(10000 /*rand()*/ % 1000 + 1);   
+       dly_tsk(rand() % 1000 + 1);
 }
 
 
@@ -79,8 +80,13 @@ void print_state(int num, char *text)
        msg = (T_PRINT_MSG *)mem;
 
        /* %jp{文字列生成} */
-/*     sprintf(msg->text, "%d : %s", num, text);       */
-
+       msg->text[0] = '0' + num;
+       msg->text[1] = ' ';
+       msg->text[2] = ':';
+       msg->text[3] = ' ';
+       strcpy(&msg->text[4], text);
+       strcat(msg->text, "\n");
+       
        /* %jp{表示タスクに送信} */
        snd_mbx(mbxid, (T_MSG *)msg);
 }
@@ -90,18 +96,16 @@ void print_state(int num, char *text)
 void Sample_Task(VP_INT exinf)
 {
        int num;
-
+       
        num = (int)exinf;
-
-       putchar('a');
-
+       
        /* %jp{いわゆる哲学者の食事の問題} */
        for ( ; ; )
        {
                /* %jp{適当な時間考える} */
                print_state(num, "thinking");
                rand_wait();
-
+               
                /* %jp{左右のフォークを取るまでループ} */
                for ( ; ; )
                {
@@ -145,11 +149,11 @@ void Sample_Task(VP_INT exinf)
 void Sample_Print(VP_INT exinf)
 {
        T_PRINT_MSG *msg;
-
+       
        for ( ; ; )
        {
                rcv_mbx(mbxid, (T_MSG **)&msg);
-       /*      printf("%s\n", msg->text);      */
+               Sci1_PutString(msg->text);
                rel_mpf(mpfid, msg);
        }
 }
index aa5a5cc..cd9844c 100755 (executable)
@@ -4,7 +4,7 @@
  * @file  sample.c
  * @brief %jp{サンプルプログラム}%en{Sample program}
  *
- * @version $Id: sample.h,v 1.1 2006-08-16 16:27:04 ryuz Exp $
+ * @version $Id: sample.h,v 1.2 2006-11-02 10:47:09 ryuz Exp $
  *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
diff --git a/sample/h8/h83069/sci1.c b/sample/h8/h83069/sci1.c
new file mode 100755 (executable)
index 0000000..2500f25
--- /dev/null
@@ -0,0 +1,96 @@
+/** 
+ *  Sample program for Hyper Operating System V4 Advance
+ *
+ * @file  sci1.c
+ * @brief %jp{SCI1への出力}%en{SCI1 device driver}
+ *
+ * @version $Id: sci1.c,v 1.1 2006-11-02 10:47:09 ryuz Exp $
+ *
+ * Copyright (C) 1998-2006 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#include "kernel.h"
+
+
+
+#define REG_SCI1_SMR           ((volatile UB*)0xffffffb8)
+#define REG_SCI1_BRR           ((volatile UB*)0xffffffb9)
+#define REG_SCI1_SCR           ((volatile UB*)0xffffffba)
+#define REG_SCI1_TDR           ((volatile UB*)0xffffffbb)
+#define REG_SCI1_SSR           ((volatile UB*)0xffffffbc)
+#define REG_SCI1_RDR           ((volatile UB*)0xffffffbd)
+#define REG_SCI1_SCMR          ((volatile UB*)0xffffffbe)
+
+
+
+/* %jp{SCI1 の初期化} */
+void Sci1_Initialize(void)
+{
+       *REG_SCI1_SCR  = 0;
+       *REG_SCI1_SMR  = 0;
+       *REG_SCI1_BRR  = 15;            /* %jp{ボーレート設定(38400bps)} */
+       *REG_SCI1_SCR |= 0x20;          /* %jp{送信許可} */
+}
+
+/* %jp{1文字出力} */
+void Sci1_PutChar(int c)
+{
+/*     return; */
+       
+       while ( ((*REG_SCI1_SSR) & 0x80) != 0x80 )
+               ;
+       
+       *REG_SCI1_TDR = (UB)c;
+       
+       *REG_SCI1_SSR &= 0x7f;
+}
+
+/* %jp{文字列出力} */
+void Sci1_PutString(const char *text)
+{
+       while ( *text != '\0' )
+       {
+               if ( *text == '\n' )
+               {
+                       Sci1_PutChar('\r');
+                       Sci1_PutChar('\n');
+               }
+               else
+               {
+                       Sci1_PutChar(*text);
+               }
+               
+               text++;
+       }
+}
+
+
+
+
+char Sci1_hex2asc(int a)
+{
+       if ( a < 10 )
+       {
+               return '0' + a;
+       }
+       return 'a' + a - 10;
+}
+
+
+void Sci1_PutHexByte(char c)
+{
+       Sci1_PutChar(Sci1_hex2asc((c >> 4) & 0xf));
+       Sci1_PutChar(Sci1_hex2asc((c >> 0) & 0xf));
+}
+
+void Sci1_PutHexWord(int i)
+{
+       Sci1_PutHexByte((i >> 8) & 0xff);
+       Sci1_PutHexByte((i >> 0) & 0xff);
+}
+
+
+
+/* end of file */
diff --git a/sample/h8/h83069/sci1.h b/sample/h8/h83069/sci1.h
new file mode 100755 (executable)
index 0000000..8d11017
--- /dev/null
@@ -0,0 +1,37 @@
+/** 
+ *  Sample program for Hyper Operating System V4 Advance
+ *
+ * @file  sci1.h
+ * @brief %jp{SCI1への出力}%en{SCI1 device driver}
+ *
+ * @version $Id: sci1.h,v 1.1 2006-11-02 10:47:09 ryuz Exp $
+ *
+ * Copyright (C) 1998-2006 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+#ifndef __ostimer_h__
+#define __ostimer_h__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void Sci1_Initialize(void);                                    /* %jp{SCI1 の初期化} */
+void Sci1_PutChar(int c);                                      /* %jp{1文字出力} */
+void Sci1_PutString(const char *text);         /* %jp{文字列出力} */
+
+void Sci1_PutHexByte(char c);
+void Sci1_PutHexWord(int i);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __ostimer_h__ */
+
+
+/* end of file */
index 2619bb4..9c3c6ab 100755 (executable)
@@ -4,7 +4,7 @@
  * @file  system.cfg
  * @brief %jp{サンプルのコンフィギュレーション}
  *
- * @version $Id: system.cfg,v 1.1 2006-08-16 16:27:04 ryuz Exp $
+ * @version $Id: system.cfg,v 1.2 2006-11-02 10:47:09 ryuz Exp $
  *
  * Copyright (C) 1998-2006 by Project HOS
  * http://sourceforge.jp/projects/hos/
 
 
 /* %jp{カーネル独自の設定}%en{kernel} */
-KERNEL_HEP_MEM(65536, NULL);
-KERNEL_MAX_TSKID(16);
-KERNEL_MAX_SEMID(16);
+KERNEL_HEP_MEM(512, NULL);
+KERNEL_MAX_TSKID(8);
+KERNEL_MAX_SEMID(8);
+KERNEL_MAX_FLGID(8);
+KERNEL_MAX_MBXID(8);
+KERNEL_MAX_MPFID(8);
 
 
 /* %jp{OSタイマの設定}%en{OS timer} */
@@ -24,12 +27,12 @@ ATT_INI({TA_HLNG, 0, OsTimer_Initialize});
 /* %jp{サンプル}%en{Sample program} */
 INCLUDE("\"sample.h\"");
 ATT_INI({TA_HLNG, 0, Sample_Initialize});
-CRE_TSK(TSKID_PRINT,   {TA_HLNG, 1, Sample_Print, 1, 1024, NULL});
-CRE_TSK(TSKID_SAMPLE1, {TA_HLNG, 1, Sample_Task, 2, 1024, NULL});
-CRE_TSK(TSKID_SAMPLE2, {TA_HLNG, 2, Sample_Task, 2, 1024, NULL});
-CRE_TSK(TSKID_SAMPLE3, {TA_HLNG, 3, Sample_Task, 2, 1024, NULL});
-CRE_TSK(TSKID_SAMPLE4, {TA_HLNG, 4, Sample_Task, 2, 1024, NULL});
-CRE_TSK(TSKID_SAMPLE5, {TA_HLNG, 5, Sample_Task, 2, 1024, NULL});
+CRE_TSK(TSKID_PRINT,   {TA_HLNG, 1, Sample_Print, 1, 256, NULL});
+CRE_TSK(TSKID_SAMPLE1, {TA_HLNG, 1, Sample_Task, 2, 512, NULL});
+CRE_TSK(TSKID_SAMPLE2, {TA_HLNG, 2, Sample_Task, 2, 512, NULL});
+CRE_TSK(TSKID_SAMPLE3, {TA_HLNG, 3, Sample_Task, 2, 512, NULL});
+CRE_TSK(TSKID_SAMPLE4, {TA_HLNG, 4, Sample_Task, 2, 512, NULL});
+CRE_TSK(TSKID_SAMPLE5, {TA_HLNG, 5, Sample_Task, 2, 512, NULL});
 CRE_SEM(1, {TA_TFIFO, 1, 1});
 CRE_SEM(2, {TA_TFIFO, 1, 1});
 CRE_SEM(3, {TA_TFIFO, 1, 1});