OSDN Git Service

Add toppers-jsp/ in nxtOSEK_v205b0.zip. They are licensed under TOPPERS license.
[nxt-jsp/etrobo-atk.git] / nxtOSEK / toppers_jsp / tools / H8-RENESAS / sample1.h
diff --git a/nxtOSEK/toppers_jsp/tools/H8-RENESAS/sample1.h b/nxtOSEK/toppers_jsp/tools/H8-RENESAS/sample1.h
new file mode 100644 (file)
index 0000000..1035712
--- /dev/null
@@ -0,0 +1,189 @@
+/*
+ *  TOPPERS/JSP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Just Standard Profile Kernel
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  ¾åµ­Ãøºî¸¢¼Ô¤Ï¡¤°Ê²¼¤Î (1)¡Á(4) ¤Î¾ò·ï¤«¡¤Free Software Foundation 
+ *  ¤Ë¤è¤Ã¤Æ¸øɽ¤µ¤ì¤Æ¤¤¤ë GNU General Public License ¤Î Version 2 ¤Ëµ­
+ *  ½Ò¤µ¤ì¤Æ¤¤¤ë¾ò·ï¤òËþ¤¿¤¹¾ì¹ç¤Ë¸Â¤ê¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¡ÊËÜ¥½¥Õ¥È¥¦¥§¥¢
+ *  ¤ò²þÊѤ·¤¿¤â¤Î¤ò´Þ¤à¡¥°Ê²¼Æ±¤¸¡Ë¤ò»ÈÍÑ¡¦Ê£À½¡¦²þÊÑ¡¦ºÆÇÛÉۡʰʲ¼¡¤
+ *  ÍøÍѤȸƤ֡ˤ¹¤ë¤³¤È¤ò̵½þ¤ÇµöÂú¤¹¤ë¡¥
+ *  (1) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¥½¡¼¥¹¥³¡¼¥É¤Î·Á¤ÇÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¤¾åµ­¤ÎÃøºî
+ *      ¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­¤Î̵Êݾڵ¬Ä꤬¡¤¤½¤Î¤Þ¤Þ¤Î·Á¤Ç¥½¡¼
+ *      ¥¹¥³¡¼¥ÉÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¡¥
+ *  (2) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤¥é¥¤¥Ö¥é¥ê·Á¼°¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
+ *      ÍѤǤ­¤ë·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
+ *      ¼Ô¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ­¤ÎÃøºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­
+ *      ¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
+ *  (3) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤µ¡´ï¤ËÁȤ߹þ¤à¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
+ *      ÍѤǤ­¤Ê¤¤·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¤¤¤º¤ì¤«¤Î¾ò·ï¤òËþ¤¿¤¹¤³
+ *      ¤È¡¥
+ *    (a) ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥­¥å¥á¥ó¥È¡ÊÍøÍѼԥޥ˥奢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ­¤ÎÃø
+ *        ºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ­¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
+ *    (b) ºÆÇÛÉۤηÁÂÖ¤ò¡¤Ê̤ËÄê¤á¤ëÊýË¡¤Ë¤è¤Ã¤Æ¡¤TOPPERS¥×¥í¥¸¥§¥¯¥È¤Ë
+ *        Êó¹ð¤¹¤ë¤³¤È¡¥
+ *  (4) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤ë¤¤¤«¤Ê¤ë»
+ *      ³²¤«¤é¤â¡¤¾åµ­Ãøºî¸¢¼Ô¤ª¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤òÌÈÀÕ¤¹¤ë¤³¤È¡¥
+ * 
+ *  ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¤ÌµÊݾڤÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡¥¾åµ­Ãøºî¸¢¼Ô¤ª
+ *  ¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤Ï¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ë´Ø¤·¤Æ¡¤¤½¤ÎŬÍѲÄǽÀ­¤â
+ *  ´Þ¤á¤Æ¡¤¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤ï¤Ê¤¤¡¥¤Þ¤¿¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľ
+ *  ÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤¿¤¤¤«¤Ê¤ë»³²¤Ë´Ø¤·¤Æ¤â¡¤¤½¤ÎÀÕǤ¤òÉé¤ï¤Ê¤¤¡¥
+ *
+ *  @(#) $Id: sample1.h,v 1.10 2007/03/26 07:08:55 honda Exp $
+ */
+
+/*
+ *  ¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à(1)¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
+ */
+
+#include <t_services.h>
+
+/*
+ *  ³Æ¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ¤ÎÄêµÁ
+ */
+
+#define MAIN_PRIORITY  5               /* ¥á¥¤¥ó¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ */
+                                       /* HIGH_PRIORITY ¤è¤ê¹â¤¯¤¹¤ë¤³¤È */
+
+#define HIGH_PRIORITY  9               /* ÊÂÎó¤Ë¼Â¹Ô¤µ¤ì¤ë¥¿¥¹¥¯¤ÎÍ¥ÀèÅÙ */
+#define MID_PRIORITY   10
+#define LOW_PRIORITY   11
+
+/*
+ *  ¥¿¡¼¥²¥Ã¥È°Í¸¤ÎÄêµÁ¡ÊCPUÎã³°¥Ï¥ó¥É¥é¤Îµ¯Æ°ÊýË¡¤Ê¤É¡Ë
+ */
+
+#ifdef M68K
+
+#define CPUEXC1                5               /* ¥¼¥í½ü»»Îã³° */
+#define RAISE_CPU_EXCEPTION    syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
+
+#elif defined(SH3)
+
+#define CPUEXC1                224             /* ¥í¡¼¥É¥¨¥é¡¼Îã³° */
+#define RAISE_CPU_EXCEPTION    (*((volatile int *) 0xFFFFFEC1))
+
+#elif defined(SH1)
+
+#define CPUEXC1                9               /* CPU¥¢¥É¥ì¥¹¥¨¥é¡¼Îã³° */
+#define RAISE_CPU_EXCEPTION    (*((volatile int *) 0xFFFFFEC1))
+#ifdef TOKIWA_SH1
+#define        STACK_SIZE      512             /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#endif /* TOKIWA_SH1 */
+
+#elif defined(ARMV4)
+
+#define CPUEXC1                4               /* ¥í¡¼¥É¥¨¥é¡¼Îã³° */
+#define RAISE_CPU_EXCEPTION    (*((volatile int *) 0xFFFFFEC1))
+
+#elif defined(V850)
+
+#elif defined(H8)
+
+#undef CPUEXC1                         /* CPUÎã³°¥Ï¥ó¥É¥é¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ */
+                                                       
+#ifdef __RENESAS_VERSION__             /* Ê¸»úÆþÎϤ¹¤ë¥·¥ê¥¢¥ë¥Ý¡¼¥ÈID */
+#define        TASK_PORTID     1
+#else /*  __RENESAS_VERSION__  */
+#ifdef __GNUC__
+#define        TASK_PORTID     2
+#endif /* __GNUC__ */
+#endif /*  __RENESAS_VERSION__  */
+
+#elif defined(H8S)
+
+#undef CPUEXC1                         /* CPUÎã³°¥Ï¥ó¥É¥é¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ */
+#define LOOP_REF       4000L           /* Â®Åٷ׬ÍѤΥ롼¥×²ó¿ô */
+
+#elif defined(MICROBLAZE)
+
+#undef CPUEXC1                         /* CPUÎã³°¥Ï¥ó¥É¥é¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ */
+#define STACK_SIZE     2048            /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+
+#elif defined(IA32)
+
+#define CPUEXC1                0               /* ¥¼¥í½ü»»Îã³° */
+#define RAISE_CPU_EXCEPTION   syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
+#define OMIT_VGET_TIM
+
+#elif defined(TMS320C54X)
+
+#undef CPUEXC1                         /* CPUÎã³°¥Ï¥ó¥É¥é¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ */
+#define STACK_SIZE     320             /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#define LOOP_REF       500000L         /* Â®Åٷ׬ÍѤΥ롼¥×²ó¿ô */
+
+#elif defined(XSTORMY16)
+
+#define CPUEXC1                0               /* Ìµ¸úÌ¿ÎáÎã³° */
+#define RAISE_CPU_EXCEPTION    __asm__( ".hword 0x0006" )
+#define OMIT_VGET_TIM                  /* vxget_tim()¤ÏÈ󥵥ݡ¼¥È */
+#define LOOP_REF       4000L           /* Â®Åٷ׬ÍѤΥ롼¥×²ó¿ô */
+#define STACK_SIZE     256             /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#define TASK_PORTID    2               /* SIO¤Ï¥Ý¡¼¥È2¤òÍѤ¤¤ë */
+
+#elif defined(MIPS3)
+
+#define CPUEXC1     Bp      /* ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥ÈÎã³°¡Ê¥¼¥í½ü»»»þ¤ËȯÀ¸¡Ë */
+#define RAISE_CPU_EXCEPTION   syslog(LOG_NOTICE, "zerodiv = %d", 10 / 0)
+
+#elif defined(M16C) && defined(OAKS16)
+
+#define CPUEXC1     32      /* CPUÎã³°¥Ï¥ó¥É¥éÈÖ¹æ */
+#define RAISE_CPU_EXCEPTION asm("   int #32") /* ¥½¥Õ¥È¥¦¥§¥¢³ä¹þ¤ßȯÀ¸ */
+#define STACK_SIZE  512     /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#define TASK_PORTID 2       /* Ê¸»úÆþÎϤ¹¤ë¥·¥ê¥¢¥ë¥Ý¡¼¥ÈID */
+
+#elif defined(M16C) && defined(OAKS16_MINI)
+
+#define CPUEXC1     32      /* CPUÎã³°¥Ï¥ó¥É¥éÈÖ¹æ */
+#define RAISE_CPU_EXCEPTION asm("   int #32") /* ¥½¥Õ¥È¥¦¥§¥¢³ä¹þ¤ßȯÀ¸ */
+#define STACK_SIZE  384     /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#define TASK_PORTID 2       /* Ê¸»úÆþÎϤ¹¤ë¥·¥ê¥¢¥ë¥Ý¡¼¥ÈID */
+
+#elif defined(LINUX)
+
+#undef CPUEXC1                         /* CPUÎã³°¥Ï¥ó¥É¥é¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤ */
+#define OMIT_VGET_TIM
+#define LOOP_REF       4000000         /* Â®Åٷ׬ÍѤΥ롼¥×²ó¿ô */
+
+#elif defined(NIOS2)
+
+#define CPUEXC1                0                 /* Ì¤¼ÂÁõÌ¿ÎáÎã³° */
+#define RAISE_CPU_EXCEPTION      Asm("div zero, zero, zero");
+
+#endif
+
+/*
+ *  ¥¿¡¼¥²¥Ã¥È¤Ë°Í¸¤¹¤ë²ÄǽÀ­¤Î¤¢¤ëÄê¿ô¤ÎÄêµÁ
+ */
+
+#ifndef TASK_PORTID
+#define        TASK_PORTID     1               /* Ê¸»úÆþÎϤ¹¤ë¥·¥ê¥¢¥ë¥Ý¡¼¥ÈID */
+#endif /* TASK_PORTID */
+
+#ifndef STACK_SIZE
+#define        STACK_SIZE      8192            /* ¥¿¥¹¥¯¤Î¥¹¥¿¥Ã¥¯¥µ¥¤¥º */
+#endif /* STACK_SIZE */
+
+#ifndef LOOP_REF
+#define LOOP_REF       1000000         /* Â®Åٷ׬ÍѤΥ롼¥×²ó¿ô */
+#endif /* LOOP_REF */
+
+/*
+ *  ´Ø¿ô¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À
+ */
+#ifndef _MACRO_ONLY
+
+extern void    task(VP_INT tskno);
+extern void    main_task(VP_INT exinf);
+extern void    tex_routine(TEXPTN texptn, VP_INT tskno);
+extern void    cyclic_handler(VP_INT exinf);
+extern void    cpuexc_handler(VP p_excinf);
+
+#endif /* _MACRO_ONLY */