Changeset 167 for UsbWattMeter/trunk/asp_dcre
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (8 years ago)
- Location:
- UsbWattMeter/trunk/asp_dcre
- Files:
-
- 134 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/asp_dcre/arch/ccrx/tool_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Copyright (C) 2007-2010 by Witz Corporation, JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * t_stddef.h ÌJ«˶ilTX RXc[`FCpj44 * t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用) 49 45 * 50 * ±ÌCN[ht@CÍCt_stddef.h ÌæªÅCN[h³êéD51 * ¼Ìt@C©çͼÚCN[h·é±ÆÍÈ¢D¼ÌCN[h52 * t@CÉæ§Áijêé½ßC¼ÌCN[ht@CÉ˶µ53 * ÄÍÈçÈ¢D46 * このインクルードファイルは,t_stddef.h の先頭でインクルードされる. 47 * 他のファイルからは直接インクルードすることはない.他のインクルード 48 * ファイルに先立って処理されるため,他のインクルードファイルに依存し 49 * てはならない. 54 50 */ 55 51 … … 58 54 59 55 /* 60 * RpCÌg£@\̽ßÌ}Nè`56 * コンパイラの拡張機能のためのマクロ定義 61 57 */ 62 58 /* 63 * inline ¯ÊqÍOè`𶬵Ȣ.59 * inline 識別子は外部定義を生成しない. 64 60 */ 65 61 #define Inline static inline 66 62 67 63 /* 68 * CCAZuÍ{RpCÅÍ69 * #pragma inline_asm ÌÝÌT|[gÆÈé½ß,70 * asm/Asm è`ÍsíÈ¢.64 * インラインアセンブラは本コンパイラでは 65 * #pragma inline_asmのみのサポートとなるため, 66 * asm/Asm定義は行わない. 71 67 */ 72 68 73 69 /* 74 * NoReturn / alignof Í{RpCÅÍT|[g³êÈ¢.75 * offsetof Ístddef.hÌè`ðp·é.70 * NoReturn / alignofは本コンパイラではサポートされない. 71 * offsetofはstddef.hの定義を利用する. 76 72 */ 77 73 #define NoReturn … … 79 75 80 76 /* 81 * J«ÌWCN[ht@CÌp77 * 開発環境の標準インクルードファイルの利用 82 78 * 83 * NULL Ìè`ðstddef.h©çCINT_MAXCINT_MINCUINT_MAXCLONG_MAXC84 * LONG_MIN CULONG_MAXCCHAR_BITÌè`ðlimits.h©çæèÞD79 * NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX, 80 * LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む. 85 81 * 86 * C++/EC++ ÅÍCWdlãͱêçÌCN[ht@CªpÓ³êÄ87 * ¢éÆÍÀçÈ¢ÌÅÓªKvÅ éiÙÆñÇÌJ«ÅpÓ³ê88 * Ä¢éjD82 * C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて 83 * いるとは限らないので注意が必要である(ほとんどの開発環境で用意され 84 * ている). 89 85 */ 90 86 #ifndef TOPPERS_MACRO_ONLY … … 95 91 96 92 /* 97 * RpC˶Ìf[^^Ìè`93 * コンパイラ依存のデータ型の定義 98 94 * 99 * stdint.h ðCN[h·é95 * stdint.hをインクルードする 100 96 */ 101 97 #ifndef TOPPERS_MACRO_ONLY … … 105 101 106 102 /* 107 * ®¬_^ÉÖ·éè`103 * 浮動小数点型に関する定義 108 104 * 109 * ºLÌè`Ídbl_size = 8IvVðwèµ½êÌÝLøÆ·é±Æ.105 * 下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること. 110 106 */ 111 107 #ifndef TOPPERS_MACRO_ONLY 112 typedef float float32_t; /* IEEE754 ÌP¸x®¬_*/113 typedef double double64_t; /* IEEE754 Ì{¸x®¬_*/108 typedef float float32_t; /* IEEE754準拠の単精度浮動小数点数 */ 109 typedef double double64_t; /* IEEE754準拠の倍精度浮動小数点数 */ 114 110 #endif /* TOPPERS_MACRO_ONLY */ 115 111 … … 121 117 122 118 /* 123 * óxÌè`119 * 空ラベルの定義 124 120 * 125 * {RpCÅÍ嫳[ÌzñÍRpCG[ÉÈé½ß,126 * TCY1ÉÄè`·é.121 * 本コンパイラでは大きさゼロの配列はコンパイルエラーになるため, 122 * サイズ1にて定義する. 127 123 */ 128 124 #define TOPPERS_EMPTY_LABEL( type, symbol ) type symbol[ 1 ] -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/logtrace/trace_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * $Id$ … … 45 41 46 42 /* 47 * g[XO@\43 * トレースログ機能 48 44 */ 49 45 … … 54 50 55 51 /* 56 * g[XOobt@Æ»êÉANZX·é½ßÌ|C^57 */ 58 SYSLOG trace_buffer[TCNT_TRACE_BUFFER]; /* g[XOobt@*/59 uint_t trace_count; /* g[XOobt@ÌOÌ*/60 uint_t trace_head; /* æªÌg[XOÌi[Êu*/61 uint_t trace_tail; /* Ìg[XOÌi[Êu*/62 MODE trace_mode; /* g[X[h*/63 64 /* 65 * g[XO@\Ìú»52 * トレースログバッファとそれにアクセスするためのポインタ 53 */ 54 SYSLOG trace_buffer[TCNT_TRACE_BUFFER]; /* トレースログバッファ */ 55 uint_t trace_count; /* トレースログバッファ中のログの数 */ 56 uint_t trace_head; /* 先頭のトレースログの格納位置 */ 57 uint_t trace_tail; /* 次のトレースログの格納位置 */ 58 MODE trace_mode; /* トレースモード */ 59 60 /* 61 * トレースログ機能の初期化 66 62 */ 67 63 void … … 77 73 78 74 /* 79 * g[XOÌJn75 * トレースログの開始 80 76 */ 81 77 ER … … 92 88 93 89 /* 94 * g[XOÌÝ90 * トレースログの書込み 95 91 */ 96 92 ER … … 103 99 104 100 /* 105 * g[XÌÝè101 * トレース時刻の設定 106 102 * 107 * LOG_WRI_LOG_ENTER ©çÄÎê½êÉp_trace->logtimð«·108 * ¦ÄµÜ¤ÌÍC¿ª«¢ªCwri_logÌûÅã«·é½ßâ109 * èÍÈ¢D103 * LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換 104 * えてしまうのは気持ちが悪いが,wri_logの方で上書きするため問 105 * 題はない. 110 106 */ 111 107 p_trace->logtim = TRACE_GET_TIM(); 112 108 113 109 /* 114 * g[Xobt@ÉL^110 * トレースバッファに記録 115 111 */ 116 112 trace_buffer[trace_tail] = *p_trace; … … 136 132 137 133 /* 138 * g[XOÌÇoµ134 * トレースログの読出し 139 135 */ 140 136 ER … … 147 143 148 144 /* 149 * g[XOobt@©çÌæoµ145 * トレースログバッファからの取出し 150 146 */ 151 147 if (trace_count > 0U) { … … 167 163 168 164 /* 169 * g[XOðoÍ·é½ßÌCuÖ165 * トレースログを出力するためのライブラリ関数 170 166 */ 171 167 … … 213 209 214 210 /* 215 * AZu¾êÅLq³êéR[h©çg[XOðoÍ·é½ßÌÖ216 * 211 * アセンブリ言語で記述されるコードからトレースログを出力するための関 212 * 数 217 213 */ 218 214 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/logtrace/trace_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * $Id$ … … 45 41 46 42 /* 47 * g[XOÉÖ·éÝè43 * トレースログに関する設定 48 44 * 49 * ±ÌCN[ht@CÍCtarget_config.h¨æÑtarget_syssvc.hÌ50 * Ý©çCN[h³êéDܽCg[XO@\Ìú»âL^ÌJ51 * n^â~Cg[XOÌ_vðs¤vO©çCN[h·é52 * ±ÆðzèµÄ¢éD45 * このインクルードファイルは,target_config.hおよびtarget_syssvc.hの 46 * みからインクルードされる.また,トレースログ機能の初期化や記録の開 47 * 始/停止,トレースログのダンプを行うプログラムからインクルードする 48 * ことを想定している. 53 49 */ 54 50 … … 57 53 58 54 /* 59 * g[XOobt@ÌTCY55 * トレースログバッファのサイズ 60 56 */ 61 57 #ifndef TCNT_TRACE_BUFFER … … 64 60 65 61 /* 66 * g[XÌæ¾û@62 * トレース時刻の取得方法 67 63 */ 68 64 #ifndef TRACE_GET_TIM … … 73 69 74 70 /* 75 * g[XOÌf[^\¢71 * トレースログのデータ構造 76 72 * 77 * VXeO@\ÌOîñÌf[^\¢Æ¯¶àÌðp¢éD73 * システムログ機能のログ情報のデータ構造と同じものを用いる. 78 74 */ 79 75 #include <t_syslog.h> … … 81 77 82 78 /* 83 * g[XOobt@Æ»êÉANZX·é½ßÌ|C^79 * トレースログバッファとそれにアクセスするためのポインタ 84 80 */ 85 extern TRACE trace_buffer[]; /* g[XOobt@*/86 extern uint_t trace_count; /* g[XOobt@ÌOÌ*/87 extern uint_t trace_head; /* æªÌg[XOÌi[Êu*/88 extern uint_t trace_tail; /* Ìg[XOÌi[Êu*/89 extern uint_t trace_lost; /* ¸íê½g[XÌ*/81 extern TRACE trace_buffer[]; /* トレースログバッファ */ 82 extern uint_t trace_count; /* トレースログバッファ中のログの数 */ 83 extern uint_t trace_head; /* 先頭のトレースログの格納位置 */ 84 extern uint_t trace_tail; /* 次のトレースログの格納位置 */ 85 extern uint_t trace_lost; /* 失われたトレースの数 */ 90 86 91 87 #endif /* TOPPERS_MACRO_ONLY */ 92 88 93 89 /* 94 * g[X[hÌè`90 * トレースモードの定義 95 91 */ 96 #define TRACE_STOP UINT_C(0x00) /* g[Xâ~*/97 #define TRACE_RINGBUF UINT_C(0x01) /* Oobt@[h*/98 #define TRACE_AUTOSTOP UINT_C(0x02) /* ©®â~[h*/99 #define TRACE_CLEAR UINT_C(0x04) /* g[XOÌNA*/92 #define TRACE_STOP UINT_C(0x00) /* トレース停止 */ 93 #define TRACE_RINGBUF UINT_C(0x01) /* リングバッファモード */ 94 #define TRACE_AUTOSTOP UINT_C(0x02) /* 自動停止モード */ 95 #define TRACE_CLEAR UINT_C(0x04) /* トレースログのクリア */ 100 96 101 97 #ifndef TOPPERS_MACRO_ONLY 102 98 103 99 /* 104 * g[XO@\Ìú»100 * トレースログ機能の初期化 105 101 * 106 * g[XO@\ðú»·éDú»[`ƵÄo^·é±Æðz107 * èµÄ¢éDøÉæèÌ®ìðs¤D102 * トレースログ機能を初期化する.初期化ルーチンとして登録することを想 103 * 定している.引数により次の動作を行う. 108 104 * 109 * TRACE_STOP Fú»ÌÝÅg[XÍJnµÈ¢D110 * TRACE_RINGBUF FOobt@[hÅg[XðJnD111 * TRACE_AUTOSTOP F©®â~[hÅg[XðJnD105 * TRACE_STOP:初期化のみでトレースは開始しない. 106 * TRACE_RINGBUF:リングバッファモードでトレースを開始. 107 * TRACE_AUTOSTOP:自動停止モードでトレースを開始. 112 108 */ 113 109 extern void trace_initialize(intptr_t exinf); 114 110 115 111 /* 116 * g[XOÌJn112 * トレースログの開始 117 113 * 118 * g[XOÌL^ðJn^â~·éDøÉæèÌ®ìðs¤D114 * トレースログの記録を開始/停止する.引数により次の動作を行う. 119 115 * 120 * TRACE_STOP Fg[Xðâ~D121 * TRACE_RINGBUF FOobt@[hÅg[XðJnD122 * TRACE_AUTOSTOP F©®â~[hÅg[XðJnD123 * TRACE_CLEAR Fg[XOðNAD116 * TRACE_STOP:トレースを停止. 117 * TRACE_RINGBUF:リングバッファモードでトレースを開始. 118 * TRACE_AUTOSTOP:自動停止モードでトレースを開始. 119 * TRACE_CLEAR:トレースログをクリア. 124 120 */ 125 121 extern ER trace_sta_log(MODE mode); 126 122 127 123 /* 128 * g[XOÌÝ124 * トレースログの書込み 129 125 */ 130 126 extern ER trace_wri_log(TRACE *p_trace); 131 127 132 128 /* 133 * g[XOÌÇoµ129 * トレースログの読出し 134 130 */ 135 131 extern ER trace_rea_log(TRACE *p_trace); 136 132 137 133 /* 138 * g[XOÌ_vitrace_dump.cj134 * トレースログのダンプ(trace_dump.c) 139 135 * 140 * g[XOð_v·éDI¹[`ƵÄo^·é±Æàzè141 * µÄ¢éDøƵÄC_væÆÈé¶oÍÖÖÌ|C^ðn·D142 * ^[Qbg˶Ìáx¶oÍðp·éêÉÍCtarget_putcðn143 * ·D136 * トレースログをダンプする.終了処理ルーチンとして登録することも想定 137 * している.引数として,ダンプ先となる文字出力関数へのポインタを渡す. 138 * ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡 139 * す. 144 140 */ 145 141 extern void trace_dump(intptr_t exinf); 146 142 147 143 /* 148 * g[XOðoÍ·é½ßÌCuÖ144 * トレースログを出力するためのライブラリ関数 149 145 */ 150 146 extern void trace_write_0(uint_t type); … … 155 151 156 152 /* 157 * g[XOðoÍ·é½ßÌ}N153 * トレースログを出力するためのマクロ 158 154 */ 159 155 … … 174 170 175 171 /* 176 * g[XOû@ÌÝè172 * トレースログ方法の設定 177 173 */ 178 174 #define LOG_TSKSTAT(p_tcb) trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/logtrace/trace_dump.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * $Id$ … … 43 39 44 40 /* 45 * g[XOÌ_v41 * トレースログのダンプ 46 42 */ 47 43 … … 51 47 52 48 /* 53 * J[lîñÌæoµ49 * カーネル情報の取出し 54 50 */ 55 51 static intptr_t … … 100 96 101 97 /* 102 * g[XOÌ\¦98 * トレースログの表示 103 99 */ 104 100 static void … … 144 140 145 141 /* 146 * g[XOÌ_v142 * トレースログのダンプ 147 143 */ 148 144 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/makeoffset.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 46 42 47 43 /* 48 * offset.inc ( àµÍ offset.h) É¢Ä49 * 50 * offset.inc Í\¢ÌÌÁèÌvfª\¢ÌÌ檩ç½oCgÚÉ51 * ¶Ý·é©Æ¢¤±Æâ, ÁèÌrbgtB[hªæª©ç52 * ½oCgæ̽rbgÚɶݷé©, Æ¢¤îñð53 * AZu¾êt@CÉ^¦é½ßɶݵĢé.54 * 55 * offset.inc t@CÌgÍ, PÈéV{è`t@CÅ é.56 * V{Æ¢ÁÄàè`·éV{̼ÌÉÍp^[ª è,57 * 嫪¯ÄÌ3íÞɪÞÅ«é.58 * 59 * < \¢Ì¼>_<vf¼> (á) TCB_sp, TCB_pc, TCB_enatex ÈÇ60 * < \¢Ì¼>_<vf¼>_bit (á) TCB_enatex_bit ÈÇ61 * < \¢Ì¼>_<vf¼>_mask (á) TCB_enatex_mask ÈÇ62 * 63 * ( á)44 * offset.inc (もしくは offset.h) について 45 * 46 * offset.inc は構造体の特定の要素が構造体の先頭から何バイト目に 47 * 存在するかということや, 特定のビットフィールドが先頭から 48 * 何バイト先の何ビット目に存在するか, という情報を 49 * アセンブリ言語ファイルに与えるために存在している. 50 * 51 * offset.inc ファイルの中身は, 単なるシンボル定義ファイルである. 52 * シンボルといっても定義するシンボルの名称にはパターンがあり, 53 * 大きく分けて次の3種類に分類できる. 54 * 55 * <構造体名>_<要素名> (例) TCB_sp, TCB_pc, TCB_enatex など 56 * <構造体名>_<要素名>_bit (例) TCB_enatex_bit など 57 * <構造体名>_<要素名>_mask (例) TCB_enatex_mask など 58 * 59 * (例) 64 60 * TCB_texptn .equ 14 65 61 * TCB_sp .equ 20 … … 69 65 * TCB_enatex_mask .equ 0040H 70 66 * 71 * êÔͶßÍÁèÌvfª\¢ÌÌ檩ç½oCgæÉ é©72 * Æ¢¤±Æð¦·lɯéx̼Ì.73 * ñÔÚÍÁèÌrbgtB[hÌrbgª, ºÊ©ç¦Ä74 * ½rbgÚÉ é©Æ¢¤±Æð¦·lɯéx̼Ì.75 * 0 ©çnÜélÅ\»·é. ÅàºÊÌrbgÍæ0rbgÅ é.76 * OÔÚÍæÙÇÌ <\¢Ì¼>_<vf¼>_bit ÆàÖA·éª,77 * ÁèÌrbgtB[hÌrbgÌ}XNl̼Ì.78 * _bit Æ *_mask ÌlÌÔÉÍÌÖWª é.67 * 一番はじめは特定の要素が構造体の先頭から何バイト先にあるか 68 * ということを示す数値につけるラベルの名称. 69 * 二番目は特定のビットフィールド中のビットが, 下位から数えて 70 * 何ビット目にあるかということを示す数値につけるラベルの名称. 71 * 0から始まる数値で表現する. 最も下位のビットは第0ビットである. 72 * 三番目は先ほどの <構造体名>_<要素名>_bit とも関連するが, 73 * 特定のビットフィールド中のビットのマスク値の名称. 74 * _bit と *_mask の値の間には次の関係がある. 79 75 * (*_mask) == (1 << *_bit) 80 * * ( á) TCB_enatex_bit ª 6 Ì, TCB_enatex_mask Í40H81 * 82 * ¿ÈÝÉM32C˶ÌÀÅÍ, ÁèrbgÌ`FbNÈÇÉ83 * rbg½ßAhbVOðgpµÄ¢éÌÅ *_mask Æ¢¤xÍ84 * gpµÄ¢È¢.76 * * (例) TCB_enatex_bit が 6 の時, TCB_enatex_mask は 40H 77 * 78 * ちなみにM32C依存部の実装では, 特定ビットのチェックなどに 79 * ビット命令アドレッシングを使用しているので *_mask というラベルは 80 * 使用していない. 85 81 */ 86 82 87 83 /* 88 * offset.inc Ììèû(M32C^[Qbg˶ü¯) 89 * 90 * GNU CRpCðp¢Ä¢é^[Qbg˶É¢ÄÍ, 91 * J[lÌgbvfBNgÌºÉ é util Æ¢¤fBNgÌ 92 * ºÉ genoffset Æ¢¤ perl XNvgªpÓ³êÄ¢éÌÅ, 93 * ÁÉè®Å offset.h ð쬷éKvÍÈ¢. 94 * genoffset Í GNU J«ðzèµÄ쬳êÄ¢éÌÅ, 95 * ¶¬³êéAZu¾ê^½ßⶬK¥ÌÙÈé¼Ì 96 * CRpCÉÍ»ÌÜÜKpÅ«È¢Â\«ª é. 97 * »±Å, ±±ÅÍWindows« ü¯Ì genoffset ðpÓ¹¸, 98 * ìèûð±±ÉLµ, èìÆÅ offset.inc ð쬵Äà礱ÆÆ 99 * ·é. ȺɻÌû@ð¦·. Ȩ, ±Ìû@ÍM32CÌJ«â 100 * ½ßZbgÉ˶µÄ¢é½ß, ¼Ì^[QbgðgpµÄ¢éêÍ 101 * »ÌÜÜKpÅ«È¢. 102 * 103 * 1. makeoffset.c Æ¢¤t@C©çCRpCðgpµÄ 104 * AZu¾êt@C makeoffset.a30 𶬷é. 105 * RpCIvVÍJ[lR[hÉ^¦éàÌƯ¶ 106 * àÌð^¦é. 107 * lTX»c[ TM ðgpµÄ¢éêÍ, vWFNgGfB^Ì 108 * ¶¬èr 109 [©ç makeoffset.a30 ðIÑ, ENbNj 110 [Ì 111 * ¢ªrh£ðIð·é±ÆŶ¬Å«é. 112 * àµÍR}hvvgÅCNt@CƯ¶fBNgÉ 113 * Ú®µ, "make -f CNt@C¼ makeoffset.a30" ð 114 * ÀsµÄà¯lÌʪ¾çêé. (CNt@CÍTMªgpµÄ 115 * ¢éàÌƯ¶t@CðwèÂ\) 116 * 117 * 2. æÙÇÌ 1. ÌìÆžçê½, makeoffset.a30 t@C©ç 118 * "! BEGIN XXXX" ÅͶÜè "! END" ÅIíÁÄ¢éªðT·. 119 * 120 * 4Ó è, »ê¼êµ¸ÂÙÈéÌÅÉྷé. 121 * (Ⱥ, à¾ÅÍAZu¾êt@CÌRgsÍÈ) 122 * 123 * (1) \¢ÌÌ檩çoÖÌItZbg 84 * offset.inc の作り方(M32Cターゲット依存部向け) 85 * 86 * GNU Cコンパイラを用いているターゲット依存部については, 87 * カーネルのトップディレクトリの下にある util というディレクトリの 88 * 下に genoffset という perl スクリプトが用意されているので, 89 * 特に手動で offset.h を作成する必要はない. 90 * genoffset は GNU 開発環境を想定して作成されているので, 91 * 生成されるアセンブリ言語疑似命令や生成規則の異なる他の 92 * Cコンパイラにはそのまま適用できない可能性がある. 93 * そこで, ここではWindows環境 向けの genoffset を用意せず, 94 * 作り方をここに記し, 手作業で offset.inc を作成してもらうことと 95 * する. 以下にその方法を示す. なお, この方法はM32Cの開発環境や 96 * 命令セットに依存しているため, 他のターゲットを使用している場合は 97 * そのまま適用できない. 98 * 99 * 1. makeoffset.c というファイルからCコンパイラを使用して 100 * アセンブリ言語ファイル makeoffset.a30 を生成する. 101 * コンパイルオプションはカーネルコードに与えるものと同じ 102 * ものを与える. 103 * ルネサス製ツール TM を使用している場合は, プロジェクトエディタの 104 * 生成手順ビューから makeoffset.a30 を選び, 右クリックメニューの 105 * 「部分ビルド」を選択することで生成できる. 106 * もしくはコマンドプロンプトでメイクファイルと同じディレクトリに 107 * 移動し, "make -f メイクファイル名 makeoffset.a30" を 108 * 実行しても同様の結果が得られる. (メイクファイルはTMが使用して 109 * いるものと同じファイルを指定可能) 110 * 111 * 2. 先ほどの 1. の作業で得られた, makeoffset.a30 ファイルから 112 * "! BEGIN XXXX" ではじまり "! END" で終わっている部分を探す. 113 * 114 * 4箇所あり, それぞれ少しずつ異なるので順に説明する. 115 * (以下, 説明中ではアセンブリ言語ファイルのコメント行は省く) 116 * 117 * (1) 構造体の先頭からメンバへのオフセット 124 118 * 125 119 * ! BEGIN TCB_texptn … … 127 121 * ! END 128 122 * 129 * ãL"! BEGIN"Ìãë̶ñªoffset.incÅè`·éV{¼ÆÈé.130 * »ÌV{ÌlÍ, sÌbset½ßÌæ2IyhÌlÅ é131 * 0000000eH ª»êÉ·é. ±êª\¢ÌÌ檩çtexptnÜÅÌ132 * ItZbglÆÈé. µ½ªÁıÌê, offset.inc ÉÍ123 * 上記"! BEGIN"の後ろの文字列がoffset.incで定義するシンボル名となる. 124 * そのシンボルの値は, 次行のbset命令の第2オペランドの値である 125 * 0000000eHがそれに相当する. これが構造体の先頭からtexptnまでの 126 * オフセット値となる. したがってこの場合, offset.inc には 133 127 * TCB_texptn .equ 14 134 * Æ¢¤sðLq·é.135 * 136 * (2) \¢ÌÌoª\¢ÌÅ, »ÌÌoÉηéItZbg137 * 138 * TCB_sp É¢ÄàÙÚ¯l¾ª, sp ÍTCB\¢Ì̼ÚÌ139 * oÅÈTCB\¢ÌÌoÅ éTSKCTXB\¢ÌÌoÅ140 * é_ªÙÈé. »êÅàè`·éV{¼ÆµÄÍ141 * TCB_sp Ìæ¤É\»·é. AZu¾êt@CÅÍ128 * という行を記述する. 129 * 130 * (2) 構造体のメンバが構造体で, その中のメンバに対するオフセット 131 * 132 * TCB_sp についてもほぼ同様だが, sp はTCB構造体の直接の 133 * メンバでなくTCB構造体のメンバであるTSKCTXB構造体のメンバで 134 * ある点が異なる. それでも定義するシンボル名としては 135 * TCB_sp のように表現する. アセンブリ言語ファイルでは 142 136 * 143 137 * ! BEGIN TCB_sp … … 149 143 * ! END * 150 144 * 151 * Ìæ¤ÉÈè,14H(=20) ªßélÈÌÅoffset.inc ÉÍÌæ¤É152 * Lq·é.145 * のようになり,14H(=20) が求める値なのでoffset.inc には次のように 146 * 記述する. 153 147 * 154 148 * TCB_sp .equ 20 155 149 * 156 * (3) oªÖÖÌ|C^Å Á½ê157 * 158 * Í TCB_pc Ìê.150 * (3) メンバが関数へのポインタであった場合 151 * 152 * 次は TCB_pc の場合. 159 153 * 160 154 * ! BEGIN TCB_pc … … 163 157 * ! END 164 158 * 165 * pc à sp Ư¶, TCB\¢Ì̼ÚÌoÅÍÈ¢ª166 * TCB_pc Æ\»µÄ¢é. ±êÍÖÌAhXði[·éÏÈÌÅ,159 * pc も sp と同じく, TCB構造体の直接のメンバではないが 160 * TCB_pc と表現している. これは関数のアドレスを格納する変数なので, 167 161 * (((TCB *)0)->tskctxb.pc)(); 168 * ƵÄÖÄÑoµÌæ¤ÉLq·éÆãLÌæ¤ÈAZu¾ê169 * R[hðoÍ·é. V{è`·éÛÌV{¼Í¡ÜÅÆ170 * ¯¶, TCB_pc Æ·é.171 * ßélÍ\¢Ì©çÖ|C^ÜÅÌItZbgÅ è, ãÌmov.l172 * ½ßÌÊ©ç 00000018H(=24) ÆÈé.173 * µ½ªÁÄ, offset.inc ÉÍÌæ¤ÉLq·é.162 * として関数呼び出しのように記述すると上記のようなアセンブリ言語 163 * コードを出力する. シンボル定義する際のシンボル名は今までと 164 * 同じく, TCB_pc とする. 165 * 求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l 166 * 命令の結果から 00000018H(=24) となる. 167 * したがって, offset.inc には次のように記述する. 174 168 * 175 169 * TCB_pc .equ 24 176 170 * 177 * (4) \¢ÌÌoªrbgtB[hÅ»ÌrbgÊuàmè½¢ê171 * (4) 構造体のメンバがビットフィールドでそのビット位置も知りたい場合 178 172 * 179 173 * ! BEGIN TCB_enatex … … 181 175 * ! END 182 176 * 183 * ¡ÜÅƯl, BEGIN Ìã̶ñðV{¼Æ·é.184 * ±±ÅÌTCB_enatexÌlÍ\¢ÌÌ檩çrbgtB[hðÜÞo185 * CgÜÅÌItZbgÅ, M32CÌrbg½ßAhbVOÍwèÅ«186 * érbgÊuª0©ç7ÌÔÉûÜéæ¤ÉANZX·éAhXÉK187 * ªÁ¦çêéÌÅ cH+1(=13) ÆÈÁÄ¢é. ܽ, rbgtB[h188 * ÌźÊrbg©çÌrbgÊuÍ 6ÆÈé.189 * ÈãæèÌæ¤É±ÆªÅ«é.177 * 今までと同様, BEGIN の後の文字列をシンボル名とする. 178 * ここでのTCB_enatexの値は構造体の先頭からビットフィールドを含むバ 179 * イトまでのオフセットで, M32Cのビット命令アドレッシングは指定でき 180 * るビット位置が0から7の間に収まるようにアクセスするアドレスに適当 181 * 数が加えられるので cH+1(=13) となっている. また, ビットフィールド 182 * 中の最下位ビットからのビット位置は 6となる. 183 * 以上より次のように書くことができる. 190 184 * 191 185 * TCB_enatex .equ 13 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 7 7 $ Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 $ 9 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 $ XR[hÉÜÜêÄ¢é±ÆD 15 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 $ Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 $ ̳ÛØKèðfÚ·é±ÆD 21 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 $ ÆD 24 $ (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 $ ñ·é±ÆD 30 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 $ ÆÓ·é±ÆD 35 $ 36 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 37 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 38 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 39 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 40 $ ÌÓCðíÈ¢D 9 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 $ スコード中に含まれていること. 15 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 $ の無保証規定を掲載すること. 19 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 $ と. 22 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 $ 報告すること. 26 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 $ 免責すること. 31 $ 32 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 $ の責任を負わない. 41 37 $ 42 38 $ @(#) $Id$ … … 44 40 45 41 $ 46 $ A[LeN`˶ev[giRX630pj47 $ 48 49 50 51 $ 52 $ ATT_ISR ÅgpÅ«éÝÔÆ»êÉηéÝnhÔ42 $ アーキテクチャ依存テンプレート(RX630用) 43 $ 44 45 46 47 $ 48 $ ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号 53 49 $ 54 50 … … 58 54 59 55 $ 60 $ DEF_INT ^DEF_EXCÅgpÅ«éÝnhÔ^CPUáOnhÔ56 $ DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号 61 57 $ 62 58 … … 66 62 67 63 $ 68 $ CFG_INT ÅgpÅ«éÝÔÆÝDæx64 $ CFG_INTで使用できる割込み番号と割込み優先度 69 65 $ 70 66 … … 74 70 75 71 $ 76 $ ^[Qbgñ˶ÉÜÜêéWÌÝÇ@\/áOÇ@\Ìú»ðgp·é72 $ ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する 77 73 $ 78 74 … … 82 78 83 79 $ 84 $ X^bNTCYÌ`FbNû@wè80 $ スタックサイズのチェック方法指定 85 81 $ 86 82 … … 89 85 90 86 $ 91 $ ^XNX^bNTCYÌŬl92 $ 93 $ ^XNN®É4byte,94 $ ÝüûÉÄ48byte, CPUáOüûÉÄ84byte,95 $ Å é½ß, ŬlÍ88byteÆ·é.87 $ タスクスタックサイズの最小値 88 $ 89 $ タスク起動時に4byte, 90 $ 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 91 $ であるため, 最小値は88byteとする. 96 92 $ 97 93 … … 100 96 101 97 $ 102 $ èè`98 $ 定数定義 103 99 $ 104 100 … … 107 103 108 104 $ 109 $ ^[Qbg˶ÌÝ®«Ìè`105 $ ターゲット依存の割込み属性の定義 110 106 $ 111 107 … … 114 110 115 111 $ 116 $ ^[Qbg˶ÌÝnh®«Ìè`112 $ ターゲット依存の割込みハンドラ属性の定義 117 113 $ 118 114 … … 121 117 122 118 $ 123 $ J[lÇOÝnhÍÅ賹Ȣ½ß,119 $ カーネル管理外割込みハンドラは固定させないため, 124 120 $ INTNO_FIX_KERNEL 125 121 $ INHNO_FIX_KERNEL 126 122 $ INHNO_FIX_NONKERNEL 127 123 $ INHNO_FIX_NONKERNEL 128 $ ðè`µÈ¢.129 $ 130 131 132 $ 133 $ Wev[gt@CÌCN[h124 $ を定義しない. 125 $ 126 127 128 $ 129 $ 標準テンプレートファイルのインクルード 134 130 $ 135 131 $INCLUDE "kernel.tf"$ … … 138 134 139 135 $ 140 $ CFG_INT Ì^[Qbg˶ÌG[`FbN136 $ CFG_INTのターゲット依存のエラーチェック 141 137 $ 142 138 143 139 $FOREACH intno INT.ORDER_LIST$ 144 $ IRQ ÝԩǤ©ð`FbN140 $ IRQ割込み番号かどうかをチェック 145 141 $IF ( LENGTH( FIND( INTNO_INT, INT.INTNO[intno] ) ) != 0 )$ 146 142 147 $ TA_POSEDGE ÆTA_NEGEDGEª¯ÉÝè³êÄ¢éê143 $ TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合 148 144 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE )) == ( TA_POSEDGE | TA_NEGEDGE ))$ 149 145 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 150 146 $END$ 151 147 152 $ TA_POSEDGE ÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê148 $ TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合 153 149 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_BOTHEDGE ))$ 154 150 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 155 151 $END$ 156 152 157 $ TA_NEGEDGE ÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê153 $ TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 158 154 $IF ((INT.INTATR[intno] & ( TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_NEGEDGE | TA_BOTHEDGE ))$ 159 155 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ 160 156 $END$ 161 157 162 $ TA_POSEDGE ÆTA_NEGEDGEÆTA_BOTHEDGEª¯ÉÝè³êÄ¢éê158 $ TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 163 159 $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE ))$ 164 160 $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ … … 167 163 $ELSE$ 168 164 169 $ IRQ ÝÈOÌÝÉεÄÝ®«ªwè³êÄ¢éê165 $ IRQ割込み以外の割込みに対して割込み属性が指定されている場合 170 166 $IF (INT.INTATR[intno] & (~( TA_ENAINT | TA_EDGE ))) != 0$ 171 167 $ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$ … … 179 175 180 176 $ 181 $ ÝÔ©çÝDæxyÑ®«ðæèo·e[u177 $ 割込み番号から割込み優先度及び属性を取り出すテーブル 182 178 $ 183 179 … … 187 183 const CFG_INT_INFO _kernel_cfg_int_table[$LENGTH(INTNO_RANGE)$] = {$NL$ 188 184 $FOREACH intno INTNO_RANGE$ 189 $ ÝDæxðæ¾185 $ 割込み優先度を取得 190 186 $IF LENGTH(INT.INTNO[intno])$ 191 187 $intpri = -INT.INTPRI[intno]$ … … 196 192 $END$ 197 193 198 $ e[uÌgðoÍ194 $ テーブルの中身を出力 199 195 $TAB$$FORMAT("{ %2d, %08x }, /* %02u */", intpri, intatr, +intno)$$NL$ 200 196 $END$ … … 203 199 204 200 $ 205 $ AZuoÍt@C201 $ アセンブラ出力ファイル 206 202 $ 207 203 … … 209 205 210 206 ;$NL$ 211 ; RX630 A[LeN`˶oÍt@C$NL$212 ;$NL$ 213 ; ÝxN^yÑÝnhè`$NL$207 ; RX630アーキテクチャ依存出力ファイル$NL$ 208 ;$NL$ 209 ; 割込みベクタ及び割込みハンドラ定義$NL$ 214 210 ;$NL$ 215 211 $NL$$NL$ … … 217 213 218 214 $ 219 $ Ýüû220 $ 221 222 $ 223 $ ¤ÊÖÌé¾215 $ 割込み入口処理 216 $ 217 218 $ 219 $ 共通関数の宣言 224 220 $ 225 221 … … 231 227 232 228 $ 233 $ ÝnhÌoÍ229 $ 割込みハンドラの出力 234 230 $ 235 231 … … 240 236 $TAB$.glb __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry$NL$ 241 237 __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:$NL$ 242 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$243 $TAB$mov.l #$+INH.INHNO[inhno]$, r1 ; ÝnhÔðr1Ö$NL$244 $TAB$mov.l #_$INH.INTHDR[inhno]$, r2 ; nhÌAhXðr2Ö$NL$245 $TAB$bra.a _kernel_interrupt ; ¤Ê[`Ö$NL$$NL$$NL$246 $END$ 247 $END$ 248 $END$ 249 250 251 $ ¢o^Ýnhüû238 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 239 $TAB$mov.l #$+INH.INHNO[inhno]$, r1 ; 割込みハンドラ番号をr1へ $NL$ 240 $TAB$mov.l #_$INH.INTHDR[inhno]$, r2 ; ハンドラのアドレスをr2へ $NL$ 241 $TAB$bra.a _kernel_interrupt ; 共通ルーチンへ $NL$$NL$$NL$ 242 $END$ 243 $END$ 244 $END$ 245 246 247 $ 未登録割込みハンドラ入口処理 252 248 $TAB$.glb$TAB$__kernel_default_int_handler_entry$NL$ 253 249 __kernel_default_int_handler_entry:$NL$ 254 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$255 $TAB$mov.l #0FFFFFFFFH, r1 ; ÝnhÔðr1Ö$NL$256 $TAB$mov.l #__kernel_default_int_handler, r2 ; nhÌAhXðr2Ö$NL$257 $TAB$bra.a _kernel_interrupt ; ¤Ê[`Ö$NL$$NL$$NL$258 259 260 $ 261 $ CPU áOnhüû250 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 251 $TAB$mov.l #0FFFFFFFFH, r1 ; 割込みハンドラ番号をr1へ $NL$ 252 $TAB$mov.l #__kernel_default_int_handler, r2 ; ハンドラのアドレスをr2へ $NL$ 253 $TAB$bra.a _kernel_interrupt ; 共通ルーチンへ $NL$$NL$$NL$ 254 255 256 $ 257 $ CPU例外ハンドラ入口処理 262 258 $ 263 259 … … 269 265 $TAB$.glb __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry$NL$ 270 266 __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:$NL$ 271 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$272 $TAB$mov.l #$+EXC.EXCNO[excno]$, r1 ; CPU áOnhÔðr1Ö$NL$273 $TAB$mov.l #_$EXC.EXCHDR[excno]$, r2 ; nhÌAhXðr2Ö$NL$274 $TAB$bra.a _kernel_exception ; ¤Ê[`Ö$NL$$NL$$NL$275 $END$ 276 $END$ 277 278 279 $ ¢o^CPUáOnhüû267 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 268 $TAB$mov.l #$+EXC.EXCNO[excno]$, r1 ; CPU例外ハンドラ番号をr1へ $NL$ 269 $TAB$mov.l #_$EXC.EXCHDR[excno]$, r2 ; ハンドラのアドレスをr2へ $NL$ 270 $TAB$bra.a _kernel_exception ; 共通ルーチンへ $NL$$NL$$NL$ 271 $END$ 272 $END$ 273 274 275 $ 未登録CPU例外ハンドラ入口処理 280 276 $TAB$.glb$TAB$__kernel_default_exc_handler_entry$NL$ 281 277 __kernel_default_exc_handler_entry:$NL$ 282 $TAB$pushm r1-r5 ; XNb`WX^ð^XNX^bNÖÞð$NL$283 $TAB$mov.l #0FFFFFFFFH, r1 ; CPU áOnhÔðr1Ö$NL$284 $TAB$mov.l #__kernel_default_exc_handler, r2 ; nhÌAhXðr2Ö$NL$285 $TAB$bra.a _kernel_exception ; ¤Ê[`Ö$NL$$NL$$NL$286 287 288 $ 289 $ ÂÏxN^e[u290 $ 291 292 ;$NL$ 293 ; ÂÏxN^e[u$NL$278 $TAB$pushm r1-r5 ; スクラッチレジスタをタスクスタックへ退避 $NL$ 279 $TAB$mov.l #0FFFFFFFFH, r1 ; CPU例外ハンドラ番号をr1へ $NL$ 280 $TAB$mov.l #__kernel_default_exc_handler, r2 ; ハンドラのアドレスをr2へ $NL$ 281 $TAB$bra.a _kernel_exception ; 共通ルーチンへ $NL$$NL$$NL$ 282 283 284 $ 285 $ 可変ベクタテーブル 286 $ 287 288 ;$NL$ 289 ; 可変ベクタテーブル$NL$ 294 290 ;$NL$ 295 291 $NL$ … … 322 318 323 319 $ 324 $ ÅèxN^e[u320 $ 固定ベクタテーブル 325 321 $ 326 322 $FOREACH excno EXCNO_RANGE$ … … 334 330 $NL$ 335 331 ;$NL$ 336 ; ÅèxN^e[u$NL$332 ; 固定ベクタテーブル$NL$ 337 333 ;$NL$ 338 334 $NL$ … … 343 339 344 340 $TAB$ .offset$TAB$ 020H$NL$ 345 $TAB$ .lword$TAB$ 00000000 $TAB$ ; §äR[h, IDR[h1 - 3$NL$346 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h4 - 7$NL$347 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h8 - 11$NL$348 $TAB$ .lword$TAB$ 00000000 $TAB$ ; ID R[h12 - 15$NL$$NL$341 $TAB$ .lword$TAB$ 00000000 $TAB$ ; 制御コード, IDコード1 - 3$NL$ 342 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード4 - 7$NL$ 343 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード8 - 11$NL$ 344 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード12 - 15$NL$$NL$ 349 345 350 346 $TAB$ .offset$TAB$ 050H$NL$ 351 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20: Á ½ßáO$SPC$$NL$347 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:特権命令例外 $SPC$$NL$ 352 348 $TAB$ .offset$TAB$ 05CH$NL$ 353 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23: ¢è`½ßáO$SPC$$NL$349 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:未定義命令例外 $SPC$$NL$ 354 350 $TAB$ .offset$TAB$ 064H$NL$ 355 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25: ®¬_áO$SPC$$NL$351 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:浮動小数点例外 $SPC$$NL$ 356 352 $TAB$ .offset$TAB$ 078H$NL$ 357 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30: m}XJuáO$SPC$$NL$358 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31: Zbg$SPC$$NL$353 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ノンマスカブル例外 $SPC$$NL$ 354 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:リセット $SPC$$NL$ 359 355 360 356 $NL$ $NL$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_asm_config.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 $ 2 $ asm_config.inc ¶¬p3 $ pX2ÌA[LeN`˶ev[giRX630pj2 $ asm_config.inc 生成用 3 $ パス2のアーキテクチャ依存テンプレート(RX630用) 4 4 $ 5 5 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_cfg1_out.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * cfg1_out.c ÌNÉKvÈX^uÌè`2 * cfg1_out.cのリンクに必要なスタブの定義 3 3 */ 4 4 … … 20 20 21 21 /* 22 * ItZbgt@C𶬷é½ßÌè`22 * オフセットファイルを生成するための定義 23 23 */ 24 24 const uint8_t MAGIC_1 = 0x12; -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_check.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 6 6 $ Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 $ 8 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 $ XR[hÉÜÜêÄ¢é±ÆD 14 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 $ Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 $ ̳ÛØKèðfÚ·é±ÆD 20 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 $ ÆD 23 $ (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 $ ñ·é±ÆD 29 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 $ ÆÓ·é±ÆD 8 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 $ スコード中に含まれていること. 14 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 $ の無保証規定を掲載すること. 18 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 $ と. 21 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 $ 報告すること. 25 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 $ 免責すること. 34 30 $ 35 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 $ ÌÓCðíÈ¢D31 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 $ の責任を負わない. 40 36 $ 41 37 $ @(#) $Id$ … … 43 39 44 40 $ 45 $ pX3ÌvZbT˶ev[giRX630pj41 $ パス3のプロセッサ依存テンプレート(RX630用) 46 42 $ 47 43 48 44 $ 49 $ `FbNû@Ìwè45 $ チェック方法の指定 50 46 $ 51 47 $CHECK_FUNC_ALIGN = 1$ … … 57 53 58 54 $ 59 $ Wev[gt@CÌCN[h55 $ 標準テンプレートファイルのインクルード 60 56 $ 61 57 $INCLUDE "kernel/kernel_check.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 12 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 13 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 14 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 15 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 16 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 17 * XR[hÉÜÜêÄ¢é±ÆD 18 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 19 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 20 gip 21 * Ò}j 22 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 23 * ̳ÛØKèðfÚ·é±ÆD 24 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 25 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 26 * ÆD 27 * (a) Äzzɺ¤hL 28 gipÒ}j 29 AÈÇjÉCãLÌ 30 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 31 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 32 * ñ·é±ÆD 33 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 34 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 35 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 36 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 37 * ÆÓ·é±ÆD 38 * 39 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 40 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 41 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 42 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 43 * ÌÓCðíÈ¢D 12 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 * スコード中に含まれていること. 18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 * の無保証規定を掲載すること. 22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 * と. 25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 * 報告すること. 29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 * 免責すること. 34 * 35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 44 40 * 45 41 * @(#) $Id$ … … 47 43 48 44 /* 49 * vZbT˶W 50 [iRX630pj 45 * プロセッサ依存モジュール(RX630用) 51 46 */ 52 47 … … 56 51 57 52 /* 58 * ݶñðÛ¶·éÏ53 * 割込み発生回数を保存する変数 59 54 */ 60 55 uint16_t intnest; 61 56 62 57 /* 63 * CPU bNtOÀ»Ì½ßÌÏ58 * CPUロックフラグ実現のための変数 64 59 */ 65 60 #if TIPM_LOCK != -15 66 bool_t lock_flag; /* CPU bNtOÌlðÛ·éÏ*/67 uint32_t saved_ipl; /* ÝDæxxðÛ¶·éÏ*/61 bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 62 uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 68 63 #endif /* TIPM_LOCK != -15 */ 69 64 70 65 71 66 /* 72 * vZbT˶Ìú»67 * プロセッサ依存の初期化 73 68 */ 74 69 void … … 76 71 { 77 72 /* 78 * ݶñÌú»79 * 80 * X^[gAbvÍSÝbNóÔ & ñ^XNReLXg81 * ÉÄ®ì·é½ß, ñ^XNReLXgÉU·é.73 * 割込み発生回数の初期化 74 * 75 * スタートアップは全割込みロック状態 & 非タスクコンテキスト 76 * にて動作するため, 非タスクコンテキストに偽装する. 82 77 */ 83 78 intnest = 1U; … … 85 80 #if TIPM_LOCK != -15 86 81 /* 87 * CPU bNtOÀ»Ì½ßÌÏÌú»82 * CPUロックフラグ実現のための変数の初期化 88 83 */ 89 84 lock_flag = true; … … 94 89 95 90 /* 96 * vZbT˶ÌI¹91 * プロセッサ依存の終了処理 97 92 */ 98 93 void … … 100 95 { 101 96 /* 102 * ÁÉKvÈÍÈ¢103 */ 104 } 105 106 107 /* 108 * CPU áO̶óµÌOoÍ97 * 特に必要な処理はない 98 */ 99 } 100 101 102 /* 103 * CPU例外の発生状況のログ出力 109 104 * 110 * CPU áOnhÌ©çCCPUáOîñ|C^ip_excinfjðøƵ111 * ÄÄÑo·±ÆÅCCPUáO̶óµðVXeOÉoÍ·éD105 * CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし 106 * て呼び出すことで,CPU例外の発生状況をシステムログに出力する. 112 107 */ 113 108 #ifdef SUPPORT_XLOG_SYS … … 140 135 141 136 /* 142 * ÝvCÌ®«ÌÝè137 * 割込み要求ラインの属性の設定 143 138 * 144 * ASP J[lÅÌpðzèµÄCp[^G[ÍAT[VÅ`Fb145 * NµÄ¢éDcfg_intT[rXR[ðݯéêÉÍCG[ðÔ·æ¤146 * ɷ׫Šë¤D139 * ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ 140 * クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう 141 * にすべきであろう. 147 142 */ 148 143 void … … 165 160 166 161 /* 167 * ÝÌ}XN168 * 169 * Ýðó¯t¯½ÜÜCxgK^GbWgKÌÝèâC170 * ÝDæxÌÝèðs¤ÌÍë¯È½ßCÝ®«É©©íç¸C171 * êU}XN·éD162 * 割込みのマスク 163 * 164 * 割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割 165 * 込み優先度の設定を行うのは危険なため,割込み属性にかかわらず, 166 * 一旦マスクする. 172 167 */ 173 168 ( void )x_disable_int( intno ); 174 169 175 170 /* 176 * xgK/GbWgKÌÝè177 * 178 * IRQ ÌÝT|[g·é171 * レベルトリガ/エッジトリガの設定 172 * 173 * IRQのみサポートする 179 174 */ 180 175 if( INTNO_IRQ( intno ) != 0U ){ … … 195 190 else{ 196 191 /* 197 * RtBM 198 [^ÉÄ`FbNµÄ¢é½ß, 199 * ±±Öé±ÆÍ è¦È¢. 192 * コンフィギュレータにてチェックしているため, 193 * ここへくることはありえない. 200 194 */ 201 195 irq_val = 0U; … … 206 200 207 201 /* 208 * ÝxÌÝè209 * 210 * ÝÔÉε½IPRlðÝè·é.202 * 割込みレベルの設定 203 * 204 * 割込み番号に対応したIPR値を設定する. 211 205 */ 212 206 sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri); 213 207 214 208 /* 215 * ÝÌ}XNð209 * 割込みのマスク解除 216 210 */ 217 211 if( ( intatr & TA_ENAINT ) != 0U ){ … … 223 217 #ifndef OMIT_DEFAULT_INT_HANDLER 224 218 /* 225 * ¢o^Ìݪ¶µ½êÉÄÑo³êé219 * 未登録の割込みが発生した場合に呼び出される 226 220 */ 227 221 void … … 234 228 #ifndef OMIT_DEFAULT_EXC_HANDLER 235 229 /* 236 * ¢o^ÌáOª¶µ½êÉÄÑo³êé230 * 未登録の例外が発生した場合に呼び出される 237 231 */ 238 232 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 11 11 * Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 * 13 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 14 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 15 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 16 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 17 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 18 * XR[hÉÜÜêÄ¢é±ÆD 19 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 20 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 21 gip 22 * Ò}j 23 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 24 * ̳ÛØKèðfÚ·é±ÆD 25 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 26 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 27 * ÆD 28 * (a) Äzzɺ¤hL 29 gipÒ}j 30 AÈÇjÉCãLÌ 31 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 32 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 33 * ñ·é±ÆD 34 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 35 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 36 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 37 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 38 * ÆÓ·é±ÆD 13 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 14 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 15 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 18 * スコード中に含まれていること. 19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 22 * の無保証規定を掲載すること. 23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 25 * と. 26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 27 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 29 * 報告すること. 30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 32 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 33 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 34 * 免責すること. 39 35 * 40 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨41 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI42 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF43 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»44 * ÌÓCðíÈ¢D36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 * の責任を負わない. 45 41 * 46 42 * @(#) $Id$ … … 48 44 49 45 /* 50 * vZbT˶W 51 [iRX630pj 52 * 53 * ±ÌCN[ht@CÍCtarget_config.hiܽÍC»±©çCN 54 * [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç 55 * ¼ÚCN[hµÄÍÈçÈ¢D 46 * プロセッサ依存モジュール(RX630用) 47 * 48 * このインクルードファイルは,target_config.h(または,そこからインク 49 * ルードされるファイル)のみからインクルードされる.他のファイルから 50 * 直接インクルードしてはならない. 56 51 */ 57 52 … … 62 57 63 58 /* 64 * vZbTÌÁê½ßÌCCÖè`59 * プロセッサの特殊命令のインライン関数定義 65 60 */ 66 61 #include "prc_insn.h" … … 69 64 70 65 /* 71 * ñ^XNReLXgpÌX^bNúl66 * 非タスクコンテキスト用のスタック初期値 72 67 */ 73 68 … … 76 71 77 72 /* 78 * ^XNReLXgubNÌè`73 * タスクコンテキストブロックの定義 79 74 */ 80 75 typedef struct task_context_block { 81 void *sp; /* X^bN|C^*/82 FP pc; /* vOJE^*/76 void *sp; /* スタックポインタ */ 77 FP pc; /* プログラムカウンタ */ 83 78 } TSKCTXB; 84 79 85 80 86 81 /* 87 * ݶñðÛ¶·éÏ82 * 割込み発生回数を保存する変数 88 83 */ 89 84 extern uint16_t intnest; … … 91 86 92 87 /* 93 * CPU bNóÔÅÌÝDæx}XN94 * 95 * TIPM_LOCK ÍCCPUbNóÔÅÌÝDæx}XNC·Èí¿CJ[l96 * ÇOÌàÌð·×ÄÌÝvð}XN·élÉè`·éD97 * 98 * TMIN_INTPRI ÏX·é±ÆÅÇOÝÌL³ðè·éD99 * á¦ÎTMIN_INTPRIð-14ÉÝè·éÆCx15ÌݪJ[lÇOÆ100 * ÈéDTMIN_INTPRIð-15ÉÝè·éÆCNMIÈOÉJ[lÇOÌÝð101 * ݯȢ±ÆÉÈéi±ÌêÉÍ-15ÉÝè·é±Æð§·éjD88 * CPUロック状態での割込み優先度マスク 89 * 90 * TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ 91 * ル管理外のものを除くすべての割込み要求をマスクする値に定義する. 92 * 93 * TMIN_INTPRI変更することで管理外割込みの有無を決定する. 94 * 例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と 95 * なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを 96 * 設けないことになる(この場合には-15に設定することを推奨する). 102 97 */ 103 98 #ifndef TIPM_LOCK … … 107 102 108 103 /* 109 * TOPPERS WÝfÌÀ»110 */ 111 /* 112 * ReLXgÌQÆ113 * 114 * RX ÅÍCÝÌßèæª^XN©Ç¤©ð»f·é½ßÉintnest115 * ðgpµÄ¢éD±êðp¢ÄReLXgð»f·éD104 * TOPPERS標準割込み処理モデルの実現 105 */ 106 /* 107 * コンテキストの参照 108 * 109 * RXでは,割込みの戻り先がタスクかどうかを判断するために intnest 110 * を使用している.これを用いてコンテキストを判断する. 116 111 */ 117 112 Inline bool_t 118 113 sense_context( void ) 119 114 { 120 /* lXgJE^0æèåÈçñ^XNReLXg*/115 /* ネストカウンタ0より大なら非タスクコンテキスト */ 121 116 return ( intnest > 0U ); 122 117 } … … 124 119 125 120 /* 126 * CPU bNtOÀ»Ì½ßÌÏ127 * 128 * ±êçÌÏÍCCPUbNóÔÌÌÝ«·¦Äæ¢àÌÆ·éD121 * CPUロックフラグ実現のための変数 122 * 123 * これらの変数は,CPUロック状態の時のみ書き換えてよいものとする. 129 124 */ 130 125 #if TIPM_LOCK != -15 131 extern bool_t lock_flag; /* CPU bNtOÌlðÛ·éÏ*/132 extern uint32_t saved_ipl; /* ÝDæxxðÛ¶·éÏ*/126 extern bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 127 extern uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 133 128 #endif /* TIPM_LOCK != -15 */ 134 129 … … 137 132 138 133 /* 139 * ÝDæx}XNÌO\»Æà\»ÌÏ·140 * 141 * RX630 ÅÍCvZbTXe[^X[hWX^iPSWj̺©ç142 * 24 `27rbgÚÌ4rbgÉÝDæxxiIPLjªu©êÄ¢éD143 * J[lÇOÝðÀ·éêÉIPLðgpµ½§äðs¤D144 * J[lÍÝDæx}XNi-1©çA±µ½ÌljÅdzêÄ145 * ¢é½ßIPLÆÌÏ·ªKvÆÈéD146 */ 147 #define IPL_TO_IPM( ipl ) (-(( PRI )(( ipl ) >> 24U ))) /* IPL ðIPMÉ*/148 #define IPM_TO_IPL( ipm ) ((( uint32_t )(-( ipm ))) << 24U ) /* IPM ðIPLÉ*/149 150 151 /* 152 * CPU bNóÔÅÌÝDæx}XNÌIPL134 * 割込み優先度マスクの外部表現と内部表現の変換 135 * 136 * RX630では,プロセッサステータスワードレジスタ(PSW)の下から 137 * 24〜27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている. 138 * カーネル管理外割込みを実装する場合にIPLを使用した制御を行う. 139 * カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて 140 * いるためIPLとの変換が必要となる. 141 */ 142 #define IPL_TO_IPM( ipl ) (-(( PRI )(( ipl ) >> 24U ))) /* IPLをIPMに */ 143 #define IPM_TO_IPL( ipm ) ((( uint32_t )(-( ipm ))) << 24U ) /* IPMをIPLに */ 144 145 146 /* 147 * CPUロック状態での割込み優先度マスクのIPL 153 148 */ 154 149 #define IPL_LOCK ( IPM_TO_IPL( TIPM_LOCK ) ) 155 150 156 151 /* 157 * TIPM_ENAALL iÝDæx}XNSðjÌIPL152 * TIPM_ENAALL(割込み優先度マスク全解除)のIPL 158 153 */ 159 154 #define IPL_ENAALL ( IPM_TO_IPL( TIPM_ENAALL ) ) … … 163 158 164 159 /* 165 * ÝvöÌx & ®«è`e[u166 * ( ev[gt@CÉæéoÍ)160 * 割込み要因毎のレベル & 属性定義テーブル 161 * (テンプレートファイルによる出力) 167 162 */ 168 163 typedef struct cfg_int_info { … … 175 170 176 171 /* 177 * ÝÔÌÍÍÌ»è 178 * 179 * ÝÔªLøÈl©µ§É`FbN·é½ß, 180 * RtBM 181 [^oÍe[uðQÆ·é. 172 * 割込み番号の範囲の判定 173 * 174 * 割込み番号が有効な値か厳密にチェックするため, 175 * コンフィギュレータ出力テーブルを参照する. 182 176 */ 183 177 #define VALID_INTNO( intno ) \ … … 186 180 #define VALID_INTNO_CFGINT( intno ) VALID_INTNO( intno ) 187 181 188 /* cre_int ÅLøÈÝÔÌwè*/182 /* cre_intで有効な割込み番号の指定 */ 189 183 #define VALID_INTNO_CREINT VALID_INTNO_CFGINT((intno)) 190 184 191 /* cre_isr ÅLøÈÝÔÌwè*/185 /* cre_isrで有効な割込み番号の指定 */ 192 186 #define VALID_INTNO_CREISR(intno) VALID_INTNO_CFGINT((intno)) 193 187 194 188 195 189 /* 196 * ݧäWX^ÖAÌè`190 * 割込み制御レジスタ関連の定義 197 191 */ 198 192 #define IRQ_POSEDGE ( 0x08U ) … … 203 197 204 198 /* 205 * CPU bNóÔÖÌÚs206 * 207 * IPM in[hEFAÌÝDæx}XNjðCsaved_iipmÉÛ¶µCJ[208 * lÇOÌàÌð·×ÄÌÝvð}XN·éliTIPM_LOCKj209 * ÉÝè·éDܽClock_flagðTRUEÉ·éD210 * 211 * IPM ªCÅ©çTIPM_LOCKƯ¶©»êæè¢êÉÍC»êð212 * saved_iipm ÉÛ¶·éÌÝÅCTIPM_LOCKÉÍÝèµÈ¢D±êÍCf213 * ãÌÝDæx}XNªCTIPM_LOCKƯ¶©»êæè¢xÉÝè214 * ³êÄ¢éóÔÉ ½éD215 * 216 * ±ÌÖÍCCPUbNóÔilock_flagªTRUEÌóÔjÅÄÎêé±ÆÍ217 * È¢àÌÆzèµÄ¢éD199 * CPUロック状態への移行 200 * 201 * IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー 202 * ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK) 203 * に設定する.また,lock_flagをTRUEにする. 204 * 205 * IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを 206 * saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル 207 * 上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定 208 * されている状態にあたる. 209 * 210 * この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは 211 * ないものと想定している. 218 212 */ 219 213 Inline void … … 226 220 227 221 /* 228 * current_ipl() ÌÔèlð¼Úsaved_iplÉÛ¶¹¸CêÏipl229 * ðp¢Ä¢éÌÍCcurrent_ipl()ðÄñ¾¼ãÉݪ¶µC230 * N®³ê½ÝÅsaved_iplªÏX³êéÂ\«ª é½ßÅ231 * éD222 * current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl 223 * を用いているのは,current_ipl()を呼んだ直後に割込みが発生し, 224 * 起動された割込み処理でsaved_iplが変更される可能性があるためで 225 * ある. 232 226 */ 233 227 ipl = current_ipl(); … … 246 240 247 241 /* 248 * CPU bNóÔÌð249 * 250 * lock_flag ðFALSEɵCIPMin[hEFAÌÝDæx}XNjðC251 * saved_iipm ÉÛ¶µ½lÉß·D252 * 253 * ±ÌÖÍCCPUbNóÔilock_flagªtrueÌóÔjÅÌÝÄÎêéà254 * ÌÆzèµÄ¢éD242 * CPUロック状態の解除 243 * 244 * lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を, 245 * saved_iipmに保存した値に戻す. 246 * 247 * この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも 248 * のと想定している. 255 249 */ 256 250 Inline void … … 270 264 271 265 /* 272 * CPU bNóÔÌQÆ266 * CPUロック状態の参照 273 267 */ 274 268 Inline bool_t … … 287 281 288 282 /* 289 * ifãÌjÝDæx}XNÌÝè290 * 291 * CPU bNtOªNA³êÄ¢éÍCn[hEFAÌÝDæx}292 * XNðÝè·éDCPUbNtOªZbg³êÄ¢éÍCsaved_iipm293 * ðÝèµC³çÉCn[hEFAÌÝDæx}XNðCÝèµæ¤Æ294 * µ½ifãÌjÝDæx}XNÆTIPM_LOCKÌ¢ûÉÝè·éD283 * (モデル上の)割込み優先度マスクの設定 284 * 285 * CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ 286 * スクを設定する.CPUロックフラグがセットされている時は,saved_iipm 287 * を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと 288 * した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する. 295 289 */ 296 290 Inline void … … 316 310 317 311 /* 318 * ifãÌjÝDæx}XNÌQÆ319 * 320 * CPU bNtOªNA³êÄ¢éÍn[hEFAÌÝDæx}321 * XNðCZbg³êÄ¢éÍsaved_iipmðQÆ·éD312 * (モデル上の)割込み優先度マスクの参照 313 * 314 * CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ 315 * スクを,セットされている時はsaved_iipmを参照する. 322 316 */ 323 317 Inline PRI … … 343 337 344 338 /* 345 * ÝvÖ~tOÌZbg346 * 347 * Ý®«ªÝè³êĢȢÝvCÉεÄÝvÖ~348 * tOðZbgµæ¤Æµ½êÉÍCFALSEðÔ·D339 * 割込み要求禁止フラグのセット 340 * 341 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 342 * フラグをセットしようとした場合には,FALSEを返す. 349 343 */ 350 344 Inline bool_t … … 352 346 { 353 347 /* 354 * xè`ª0Å éêÍCFG_INT³êĢȢ348 * レベル定義が0である場合はCFG_INTされていない 355 349 */ 356 350 if( cfg_int_table[intno].intpri == 0 ){ … … 368 362 369 363 /* 370 * ÝvÖ~tOÌNA371 * 372 * Ý®«ªÝè³êĢȢÝvCÉεÄÝvÖ~373 * tOðNAµæ¤Æµ½êÉÍCFALSEðÔ·D364 * 割込み要求禁止フラグのクリア 365 * 366 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 367 * フラグをクリアしようとした場合には,FALSEを返す. 374 368 */ 375 369 Inline bool_t … … 377 371 { 378 372 /* 379 * xè`ª0Å éêÍCFG_INT³êĢȢ373 * レベル定義が0である場合はCFG_INTされていない 380 374 */ 381 375 if( cfg_int_table[intno].intpri == 0 ){ … … 393 387 394 388 /* 395 * ÝvÌNA389 * 割込み要求のクリア 396 390 */ 397 391 Inline void … … 406 400 407 401 /* 408 * ÝvÌ`FbN402 * 割込み要求のチェック 409 403 */ 410 404 Inline bool_t … … 412 406 { 413 407 /* 414 * ÝvWX^Í0 or 1ŵ©È¢½ß,415 * »ÌÜÜÌlðÔ·.408 * 割込み要求レジスタは0 or 1でしかないため, 409 * そのままの値を返す. 416 410 */ 417 411 return ( *IR_REG(intno) ); … … 423 417 424 418 /* 425 * ÝvCÌ®«ÌÝè419 * 割込み要求ラインの属性の設定 426 420 */ 427 421 extern void x_config_int( INTNO intno, ATR intatr, PRI intpri ); … … 429 423 430 424 /* 431 * ÝnhÌüûÅKvÈIRCì425 * 割込みハンドラの入口で必要なIRC操作 432 426 * 433 427 */ … … 438 432 439 433 /* 440 * xoÌÝÉεÄÍÝXe[^X441 * tOðNA·é.434 * レベル検出の割込みに対しては割込みステータス 435 * フラグをクリアする. 442 436 */ 443 437 if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){ 444 438 if( *IR_REG(intno) > 0U ){ 445 439 /* 446 * OÝÌê, IRQ[qªHighÉßÁÄ¢é447 * ±ÆðmF·é|ªLÚ³êÄ¢éª, Ȫ·é.440 * 外部割込みの場合, IRQ端子がHighに戻っている 441 * ことを確認する旨が記載されているが, 省略する. 448 442 */ 449 443 // *ir_reg_addr[intno] = 0U; 450 444 451 445 /* 452 * n[hEFA}j 453 AÉ0ÉÈÁ½±Æð 454 * mF·é|ªLÚ é½ß, WX^lðÇÝo·. 446 * ハードウェアマニュアルに0になったことを 447 * 確認する旨が記載あるため, レジスタ値を読み出す. 455 448 */ 456 449 // reg = *ir_reg_addr[intno]; … … 461 454 462 455 /* 463 * ÝnhÌoûÅKvÈIRCì456 * 割込みハンドラの出口で必要なIRC操作 464 457 * 465 458 */ … … 467 460 i_end_int( INTNO intno ) 468 461 { 469 /* ÁÉs¤×«ÍÈ¢*/470 } 471 472 473 /* 474 * ÅDæÊ^XNÖÌfBXpb`iprc_support.a30j475 * 476 * dispatch ÍC^XNReLXg©çÄÑo³ê½T[rXR[©477 * çÄÑo·×«àÌÅC^XNReLXgECPUbNóÔEfBXpb478 * `ÂóÔEifãÌjÝDæx}XNSðóÔÅÄÑo³È479 * ¯êÎÈçÈ¢D462 /* 特に行うべき処理はない */ 463 } 464 465 466 /* 467 * 最高優先順位タスクへのディスパッチ(prc_support.a30) 468 * 469 * dispatchは,タスクコンテキストから呼び出されたサービスコール処理か 470 * ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ 471 * チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな 472 * ければならない. 480 473 */ 481 474 extern void dispatch( void ); 482 475 483 476 /* 484 * fBXpb`Ì®ìJniprc_support.a30j485 * 486 * start_dispatch ÍCJ[lN®ÉÄÑo·×«àÌÅC·×ÄÌ487 * ÝðÖ~µ½óÔiSÝbNóÔƯÌóÔjÅÄÑo³È¯êÎ488 * ÈçÈ¢D477 * ディスパッチャの動作開始(prc_support.a30) 478 * 479 * start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込 480 * みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ 481 * ならない. 489 482 */ 490 483 extern void start_dispatch( void ) NoReturn; 491 484 492 485 /* 493 * »ÝÌReLXgðÌÄÄfBXpb`iprc_support.a30j494 * 495 * exit_and_dispatch ÍCext_tsk©çÄÑo·×«àÌÅC^XNReL496 * XgECPUbNóÔEfBXpb`ÂóÔEifãÌjÝDæ497 * x}XNSðóÔÅÄÑo³È¯êÎÈçÈ¢D486 * 現在のコンテキストを捨ててディスパッチ(prc_support.a30) 487 * 488 * exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ 489 * スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先 490 * 度マスク全解除状態で呼び出さなければならない. 498 491 */ 499 492 #define _kernel_exit_and_dispatch(); \ … … 504 497 505 498 /* 506 * J[lÌI¹ÌÄoµiprc_support.a30j507 * 508 * call_exit_kernel ÍCJ[lÌI¹ÉÄÑo·×«àÌÅCñ^XN509 * ReLXgÉØè·¦ÄCJ[lÌI¹iexit_kerneljðÄÑo510 * ·D499 * カーネルの終了処理の呼出し(prc_support.a30) 500 * 501 * call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク 502 * コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出 503 * す. 511 504 */ 512 505 extern void call_exit_kernel( void ) NoReturn; 513 506 514 507 /* 515 * ^XNReLXgÌú»516 * 517 * ^XNªx~óÔ©çÀsÅ«éóÔÉÚs·éÉÄÎêéD±Ì_518 * ÅX^bNÌæðgÁÄÍÈçÈ¢D519 * 520 * activate_context ðCCCÖÅÍÈ}Nè`ƵĢéÌÍC521 * ±Ì_ÅÍTCBªè`³êĢȢ½ßÅ éD508 * タスクコンテキストの初期化 509 * 510 * タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点 511 * でスタック領域を使ってはならない. 512 * 513 * activate_contextを,インライン関数ではなくマクロ定義としているのは, 514 * この時点ではTCBが定義されていないためである. 522 515 */ 523 516 extern void start_r( void ); … … 527 520 { \ 528 521 \ 529 /* X^bN|C^úlÌÝè*/ \522 /* スタックポインタ初期値の設定 */ \ 530 523 ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) + \ 531 524 ( p_tcb )->p_tinib->stksz ); \ 532 /* N®ÔnÌÝè*/ \525 /* 起動番地の設定 */ \ 533 526 ( p_tcb )->tskctxb.pc = ( FP ) start_r; \ 534 527 } \ … … 537 530 538 531 /* 539 * calltex ÍgpµÈ¢532 * calltexは使用しない 540 533 */ 541 534 #define OMIT_CALLTEX … … 543 536 544 537 /* 545 * ÝnhÌÝè546 * 547 * RX630 ÍROMÉÝxN^ðzu·é½ßC{ÖÍóÖÅÀ·éD538 * 割込みハンドラの設定 539 * 540 * RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する. 548 541 */ 549 542 Inline void … … 554 547 555 548 /* 556 * CPU áOnhÌÝè557 * 558 * RX630 ÍROMÉáOxN^ðzu·é½ßC{ÖÍóÖÅÀ·éD549 * CPU例外ハンドラの設定 550 * 551 * RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する. 559 552 */ 560 553 Inline void … … 565 558 566 559 /* 567 * Ý/áOnhÌüû̶¬}N568 * 569 * ev[gt@CÉæ趬·é½ßó}NÆ·éD560 * 割込み/例外ハンドラの入口処理の生成マクロ 561 * 562 * テンプレートファイルにより生成するため空マクロとする. 570 563 */ 571 564 #define HDR_ENTRY(hdr, intexc_num , tobejmp) 572 565 573 566 /* 574 * ÝnhÌüû̶¬}N567 * 割込みハンドラの入口処理の生成マクロ 575 568 */ 576 569 #define _INT_ENTRY(inhno, inthdr) _kernel_##inthdr##_##inhno##_entry … … 583 576 584 577 /* 585 * CPU áOnhÌüû̶¬}N578 * CPU例外ハンドラの入口処理の生成マクロ 586 579 */ 587 580 #define _EXC_ENTRY(excno , exchdr) _kernel_##exchdr##_##excno##_entry … … 594 587 595 588 /* 596 * CPU áO̶µ½ÌReLXgÌQÆ597 * 598 * CPU áO̶µ½ÌReLXgªC^XNReLXgÌÉFALSEC599 * »¤ÅÈ¢ÉtrueðÔ·D589 * CPU例外の発生した時のコンテキストの参照 590 * 591 * CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE, 592 * そうでない時にtrueを返す. 600 593 */ 601 594 Inline bool_t … … 603 596 { 604 597 /* 605 * lXgJE^ª1æèåÈçñ^XNReLXg598 * ネストカウンタが1より大なら非タスクコンテキスト 606 599 */ 607 600 return( intnest > 1U ); … … 610 603 611 604 /* 612 * CPU áOîñ p_excinf ©ç PSW Ìlðæ¾·é½ßÌItZbgl613 * EXCNO + ACC + FPSW + R1 `R15 + PC605 * CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値 606 * EXCNO + ACC + FPSW + R1〜R15 + PC 614 607 */ 615 608 #define EXC_GET_PSW_OFFSET (4+8+4+60+4) 616 609 617 610 /* 618 * CPU áO̶µ½ÌIPLÌQÆ611 * CPU例外の発生した時のIPLの参照 619 612 */ 620 613 Inline uint32_t … … 634 627 635 628 /* 636 * CPU áO̶µ½ÌReLXgÆÝÌ}XNóÔÌQÆ637 * 638 * CPU áO̶µ½ÌVXeóÔªCJ[lÀsÅÈC^XNR639 * eLXgÅ èCSÝbNóÔÅÈCCPUbNóÔÅÈCi640 * fãÌjÝDæx}XNSðóÔÅ éÉtrueC»¤ÅÈ¢641 * ÉFALSEðÔ·iCPUáOªJ[lÇOÌÝŶµ½ê642 * ÉàFALSEðÔ·jD629 * CPU例外の発生した時のコンテキストと割込みのマスク状態の参照 630 * 631 * CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ 632 * ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ 633 * デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時 634 * にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合 635 * にもFALSEを返す). 643 636 * 644 * J[lÀsÅÈ¢¨ (TIPM_LOCK== -15) ItO== 1637 * カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1 645 638 * (else) IPL < IPL_LOCK 646 * ^XNReLXgÅ é¨intnest == 0647 * SÝbNÅÈ¢¨ ItO== 1648 * ÝDæx}XNªSð¨IPL == 0639 * タスクコンテキストである→intnest == 0 640 * 全割込みロックでない→ Iフラグ == 1 641 * 割込み優先度マスクが全解除→IPL == 0 649 642 * 650 643 * … … 659 652 660 653 /* 661 * CPU áO̶µ½ÌReLXgÆÝ^CPUbNóÔÌQÆ662 * 663 * CPU áO̶µ½ÌVXeóÔªCJ[lÀsÅÈC^XNR664 * eLXgÅ èCSÝbNóÔÅÈCCPUbNóÔÅÈ¢É665 * true C»¤ÅÈ¢ÉfalseðÔ·iCPUáOªJ[lÇOÌÝ666 * Ŷµ½êÉàfalseðÔ·jD654 * CPU例外の発生した時のコンテキストと割込み/CPUロック状態の参照 655 * 656 * CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ 657 * ンテキストであり,全割込みロック状態でなく,CPUロック状態でない時に 658 * true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処 659 * 理中で発生した場合にもfalseを返す). 667 660 * 668 * J[lÀsÅÈ¢¨ (TIPM_LOCK== -15) ItO== 1661 * カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1 669 662 * (else) IPL < TIPM_LOCK 670 * ^XNReLXgÅ é¨intnest < 1671 * SÝbNÅÈ¢¨ ItO== 1672 * CPU bNóÔÅÈ¢¨(TIPM_LOCK== -15) ItO== 1663 * タスクコンテキストである→intnest < 1 664 * 全割込みロックでない→ Iフラグ == 1 665 * CPUロック状態でない→(TIPM_LOCK== -15) Iフラグ == 1 673 666 * (else) IPL < TIPM_LOCK 674 667 */ … … 688 681 689 682 /* 690 * vZbT˶Ìú»683 * プロセッサ依存の初期化 691 684 */ 692 685 extern void prc_initialize( void ); 693 686 694 687 /* 695 * vZbT˶ÌI¹688 * プロセッサ依存の終了時処理 696 689 */ 697 690 extern void prc_terminate( void ); … … 700 693 #ifndef OMIT_DEFAULT_INT_HANDLER 701 694 /* 702 * ¢o^Ìݪ¶µ½êÉÄÑo³êé695 * 未登録の割込みが発生した場合に呼び出される 703 696 */ 704 697 void default_int_handler( void ); … … 707 700 #ifndef OMIT_DEFAULT_EXC_HANDLER 708 701 /* 709 * ¢o^ÌáOª¶µ½êÉÄÑo³êé702 * 未登録の例外が発生した場合に呼び出される 710 703 */ 711 704 void default_exc_handler( void ); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_def.csv
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_insn.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 12 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 13 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 14 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 15 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 16 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 17 * XR[hÉÜÜêÄ¢é±ÆD 18 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 19 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 20 gip 21 * Ò}j 22 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 23 * ̳ÛØKèðfÚ·é±ÆD 24 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 25 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 26 * ÆD 27 * (a) Äzzɺ¤hL 28 gipÒ}j 29 AÈÇjÉCãLÌ 30 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 31 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 32 * ñ·é±ÆD 33 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 34 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 35 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 36 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 37 * ÆÓ·é±ÆD 12 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 * スコード中に含まれていること. 18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 * の無保証規定を掲載すること. 22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 * と. 25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 * 報告すること. 29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 * 免責すること. 38 34 * 39 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨40 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI41 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF42 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»43 * ÌÓCðíÈ¢D35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 44 40 * 45 41 * @(#) $Id$ … … 47 43 48 44 /* 49 * vZbTÌÁê½ßÌCCÖè`iRX630pj45 * プロセッサの特殊命令のインライン関数定義(RX630用) 50 46 */ 51 47 … … 65 61 66 62 /* 67 * I tO, IPLðæ¾·é½ßÌ}Nè`63 * Iフラグ, IPLを取得するためのマクロ定義 68 64 */ 69 65 #define PSW_I_MASK ( 0x00010000UL ) … … 72 68 73 69 /* 74 * vZbTXe[^XWX^(PSW)Ì»ÝlÌÇoµ70 * プロセッサステータスレジスタ(PSW)の現在値の読出し 75 71 */ 76 72 #pragma inline_asm current_psw … … 83 79 84 80 /* 85 * vZbTXe[^XWX^(PSW)ÖÝè81 * プロセッサステータスレジスタ(PSW)へ設定 86 82 */ 87 83 #pragma inline_asm set_psw … … 94 90 95 91 /* 96 * IPL Ì»ÝlÌÇoµ92 * IPLの現在値の読出し 97 93 */ 98 94 Inline uint32_t … … 104 100 105 101 /* 106 * IPL ÖÝè102 * IPLへ設定 107 103 */ 108 104 Inline void … … 114 110 115 111 /* 116 * NMI ð·×ÄÌÝÌÖ~112 * NMIを除くすべての割込みの禁止 117 113 */ 118 114 #pragma inline_asm disint … … 125 121 126 122 /* 127 * NMI ð·×ÄÌÝÌÂ123 * NMIを除くすべての割込みの許可 128 124 */ 129 125 #pragma inline_asm enaint … … 136 132 137 133 /* 138 * GfBAÏ·16bit134 * エンディアン変換 16bit 139 135 */ 140 136 #pragma inline_asm rev_endian_uint16 … … 146 142 147 143 /* 148 * GfBAÏ·32bit144 * エンディアン変換 32bit 149 145 */ 150 146 #pragma inline_asm rev_endian_uint32 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * kernel.h ÌvZbT˶iRX630pj41 * kernel.hのプロセッサ依存部(RX630用) 46 42 * 47 * ±ÌCN[ht@CÍCtarget_kernel.hiܽÍC»±©çCN48 * [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç49 * ¼ÚCN[hµÄÍÈçÈ¢D43 * このインクルードファイルは,target_kernel.h(または,そこからインク 44 * ルードされるファイル)のみからインクルードされる.他のファイルから 45 * 直接インクルードしてはならない. 50 46 */ 51 47 … … 54 50 55 51 /* 56 * J[l{ÌðRpC·é½ßÌ}Nè`52 * カーネル本体をコンパイルするためのマクロ定義 57 53 * 58 * {«ÅÍ1Öð1IuWFNgt@CÉRpC·é±ÆªÅ«È¢½ßC59 * ALLFUNC }Nðè`·éD54 * 本環境では1関数を1オブジェクトファイルにコンパイルすることができないため, 55 * ALLFUNCマクロを定義する. 60 56 */ 61 57 #define ALLFUNC … … 63 59 64 60 /* 65 * T|[g·é@\Ìè`61 * サポートする機能の定義 66 62 */ 67 #define TOPPERS_TARGET_SUPPORT_DIS_INT /* dis_int ðT|[g·é*/68 #define TOPPERS_TARGET_SUPPORT_ENA_INT /* ena_int ðT|[g·é*/63 #define TOPPERS_TARGET_SUPPORT_DIS_INT /* dis_intをサポートする */ 64 #define TOPPERS_TARGET_SUPPORT_ENA_INT /* ena_intをサポートする */ 69 65 70 66 71 67 /* 72 * J[lÇÌÝDæxÌÍÍ68 * カーネル管理の割込み優先度の範囲 73 69 * 74 * TMIN_INTPRI Ìè`ðÏX·é±ÆÅCÇÌxæèà¢ÝDæx75 * ðÂàÌðJ[lÇOÌÝÆ·é©ðÏXÅ«éD70 * TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度 71 * を持つものをカーネル管理外の割込みとするかを変更できる. 76 72 * 77 * TMIN_INTPRI ÉÝèÅ«élÍC-15`-1ÌÍÍÅ éDá¦ÎTMIN_INTPRI78 * ð-14ÉÝè·éÆCNMIÉÁ¦Äx7ÌݪJ[lÇOÆÈéD79 * TMIN_INTPRI ð-15ÉÝè·éÆCNMIÈOÉJ[lÇOÌÝð80 * ݯȢ±ÆÉÈéD73 * TMIN_INTPRIに設定できる値は,-15〜-1の範囲である.例えばTMIN_INTPRI 74 * を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる. 75 * TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを 76 * 設けないことになる. 81 77 */ 82 78 #ifndef TMIN_INTPRI 83 #define TMIN_INTPRI ( -15 ) /* ÝDæxÌŬliÅlj*/79 #define TMIN_INTPRI ( -15 ) /* 割込み優先度の最小値(最高値)*/ 84 80 #endif /* TMIN_INTPRI */ 85 #define TMAX_INTPRI ( -1 ) /* ÝDæxÌÅåliÅálj*/81 #define TMAX_INTPRI ( -1 ) /* 割込み優先度の最大値(最低値) */ 86 82 87 83 88 84 /* 89 * Ý®«Ìè`85 * 割込み属性の定義 90 86 */ 91 #define TA_POSEDGE TA_EDGE /* |WeBuGbWgK*/92 #define TA_NEGEDGE UINT_C( 0x04 ) /* lKeBuGbWgK*/93 #define TA_BOTHEDGE UINT_C( 0x08 ) /* ¼GbWgK*/87 #define TA_POSEDGE TA_EDGE /* ポジティブエッジトリガ */ 88 #define TA_NEGEDGE UINT_C( 0x04 ) /* ネガティブエッジトリガ */ 89 #define TA_BOTHEDGE UINT_C( 0x08 ) /* 両エッジトリガ */ 94 90 95 #define TA_LOWLEVEL UINT_C( 0x10 ) /* L x*/91 #define TA_LOWLEVEL UINT_C( 0x10 ) /* Lレベル */ 96 92 97 93 98 94 /* 99 * ftHgÌÝ/áOnhÌL³95 * デフォルトの割込み/例外ハンドラの有無 100 96 */ 101 97 /*#define OMIT_DEFAULT_INT_HANDLER*/ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_offset.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 $ 2 $ ItZbgt@C¶¬pev[gt@CiRX630pj2 $ オフセットファイル生成用テンプレートファイル(RX630用) 3 3 $ 4 4 5 5 $ 6 $ ItZbglÌ}Nè`̶¬6 $ オフセット値のマクロ定義の生成 7 7 $ 8 8 $DEFINE("TCB_p_tinib", offsetof_TCB_p_tinib)$ … … 15 15 16 16 $ 17 $ rbgItZbglÌ}Nè`̶¬17 $ ビットオフセット値等のマクロ定義の生成 18 18 $ 19 19 $DEFINE_BIT("TCB_enatex", sizeof_TCB, "B")$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.def
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_sil.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 7 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 8 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 9 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 10 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 11 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 12 * XR[hÉÜÜêÄ¢é±ÆD 13 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 14 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 15 gip 16 * Ò}j 17 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 18 * ̳ÛØKèðfÚ·é±ÆD 19 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 20 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 21 * ÆD 22 * (a) Äzzɺ¤hL 23 gipÒ}j 24 AÈÇjÉCãLÌ 25 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 26 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 27 * ñ·é±ÆD 28 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 29 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 30 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 31 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 32 * ÆÓ·é±ÆD 7 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 * スコード中に含まれていること. 13 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 * の無保証規定を掲載すること. 17 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 * と. 20 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 * 報告すること. 24 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 * 免責すること. 33 29 * 34 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨35 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI36 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF37 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»38 * ÌÓCðíÈ¢D30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 39 35 * 40 36 * @(#) $Id$ … … 42 38 43 39 /* 44 * sil.h ÌvZbT˶iRX630pj40 * sil.hのプロセッサ依存部(RX630用) 45 41 */ 46 42 … … 55 51 56 52 /* 57 * SÝÖ~53 * 全割込み禁止 58 54 */ 59 55 Inline uint32_t … … 70 66 71 67 /* 72 * SÝÂ68 * 全割込み許可 73 69 */ 74 70 Inline void … … 82 78 83 79 /* 84 * SÝbNóÔ̧ä80 * 全割込みロック状態の制御 85 81 */ 86 82 #define SIL_PRE_LOC uint32_t TOPPERS_i_psw; … … 90 86 91 87 /* 92 * GfBA̽]88 * エンディアンの反転 93 89 * 94 * {J«ÅÍGfBAÏ·½ßª¶Ý·é½ß,95 * A[LeN`˶ÉÄ}Nðã«·é.90 * 本開発環境ではエンディアン変換命令が存在するため, 91 * アーキテクチャ依存部にてマクロを上書きする. 96 92 */ 97 93 #define TOPPERS_SIL_REV_ENDIAN_UINT16( data ) \ … … 102 98 103 99 /* 104 * ÷ÔÒ¿100 * 微少時間待ち 105 101 */ 106 102 extern void sil_dly_nse( ulong_t dlytim ); … … 110 106 111 107 /* 112 * vZbTÌGfBA108 * プロセッサのエンディアン 113 109 */ 114 110 #ifdef __LIT 115 #define SIL_ENDIAN_LITTLE /* gGfBA*/111 #define SIL_ENDIAN_LITTLE /* リトルエンディアン */ 116 112 #endif 117 113 #ifdef __BIG 118 #define SIL_ENDIAN_BIG /* rbOGfBA*/114 #define SIL_ENDIAN_BIG /* ビッグエンディアン */ 119 115 #endif 120 116 121 117 122 118 /* 123 * 8 rbgPÊÌÇoµ^Ý119 * 8ビット単位の読出し/書込み 124 120 */ 125 121 #ifdef UINT8_MAX … … 145 141 146 142 /* 147 * 16 rbgPÊÌÇoµ^Ý143 * 16ビット単位の読出し/書込み 148 144 */ 149 145 … … 165 161 } 166 162 167 #ifdef SIL_ENDIAN_BIG /* rbOGfBAvZbT*/163 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 168 164 169 165 #define sil_reh_bem(mem) sil_reh_mem(mem) … … 194 190 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */ 195 191 #else /* SIL_ENDIAN_BIG */ 196 #ifdef SIL_ENDIAN_LITTLE /* gGfBAvZbT*/192 #ifdef SIL_ENDIAN_LITTLE /* リトルエンディアンプロセッサ */ 197 193 198 194 #define sil_reh_lem(mem) sil_reh_mem(mem) … … 230 226 231 227 /* 232 * 32 rbgPÊÌÇoµ^Ý228 * 32ビット単位の読出し/書込み 233 229 */ 234 230 … … 250 246 } 251 247 252 #ifdef SIL_ENDIAN_BIG /* rbOGfBAvZbT*/248 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 253 249 254 250 #define sil_rew_bem(mem) sil_rew_mem(mem) … … 278 274 279 275 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */ 280 #else /* SIL_ENDIAN_BIG */ /* gGfBAvZbT*/276 #else /* SIL_ENDIAN_BIG */ /* リトルエンディアンプロセッサ */ 281 277 282 278 #define sil_rew_lem(mem) sil_rew_mem(mem) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 7 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 8 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 9 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 10 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 11 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 12 * XR[hÉÜÜêÄ¢é±ÆD 13 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 14 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 15 gip 16 * Ò}j 17 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 18 * ̳ÛØKèðfÚ·é±ÆD 19 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 20 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 21 * ÆD 22 * (a) Äzzɺ¤hL 23 gipÒ}j 24 AÈÇjÉCãLÌ 25 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 26 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 27 * ñ·é±ÆD 28 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 29 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 30 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 31 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 32 * ÆÓ·é±ÆD 7 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 * スコード中に含まれていること. 13 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 * の無保証規定を掲載すること. 17 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 * と. 20 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 * 報告すること. 24 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 * 免責すること. 33 29 * 34 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨35 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI36 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF37 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»38 * ÌÓCðíÈ¢D30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 39 35 * 40 36 * @(#) $Id$ … … 42 38 43 39 /* 44 * t_stddef.h ÌvZbT˶iRX630pj40 * t_stddef.hのプロセッサ依存部(RX630用) 45 41 * 46 * ±ÌCN[ht@CÍCtarget_stddef.hiܽÍC»±©çCN47 * [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç48 * ¼ÚCN[hµÄÍÈçÈ¢D42 * このインクルードファイルは,target_stddef.h(または,そこからインク 43 * ルードされるファイル)のみからインクルードされる.他のファイルから 44 * 直接インクルードしてはならない. 49 45 */ 50 46 … … 53 49 54 50 /* 55 * ^[Qbgð¯Ê·é½ßÌ}NÌè`51 * ターゲットを識別するためのマクロの定義 56 52 */ 57 #define TOPPERS_RX630 /* vZbTªÌ*/53 #define TOPPERS_RX630 /* プロセッサ略称 */ 58 54 59 55 #endif /* TOPPERS_PRC_STDDEF_H */ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_support.src
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
r164 r167 11 11 ; Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 ; 13 ; ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 14 ; Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 15 ; ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 16 ; (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 17 ; \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 18 ; XR[hÉÜÜêÄ¢é±ÆD 19 ; (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 20 ; pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 21 gip 22 ; Ò}j 23 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 24 ; ̳ÛØKèðfÚ·é±ÆD 25 ; (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 26 ; pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 27 ; ÆD 28 ; (a) Äzzɺ¤hL 29 gipÒ}j 30 AÈÇjÉCãLÌ 31 ; ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 32 ; (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 33 ; ñ·é±ÆD 34 ; (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 35 ; Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 36 ; ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 37 ; RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 38 ; ÆÓ·é±ÆD 13 ; 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 14 ; ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 15 ; 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 16 ; (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 17 ; 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 18 ; スコード中に含まれていること. 19 ; (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 20 ; 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 21 ; 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 22 ; の無保証規定を掲載すること. 23 ; (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 24 ; 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 25 ; と. 26 ; (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 27 ; 作権表示,この利用条件および下記の無保証規定を掲載すること. 28 ; (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 29 ; 報告すること. 30 ; (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 31 ; 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 32 ; また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 33 ; 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 34 ; 免責すること. 39 35 ; 40 ; {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨41 ; æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI42 ; ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF43 ; AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»44 ; ÌÓCðíÈ¢D36 ; 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 ; よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 ; に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 ; アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 ; の責任を負わない. 45 41 ; 46 42 ; @(#) $Id: prc_support.src 536 2014-10-09 23:11:40Z coas-nagasima $ … … 48 44 49 45 ; 50 ; vZbT˶W 51 [ AZu¾êiRX630pj 52 ; 53 54 ; 55 ; fBXpb`¨æÑÝ(CPUáO)oüèûÌ[: 56 ; ®ì[hðȺÌæ¤Éè`·é. 57 ; fBXpb`[h: 58 ; CPUbNóÔ, ÝDæx}XNSðóÔ, 59 ; ^XNReLXg(intnest = 0), ^XNX^bN 60 ; Ý(CPUáO)[h 61 ; SÝbNóÔ(PSWWX^Irbg = 0), 62 ; ÝDæx}XNSðÅÈ¢óÔ(IPL != 0) 63 ; ÝReLXg(intnest != 0), ÝX^bN 64 ; 65 ; J[lÇOÝÌT|[gL³Æ, CPUbNóÔ, ÝDæx 66 ; }XNSðóÔÌÖWÍȺÌÊèÅ é. 67 ; J[lÇOÝ¢T|[g: 68 ; CPUbNóÔ(PSWWX^Irbg = 0) 69 ; ÝDæx}XNSðóÔ(IPL = 0) 70 ; J[lÇOÝT|[g: 71 ; CPUbNóÔ 72 ; (PSWWX^Irbg = 0, IPL = IPL_LOCK, lock_flag = true) 73 ; ÝDæx}XNSðóÔ(saved_ipl = 0) 74 ; 75 ; e\¢Ì|C^ðȺÌæ¤ÉeWX^ÉATC·é. 76 ; r15 = p_runtsk ½¾µfBXpb`ÌeoûÅͳø 77 ; r14 = *p_runtsk dispatcher ÌÅÍ p_runtsk mèÉÄæ¾·é 78 ; eüèû©çÅÉÏANZX·éÆ«ÉãLWX^ÉÛ¶·é. 79 ; 80 ; \¢ÌACgÖÌÎ 81 ; \¢ÌACgª4Byte(ApbN)Ìê: 82 ; êÊIÈWX^ÎAhbVOªÂ\ 83 ; á: mov.l #__kernel_p_runtsk, r15 46 ; プロセッサ依存モジュール アセンブリ言語部(RX630用) 47 ; 48 49 ; 50 ; ディスパッチャおよび割込み(CPU例外)出入り口のルール: 51 ; 動作モードを以下のように定義する. 52 ; ディスパッチャモード: 53 ; CPUロック状態, 割込み優先度マスク全解除状態, 54 ; タスクコンテキスト(intnest = 0), タスクスタック 55 ; 割込み(CPU例外)処理モード 56 ; 全割込みロック状態(PSWレジスタIビット = 0), 57 ; 割込み優先度マスク全解除でない状態(IPL != 0) 58 ; 割込みコンテキスト(intnest != 0), 割込みスタック 59 ; 60 ; カーネル管理外割込みのサポート有無と, CPUロック状態, 割込み優先度 61 ; マスク全解除状態の関係は以下の通りである. 62 ; カーネル管理外割込み未サポート時: 63 ; CPUロック状態(PSWレジスタIビット = 0) 64 ; 割込み優先度マスク全解除状態(IPL = 0) 65 ; カーネル管理外割込みサポート時: 66 ; CPUロック状態 67 ; (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true) 68 ; 割込み優先度マスク全解除状態(saved_ipl = 0) 69 ; 70 ; 各構造体ポインタを以下のように各レジスタにアサインする. 71 ; r15 = p_runtsk ただしディスパッチャの各出口では無効 72 ; r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する 73 ; 各入り口から最初に変数アクセスするときに上記レジスタに保存する. 74 ; 75 ; 構造体アライメントへの対応 76 ; 構造体アライメントが4Byte(アンパック)の場合: 77 ; 一般的なレジスタ相対アドレッシングが可能 78 ; 例: mov.l #__kernel_p_runtsk, r15 84 79 ; mov.l r0, TCB_sp[r15] 85 ; \¢ÌACgª4ByteÅÍÈ¢(pbN)Ìê:86 ; mov.l Ìæ¤ÉOTCYwèÌêAÎlÍ4Ì{ÌÝLø87 ; ±Ì½ß, êxÎÛAhXðßÄ©çANZX·éKvª é88 ; á: mov.l #__kernel_p_runtsk, r1580 ; 構造体アライメントが4Byteではない(パック)の場合: 81 ; mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効 82 ; このため, 一度対象アドレスを求めてからアクセスする必要がある 83 ; 例: mov.l #__kernel_p_runtsk, r15 89 84 ; add #TCB_sp, r15, r5 90 85 ; mov.l r0, [r5] 91 ; eItZbglð»fµ, ðAZuÉæèR[hðØèÖ¦é92 ; 93 94 ; 95 ; \¢ÌANZXÌItZbgè`86 ; 各オフセット値を判断し, 条件アセンブルによりコードを切り替える 87 ; 88 89 ; 90 ; 構造体アクセスのオフセット定義 96 91 ; 97 92 .include offset.inc 98 93 99 94 ; 100 ; eíEQUè`(Ht@CÌ#defineè`)95 ; 各種EQU定義(Hファイルの#define定義) 101 96 ; 102 97 .include asm_config.inc … … 150 145 151 146 ; 152 ; TCB_sp ÖÌÝ}N147 ; TCB_sp への書込みマクロ 153 148 ; 154 149 st_TCB_sp .macro src, tcb, tmp … … 162 157 163 158 ; 164 ; TCB_sp ©çÌÇoµ}N159 ; TCB_sp からの読出しマクロ 165 160 ; 166 161 ld_TCB_sp .macro dst, tcb, tmp … … 174 169 175 170 ; 176 ; TCB_pc ÖÌÝ}N171 ; TCB_pc への書込みマクロ 177 172 ; 178 173 st_TCB_pc .macro src, tcb, tmp … … 186 181 187 182 ; 188 ; TCB_pc ©çÌÇoµ}N183 ; TCB_pc からの読出しマクロ 189 184 ; 190 185 ld_TCB_pc .macro dst, tcb, tmp … … 198 193 199 194 ; 200 ; TCB_texptn ©çÌÇoµ}N195 ; TCB_texptn からの読出しマクロ 201 196 ; 202 197 ld_TCB_texptn .macro dst, tcb, tmp … … 210 205 211 206 ; 212 ; TCB_p_tinib ©çÌÇoµ}N207 ; TCB_p_tinib からの読出しマクロ 213 208 ; 214 209 ld_TCB_p_tinib .macro dst, tcb, tmp … … 222 217 223 218 ; 224 ; TINIB_exinf ©çÌÇoµ}N219 ; TINIB_exinf からの読出しマクロ 225 220 ; 226 221 ld_TINIB_exinf .macro dst, tinib, tmp … … 234 229 235 230 ; 236 ; TINIB_task ©çÌÇoµ}N231 ; TINIB_task からの読出しマクロ 237 232 ; 238 233 ld_TINIB_task .macro dst, tinib, tmp … … 249 244 250 245 ; 251 ; API ©çÌ^XNfBXpb`üû252 ; 253 ; ÄÑoµð:254 ; EfBXpb`[h(t@Cwb_QÆ)255 ; 256 ; ±±ÅÍ, ReLXgÌÞðÆ, ÀsÄJÔnÌÝèð·é.246 ; APIからのタスクディスパッチャ入口 247 ; 248 ; 呼び出し条件: 249 ; ・ディスパッチャモード(ファイルヘッダ参照) 250 ; 251 ; ここでは, コンテキストの退避と, 実行再開番地の設定をする. 257 252 ; 258 253 __kernel_dispatch: 259 pushm r6-r13 ; ñXNb`WX^Û¶254 pushm r6-r13 ; 非スクラッチレジスタ保存 260 255 mov.l #__kernel_p_runtsk, r15 261 256 mov.l [r15], r14 262 st_TCB_sp r0, r14, r5 ; X^bN|C^ðTCBÉÛ¶263 st_TCB_pc #dispatch_r, r14, r5 ; ÀsÄJÔnðTCBÉÛ¶257 st_TCB_sp r0, r14, r5 ; スタックポインタをTCBに保存 258 st_TCB_pc #dispatch_r, r14, r5 ; 実行再開番地をTCBに保存 264 259 bra dispatcher 265 260 266 261 ; 267 ; API ÖÌ^XNfBXpb`oû268 ; 269 ; ÄÑoµð:270 ; EfBXpb`[h(t@Cwb_QÆ)271 ; 272 ; ±±ÅÍ, ^XNáOnhÄoµÆ, ReLXgÌAð·é.262 ; APIへのタスクディスパッチャ出口 263 ; 264 ; 呼び出し条件: 265 ; ・ディスパッチャモード(ファイルヘッダ参照) 266 ; 267 ; ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする. 273 268 ; 274 269 dispatch_r: 275 btst #TCB_enatex_bit, TCB_enatex[r14] ; ^XNáOÂ?270 btst #TCB_enatex_bit, TCB_enatex[r14] ; タスク例外処理許可? 276 271 bz dispatch_r_rts 277 ld_TCB_texptn r5, r14, r4 ; Û¯áOvöª é©H272 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 278 273 cmp #0, r5 279 274 bz dispatch_r_rts 280 bsr __kernel_call_texrtn ; ^XNáOnhÄoµÀs275 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 281 276 dispatch_r_rts: 282 popm r6-r13 ; ñXNb`WX^A283 rts ; dispatch ÄÑoµ³Ößé.284 285 ; 286 ; ^XNN®(^XNæªÖÌ^XNfBXpb`oû)287 ; 288 ; ÄÑoµð:289 ; EfBXpb`[h(t@Cwb_QÆ)290 ; 291 ; ±±ÅÍ, CPUbNðóÔɵ, ^XNðN®·é.277 popm r6-r13 ; 非スクラッチレジスタ復帰 278 rts ; dispatch 呼び出し元へ戻る. 279 280 ; 281 ; タスク起動処理(タスク先頭へのタスクディスパッチャ出口) 282 ; 283 ; 呼び出し条件: 284 ; ・ディスパッチャモード(ファイルヘッダ参照) 285 ; 286 ; ここでは, CPUロック解除状態にし, タスクを起動する. 292 287 ; 293 288 __kernel_start_r: 294 289 mov.l #_ext_tsk, r5 295 push.l r5 ; ßèÔnðX^bNÉÏÞ290 push.l r5 ; 戻り番地をスタックに積む 296 291 ld_TCB_p_tinib r5, r14, r4 297 ld_TINIB_exinf r1, r5, r4 ; g£îñðæêøÉÝè298 ld_TINIB_task r5, r5, r4 ; ^XNÌN®Ônðæ¾292 ld_TINIB_exinf r1, r5, r4 ; 拡張情報を第一引数に設定 293 ld_TINIB_task r5, r5, r4 ; タスクの起動番地を取得 299 294 .if TIPM_LOCK == -15 300 setpsw i ; ÝÂ(CPUbNðóÔ)301 .else 302 mov.l #__kernel_lock_flag, r4 ; CPU bNðóÔÖ303 mov.l #0, [r4] ; ±±ÉéÆ«ÍK¸ saved_ipl Ì304 mvtc #00010000H, psw ; lÍ 0 ̽ß, ¼lðÝè·é.305 ; SÝbNðóÔ( I = 1 )306 ; ÝDæx}XNSðóÔ( IPL = 0 )295 setpsw i ; 割込み許可(CPUロック解除状態) 296 .else 297 mov.l #__kernel_lock_flag, r4 ; CPUロック解除状態へ 298 mov.l #0, [r4] ; ここに来るときは必ず saved_ipl の 299 mvtc #00010000H, psw ; 値は 0 のため, 直値を設定する. 300 ; 全割込みロック解除状態( I = 1 ) 301 ; 割込み優先度マスク全解除状態( IPL = 0 ) 307 302 .endif 308 303 jmp r5 309 304 310 305 ; 311 ; J[lN®©çÌ^XNfBXpb`üû312 ; 313 ; ±Ì[`ÍCJ[lN®ÉC·×ÄÌÝðÖ~µ½óÔ314 ; iÝbNóÔƯjÅÄÑo³êéDܽCÝ[hiñ315 ; ^XNReLXgƯjÅÄÑo³êé±ÆðzèµÄ¢éD316 ; 317 ; ÄÑoµð:318 ; EÝ(CPUáO)[h(t@Cwb_QÆ)319 ; 320 ; ±±ÅÍ, fBXpb`[hÉÏX·é.306 ; カーネル起動からのタスクディスパッチャ入口 307 ; 308 ; このルーチンは,カーネル起動時に,すべての割込みを禁止した状態 309 ; (割込みロック状態と同等)で呼び出される.また,割込みモード(非 310 ; タスクコンテキストと同等)で呼び出されることを想定している. 311 ; 312 ; 呼び出し条件: 313 ; ・割込み(CPU例外)処理モード(ファイルヘッダ参照) 314 ; 315 ; ここでは, ディスパッチャモードに変更する. 321 316 ; 322 317 __kernel_start_dispatch: 323 318 mov.l #__kernel_intnest, r5 324 mov.w #0, [r5] ; ^XNReLXgÉØ·¦319 mov.w #0, [r5] ; タスクコンテキストに切換え 325 320 .if TIPM_LOCK != -15 326 mvtc #(IPL_LOCK | 00010000H), psw ; SÝbNðóÔ327 ; ÝDæx}XNSðÅÈ¢óÔ328 .endif 329 330 ; 331 ; ^XNI¹(»ÝÌReLXgðÌÄé)©çÌ^XNfBXpb`üû332 ; 333 ; ÄÑoµð:334 ; EfBXpb`[h(t@Cwb_QÆ)335 ; 336 ; ±±ÅÍ, ½à·é±ÆÍÈ¢.337 ; Ȩ, p_runtsk ÌAhXæ¾¾¯ÍsȤ.321 mvtc #(IPL_LOCK | 00010000H), psw ; 全割込みロック解除状態 322 ; 割込み優先度マスク全解除でない状態 323 .endif 324 325 ; 326 ; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャ入口 327 ; 328 ; 呼び出し条件: 329 ; ・ディスパッチャモード(ファイルヘッダ参照) 330 ; 331 ; ここでは, 何もすることはない. 332 ; なお, p_runtsk のアドレス取得だけは行なう. 338 333 ; 339 334 __exit_and_dispatch: … … 341 336 342 337 ; 343 ; fBXpb`{Ì344 ; 345 ; ÄÑoµð:346 ; E·×ÄÌ^XNÌReLXgÍÛ¶³êÄ¢é.347 ; 348 ; dispatcher ÄoÌX^bN:349 ; E__kernel_dispatch ©ç«½ê : ^XNX^bN350 ; Eexit_and_dispatch ©ç«½ê:351 ; exit_task ©ç«½ê : ^XNX^bN352 ; J[lN®(__kernel_start_dispatch) : ÝX^bN353 ; Eret_int ©ç«½ê : ^XNX^bN354 ; Edispatcher_idle_loop ©ç«½ê : ÝX^bN338 ; ディスパッチャ本体 339 ; 340 ; 呼び出し条件: 341 ; ・すべてのタスクのコンテキストは保存されている. 342 ; 343 ; dispatcher 呼出時のスタック: 344 ; ・__kernel_dispatch からきた場合 : タスクスタック 345 ; ・exit_and_dispatch からきた場合: 346 ; exit_task からきた場合 : タスクスタック 347 ; カーネル起動時(__kernel_start_dispatch) : 割込みスタック 348 ; ・ret_int からきた場合 : タスクスタック 349 ; ・dispatcher_idle_loop からきた場合 : 割込みスタック 355 350 ; 356 351 dispatcher: 357 352 .if LOG_DSP_ENTER == 1 358 353 push.l r15 359 mov.l r14, r1 ; ø(fBXpb`³TCB)ðÝè354 mov.l r14, r1 ; 引数(ディスパッチ元TCB)を設定 360 355 bsr _kernel_log_dsp_enter 361 356 pop.l r15 362 357 .endif 363 358 mov.l #__kernel_p_schedtsk, r5 364 mov.l [r5], [r15] ; p_schedtsk ð p_runtsk É359 mov.l [r5], [r15] ; p_schedtsk を p_runtsk に 365 360 mov.l [r15], r14 366 361 cmp #0, r14 367 bz dispatcher_pre_idle ; schedtsk ªÈ¯êÎACh[vÖ368 ld_TCB_sp r0, r14, r5 ; ^XNX^bN|C^ðA362 bz dispatcher_pre_idle ; schedtsk がなければアイドルループへ 363 ld_TCB_sp r0, r14, r5 ; タスクスタックポインタを復帰 369 364 .if LOG_DSP_LEAVE == 1 370 365 push.l r14 371 mov.l r14, r1 ; ø(fBXpb`æTCB)ðÝè366 mov.l r14, r1 ; 引数(ディスパッチ先TCB)を設定 372 367 bsr _kernel_log_dsp_leave 373 368 pop.l r14 374 369 .endif 375 370 ld_TCB_pc r5, r14, r4 376 jmp r5 ; ÀsÄJÔnÖWv377 378 ; 379 ; schdedtsk ªNULLÌêÍACh[vÉüé380 ; ACh[vÍÝ[hŮ쳹é381 ; 382 ; ±±ÅÝ[hÉØè·¦éÌÍC±±Å¶·éÝÉ383 ; ÇÌX^bNðg¤©Æ¢¤âèÌðÆCÝnhàÅÌ^384 ; XNfBXpb`Ìh~Æ¢¤2ÂÌÓ¡ª éD371 jmp r5 ; 実行再開番地へジャンプ 372 373 ; 374 ; schdedtskがNULLの場合はアイドルループに入る 375 ; アイドルループは割込み処理モードで動作させる 376 ; 377 ; ここで割込みモードに切り換えるのは,ここで発生する割込み処理に 378 ; どのスタックを使うかという問題の解決と,割込みハンドラ内でのタ 379 ; スクディスパッチの防止という2つの意味がある. 385 380 ; 386 381 dispatcher_pre_idle: 387 382 mov.l #__kernel_istkpt,r5 388 mov.l [r5], r0 ; ÝpÌX^bNÖØÖ¦389 mov.l #__kernel_intnest, r5 390 mov.w #1, [r5] ; ñ^XNReLXgÉØ·¦383 mov.l [r5], r0 ; 割込み用のスタックへ切替え 384 mov.l #__kernel_intnest, r5 385 mov.w #1, [r5] ; 非タスクコンテキストに切換え 391 386 .if TIPM_LOCK != -15 392 mov.l #__kernel_lock_flag, r5 ; CPU bNðóÔÖ387 mov.l #__kernel_lock_flag, r5 ; CPUロック解除状態へ 393 388 mov.l #0, [r5] 394 mvtc #0, psw ; Dæx0ÌÝðU389 mvtc #0, psw ; 優先度0の割込み処理中を偽装 395 390 .endif 396 391 397 392 dispatcher_idle_loop: 398 setpsw i ; SÝÂ399 clrpsw i ; SÝÖ~400 401 mov.l #__kernel_reqflg, r5 ; reqflg ª FALSE Èç393 setpsw i ; 全割込み許可 394 clrpsw i ; 全割込み禁止 395 396 mov.l #__kernel_reqflg, r5 ; reqflg が FALSE なら 402 397 mov.l [r5], r4 403 398 cmp #0, r4 404 bz dispatcher_idle_loop ; ACh[vðJèÔ·405 mov.l #0, [r5] ; reqflg ªtrueÈçfalseÉ·é406 mov.l #__kernel_intnest, r5 407 mov.w #0, [r5] ; ^XNReLXgÉØ·¦399 bz dispatcher_idle_loop ; アイドルループを繰り返す 400 mov.l #0, [r5] ; reqflgがtrueならfalseにする 401 mov.l #__kernel_intnest, r5 402 mov.w #0, [r5] ; タスクコンテキストに切換え 408 403 .if TIPM_LOCK != -15 409 mov.l #__kernel_lock_flag, r5 ; CPU bNóÔÖ404 mov.l #__kernel_lock_flag, r5 ; CPUロック状態へ 410 405 mov.l #1, [r5] 411 406 mov.l #__kernel_saved_ipl, r5 412 407 mov.l #0, [r5] 413 mvtc #(IPL_LOCK | PSW_I_MASK), psw ; SÝbNðóÔ414 ; ÝDæx}XNSðÅÈ¢óÔ415 .endif 416 bra dispatcher ; dispatcher Ößé417 418 419 ; 420 ; J[lÌI¹ÌÄoµ421 ; 422 ; [hÆX^bNðñ^XNReLXgpÉØèÖ¦D408 mvtc #(IPL_LOCK | PSW_I_MASK), psw ; 全割込みロック解除状態 409 ; 割込み優先度マスク全解除でない状態 410 .endif 411 bra dispatcher ; dispatcher へ戻る 412 413 414 ; 415 ; カーネルの終了処理の呼出し 416 ; 417 ; モードとスタックを非タスクコンテキスト用に切り替え. 423 418 ; 424 419 .glb __kernel_call_exit_kernel 425 420 __kernel_call_exit_kernel: 426 421 .if TIPM_LOCK != -15 427 clrpsw i ; SÝÖ~428 mov.l #__kernel_lock_flag, r5 ; CPU bNðóÔÖ422 clrpsw i ; 全割込み禁止 423 mov.l #__kernel_lock_flag, r5 ; CPUロック解除状態へ 429 424 mov.l #0, [r5] 430 425 .endif 431 426 mov.l #__kernel_istkpt, r5 432 mov.l [r5], r0 ; ÝpÌX^bNÖØÖ¦433 mov.l #__kernel_intnest, r5 434 mov.w #1, [r5] ; ñ^XNReLXgÉØ·¦427 mov.l [r5], r0 ; 割込み用のスタックへ切替え 428 mov.l #__kernel_intnest, r5 429 mov.w #1, [r5] ; 非タスクコンテキストに切換え 435 430 bsr __kernel_exit_kernel 436 431 bra __kernel_call_exit_kernel … … 438 433 439 434 ; 440 ; Ý(CPUáO)©çÌ^XNfBXpb`üû441 ; 442 ; Äoµð:443 ; ESÝbNóÔ(PSWWX^Irbg= 0)444 ; EÝDæx}XNSðÅÈ¢óÔ(IPL != 0)445 ; E^XNReLXg(intnest=0)446 ; EgpX^bNÍ^XNX^bN447 ; Ereqflg = true448 ; 449 ; ±±ÅÍ, fBXpb`[hÉÏXµ, reqflgðOFFɵĩç,450 ; xfBXpb`ÌL³ð»f·é.451 ; 452 453 ; 454 ; ret_int æªÅX^bNÉÏÜêÄ¢éPSWWX^ÖÌItZbg435 ; 割込み(CPU例外)からのタスクディスパッチャ入口 436 ; 437 ; 呼出し条件: 438 ; ・全割込みロック状態(PSWレジスタIビット = 0) 439 ; ・割込み優先度マスク全解除でない状態(IPL != 0) 440 ; ・タスクコンテキスト(intnest=0) 441 ; ・使用スタックはタスクスタック 442 ; ・reqflg = true 443 ; 444 ; ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから, 445 ; 遅延ディスパッチの有無を判断する. 446 ; 447 448 ; 449 ; ret_int先頭でスタックに積まれているPSWレジスタへのオフセット 455 450 ; ACC + FPSW + R14--R15 + R1--R5 + PC 456 451 ; … … 459 454 ret_int: 460 455 .if TIPM_LOCK == -15 461 mov.l RET_INT_GET_PSW_OFFSET[r0], r5 ; Ý/CPUáO¶OÌIPLlæ¾456 mov.l RET_INT_GET_PSW_OFFSET[r0], r5 ; 割込み/CPU例外発生前のIPL値取得 462 457 and #PSW_IPL_MASK, r5 463 mvtc r5, psw ; SÝbN(CPUbN)óÔ464 ; Ý/CPUáO¶OÌÝDæx465 .else 466 mov.l #__kernel_lock_flag, r5 ; CPU bNóÔÖ458 mvtc r5, psw ; 全割込みロック(CPUロック)状態 459 ; 割込み/CPU例外発生前の割込み優先度 460 .else 461 mov.l #__kernel_lock_flag, r5 ; CPUロック状態へ 467 462 mov.l #1, [r5] 468 mov.l RET_INT_GET_PSW_OFFSET[r0], r5 ; Ý/CPUáO¶OÌIPLlæ¾463 mov.l RET_INT_GET_PSW_OFFSET[r0], r5 ; 割込み/CPU例外発生前のIPL値取得 469 464 and #PSW_IPL_MASK, r5 470 465 mov.l #__kernel_saved_ipl, r4 471 466 mov.l r5, [r4] 472 mvtc #(IPL_LOCK | PSW_I_MASK), psw ; SÝbNðóÔ473 ; ÝDæx}XNSðÅÈ¢óÔ467 mvtc #(IPL_LOCK | PSW_I_MASK), psw ; 全割込みロック解除状態 468 ; 割込み優先度マスク全解除でない状態 474 469 .endif 475 470 mov.l #__kernel_reqflg, r5 … … 477 472 mov.l #__kernel_p_runtsk, r15 478 473 mov.l [r15], r14 479 mov.l #__kernel_dspflg, r5 ; dspflg ª FALSE Èç ret_int_r Ö474 mov.l #__kernel_dspflg, r5 ; dspflg が FALSE なら ret_int_r へ 480 475 mov.l [r5], r5 481 476 cmp #0, r5 … … 483 478 mov.l #__kernel_p_schedtsk, r5 484 479 mov.l [r5], r5 485 cmp r5, r14 ; p_schedtsk Æ p_runtsk ª¯¶Èç486 beq ret_int_r_call_tex ; ret_int_r_call_tex Ö487 pushm r6-r13 ; ñXNb`WX^Û¶488 st_TCB_sp r0, r14, r5 ; X^bN|C^ðTCBÉÛ¶489 st_TCB_pc #ret_int_r, r14, r5 ; ÀsÄJÔnðTCBÉÛ¶480 cmp r5, r14 ; p_schedtsk と p_runtsk が同じなら 481 beq ret_int_r_call_tex ; ret_int_r_call_tex へ 482 pushm r6-r13 ; 非スクラッチレジスタ保存 483 st_TCB_sp r0, r14, r5 ; スタックポインタをTCBに保存 484 st_TCB_pc #ret_int_r, r14, r5 ; 実行再開番地をTCBに保存 490 485 bra dispatcher 491 486 492 487 ; 493 ; Ý(CPUáO)ÖÌ^XNfBXpb`oû494 ; 495 ; ÄÑoµð:496 ; EfBXpb`[h(t@Cwb_QÆ)497 ; 498 ; ±±ÅÍ, ^XNáOnhÄoµÆ, Ý(CPUáO)[hÖÌ499 ; ÏXÆ, ReLXgÌAðs¢, Ý(CUPáO)¶³Ößé.500 ; 501 __kernel_break_wait: ; ^XNj^px488 ; 割込み(CPU例外)へのタスクディスパッチャ出口 489 ; 490 ; 呼び出し条件: 491 ; ・ディスパッチャモード(ファイルヘッダ参照) 492 ; 493 ; ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの 494 ; 変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生元へ戻る. 495 ; 496 __kernel_break_wait: ;タスクモニタ用ラベル 502 497 ret_int_r: 503 popm r6-r13 ; ñXNb`WX^A498 popm r6-r13 ; 非スクラッチレジスタ復帰 504 499 ret_int_r_call_tex: 505 btst #TCB_enatex_bit, TCB_enatex[r14] ; ^XNáOÂ?500 btst #TCB_enatex_bit, TCB_enatex[r14] ; タスク例外処理許可? 506 501 bz ret_int_r_rte 507 ld_TCB_texptn r5, r14, r4 ; Û¯áOvöª é©H502 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 508 503 cmp #0, r5 509 504 bz ret_int_r_rte 510 bsr __kernel_call_texrtn ; ^XNáOnhÄoµÀs505 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 511 506 ret_int_r_rte: 512 507 .if TIPM_LOCK != -15 513 clrpsw i ; SÝÖ~514 mov.l #__kernel_lock_flag, r5 ; CPU bNðóÔÖ508 clrpsw i ; 全割込み禁止 509 mov.l #__kernel_lock_flag, r5 ; CPUロック解除状態へ 515 510 mov.l #0, [r5] 516 511 .endif 517 popm r4-r5 ; AL 518 [^A 519 mvtaclo r5 ; ACCźÊ16bitÍ0ÅA 512 popm r4-r5 ; アキュムレータ復帰 513 mvtaclo r5 ; ACC最下位16bitは0で復帰 520 514 mvtachi r4 521 popc fpsw ; FPU Xe[^XWX^A522 popm r14-r15 ; WX^A515 popc fpsw ; FPUステータスレジスタ復帰 516 popm r14-r15 ; レジスタ復帰 523 517 popm r1-r5 524 rte ; ÝOÌÉßé525 526 527 ; 528 ; ÝÌoüû(AZu¾êLqª)529 ; 530 ; Äoµð:531 ; EݶÌH/WÉæè, PSWWX^ÌIrbg=0, IPLÍót¯532 ; ½ÝÌIPL.533 ; EX^bNͽdèÝÈçÝX^bN, »¤ÅȯêÎ534 ; ^XNX^bN535 ; EݶÌH/WÉæè,X^bNÉÝ©çÌAPCÆPSWª536 ; Û¶³êÄ¢é.537 ; ExN^e[uÉo^³ê½ÂÊÌüèûÉæè, X^bNÉ538 ; XNb`WX^(R1-R5)ªÛ¶³êÄ¢é.539 ; 540 ; ø:541 ; Er1:ÝvöÔ542 ; Er2:ÝnhÌAhX543 ; 544 ; WX^ªX^bNãÉÇÌæ¤ÉÛ¶³êÄ¢é©ðȺɦ·.545 ; ±Ì}ÅÍãªáÊ, ºªÊÌAhXÅ, X^bNͺ©ç546 ; ãûüÉü©ÁÄÏÝã°çêéàÌÆ·é.518 rte ; 割込み前の処理に戻る 519 520 521 ; 522 ; 割込みの出入口処理(アセンブリ言語記述部分) 523 ; 524 ; 呼出し条件: 525 ; ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け 526 ; た割込みのIPL. 527 ; ・スタックは多重割り込みなら割込みスタック, そうでなければ 528 ; タスクスタック 529 ; ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが 530 ; 保存されている. 531 ; ・ベクタテーブルに登録された個別の入り口処理により, スタックに 532 ; スクラッチレジスタ(R1-R5)が保存されている. 533 ; 534 ; 引数: 535 ; ・r1:割込み要因番号 536 ; ・r2:割込みハンドラのアドレス 537 ; 538 ; レジスタがスタック上にどのように保存されているかを以下に示す. 539 ; この図では上が低位, 下が高位のアドレスで, スタックは下から 540 ; 上方向に向かって積み上げられるものとする. 547 541 ; 548 542 ; ------------------------- … … 572 566 ; -------------------------(SP + 44) 573 567 ; 574 ; ±±ÅÍ, Ý[hÉÏXµÄnhðÀs·é.575 ; 576 ; nh©ç^[µ½ãÍ, ½dÝÅÈ, ©Â reqflg ª577 ; TRUE ÉÈÁ½ÉCret_int Öªò(xfBXpb`)·éD578 ; 579 ; ½dݩǤ©ÍÝlXgJE^ÌlÅ»è·é.580 ; intnest != 0 ÈçνdÝÅ éÆ»è·é.581 ; 582 ; reqflg ÍCPUbNóÔÅ`FbN·é. »¤ÅÈ¢ÆC583 ; reqflg `FbNãÉN®³ê½ÝnhàÅ584 ; fBXpb`ªv³ê½êÉCfBXpb`³êÈ¢.568 ; ここでは, 割込み処理モードに変更してハンドラを実行する. 569 ; 570 ; ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が 571 ; TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する. 572 ; 573 ; 多重割込みかどうかは割込みネストカウンタの値で判定する. 574 ; intnest != 0 ならば多重割込みであると判定する. 575 ; 576 ; reqflg はCPUロック状態でチェックする. そうでないと, 577 ; reqflg チェック後に起動された割込みハンドラ内で 578 ; ディスパッチが要求された場合に,ディスパッチされない. 585 579 ; 586 580 _kernel_interrupt: 587 pushm r14-r15 ; XNb`WX^ðÞð588 pushc fpsw ; FPU Xe[^XWX^Þð581 pushm r14-r15 ; スクラッチレジスタを退避 582 pushc fpsw ; FPUステータスレジスタ退避 589 583 mvfacmi r5 590 shll #16, r5 ; ACC źÊ16bitÍ0Æ·é584 shll #16, r5 ; ACC最下位16bitは0とする 591 585 mvfachi r4 592 pushm r4-r5 ; AL 593 [^Þð 586 pushm r4-r5 ; アキュムレータ退避 594 587 mov.l #__kernel_intnest, r5 595 588 mov.w [r5], r4 596 add #1, r4 ; lXgñðCNg589 add #1, r4 ; ネスト回数をインクリメント 597 590 mov.w r4, [r5] 598 cmp #1, r4 ; ½dèݩǤ©599 bnz interrupt_from_int ; ÁZOª0ÅȯêνdÝ600 ; iÌÝ601 mov.l r0, r3 ; X^bN|C^ðæèoµ602 mov.l #__kernel_istkpt, r5 ; ÝpÌX^bNÖØÖ¦é591 cmp #1, r4 ; 多重割り込みかどうか 592 bnz interrupt_from_int ; 加算前が0でなければ多重割込み 593 ; 初段の割込み 594 mov.l r0, r3 ; スタックポインタを取り出し 595 mov.l #__kernel_istkpt, r5 ; 割込み用のスタックへ切替える 603 596 mov.l [r5], r0 604 push.l r3 ; ^XNX^bNðÛ605 interrupt_from_int: ; ½dÝ606 setpsw i ; ÝÂ(CPUbNðóÔ)597 push.l r3 ; タスクスタックを保持 598 interrupt_from_int: ; 多重割込み 599 setpsw i ; 割込み許可(CPUロック解除状態) 607 600 608 601 .if LOG_INH_LEAVE == 1 609 push.l r1 ; Og[XÌøðÛ602 push.l r1 ; ログトレースの引数を保持 610 603 .endif 611 604 612 605 .if LOG_INH_ENTER == 1 613 606 push.l r2 614 bsr _kernel_log_inh_enter ; Og[XÖÌÄoµ615 ; øÌÝvöÔÍùÉr1ÉüÁÄ¢é607 bsr _kernel_log_inh_enter ; ログトレース関数の呼出し 608 ; 引数の割込み要因番号は既にr1に入っている 616 609 pop r2 617 610 .endif 618 611 619 jsr r2 ; C [`ÄÑoµ612 jsr r2 ; Cルーチン呼び出し 620 613 621 614 .if LOG_INH_LEAVE == 1 622 pop r1 ; øÉÝvöÔðÝè623 bsr _kernel_log_inh_leave ; Og[XÖÌÄoµ624 .endif 625 626 clrpsw i ; ÝÖ~(CPUbNóÔ)615 pop r1 ; 引数に割込み要因番号を設定 616 bsr _kernel_log_inh_leave ; ログトレース関数の呼出し 617 .endif 618 619 clrpsw i ; 割込み禁止(CPUロック状態) 627 620 mov.l #__kernel_intnest, r5 628 621 mov.w [r5], r4 629 sub #1, r4 ; lXgñðfNg622 sub #1, r4 ; ネスト回数をデクリメント 630 623 mov.w r4, [r5] 631 cmp #0, r4 ; ½dèݩǤ©632 bnz interrupt_return ; ½dèÝÈç^[633 ; iÌÝ634 pop r0 ; ^XNÌX^bNÉß·635 mov.l #__kernel_reqflg, r5 ; fBXpb`vªÈ¢©?624 cmp #0, r4 ; 多重割り込みかどうか 625 bnz interrupt_return ; 多重割り込みならリターン 626 ; 初段の割込み 627 pop r0 ; タスクのスタックに戻す 628 mov.l #__kernel_reqflg, r5 ; ディスパッチ要求がないか? 636 629 mov.l [r5], r5 637 630 cmp #1, r5 638 bz ret_int ; êÎ ret_int ÖWv631 bz ret_int ; あれば ret_int へジャンプ 639 632 interrupt_return: 640 popm r4-r5 ; AL 641 [^A 642 mvtaclo r5 ; ACCźÊ16bitÍ0ÅA 633 popm r4-r5 ; アキュムレータ復帰 634 mvtaclo r5 ; ACC最下位16bitは0で復帰 643 635 mvtachi r4 644 popc fpsw ; FPU Xe[^XWX^A645 popm r14-r15 ; WX^A636 popc fpsw ; FPUステータスレジスタ復帰 637 popm r14-r15 ; レジスタ復帰 646 638 popm r1-r5 647 rte ; ÝOÌÉßé648 649 650 ; 651 ; CPU áOÌoüû(AZu¾êLqª)652 ; 653 ; Äoµð:654 ; ECPUáO¶ÌH/WÉæè, PSWWX^ÌIrbg=0, IPL=0.655 ; EX^bNͽdèÝÈçÝX^bN, »¤ÅȯêÎ656 ; ^XNX^bN657 ; ECPUáO¶ÌH/WÉæè,X^bNÉCPUáO©çÌAPCÆ658 ; PSW ªÛ¶³êÄ¢é.659 ; ExN^e[uÉo^³ê½ÂÊÌüèûÉæè, X^bNÉ660 ; XNb`WX^(R1-R5)ªÛ¶³êÄ¢é.661 ; 662 ; ø:663 ; Er1:CPUáOvöÔ664 ; Er2:CPUáOnhÌAhX665 ; 666 ; WX^ªX^bNãÉÇÌæ¤ÉÛ¶³êÄ¢é©ðȺɦ·.667 ; ±Ì}ÅÍãªáÊ, ºªÊÌAhXÅ, X^bNͺ©ç668 ; ãûüÉü©ÁÄÏÝã°çêéàÌÆ·é.669 ; Ȩ, CPUáOvöÔÆR6-R13ÍCPUáOnhàÅîñðæ¾670 ; ·éÚIÅÞðµÄ¨è, oûÅÍÛ¶àeðjü·êÎæ¢.639 rte ; 割込み前の処理に戻る 640 641 642 ; 643 ; CPU例外の出入口処理(アセンブリ言語記述部分) 644 ; 645 ; 呼出し条件: 646 ; ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0. 647 ; ・スタックは多重割り込みなら割込みスタック, そうでなければ 648 ; タスクスタック 649 ; ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと 650 ; PSWが保存されている. 651 ; ・ベクタテーブルに登録された個別の入り口処理により, スタックに 652 ; スクラッチレジスタ(R1-R5)が保存されている. 653 ; 654 ; 引数: 655 ; ・r1:CPU例外要因番号 656 ; ・r2:CPU例外ハンドラのアドレス 657 ; 658 ; レジスタがスタック上にどのように保存されているかを以下に示す. 659 ; この図では上が低位, 下が高位のアドレスで, スタックは下から 660 ; 上方向に向かって積み上げられるものとする. 661 ; なお, CPU例外要因番号とR6-R13はCPU例外ハンドラ内で情報を取得 662 ; する目的で退避しており, 出口処理では保存内容を破棄すればよい. 671 663 ; 672 664 ; ------------------------- 673 ; | CPU áOvöÔ| <----- p_excinf665 ; | CPU例外要因番号 | <----- p_excinf 674 666 ; ------------------------- (intptr_t)(p_excinf + 0) 675 667 ; | R6(4byte) | … … 714 706 ; ------------------------- (intptr_t)(p_excinf + 80) 715 707 ; 716 ; ±±ÅÍ, Ý[hÉÏXµÄnhðÀs·é.717 ; CPU áOnhÉn·VP^ÌÏ p_excinf ƵÄISPÌln·D718 ; 719 ; nh©ç^[µ½ãÍ, ½dÝÅÈ, ©Â reqflg ª720 ; TRUE ÉÈÁ½ÉCret_int Öªò(xfBXpb`)·éD721 ; 722 ; ½dݩǤ©ÍÝlXgJE^ÌlÅ»è·é.723 ; intnest != 0 ÈçνdÝÅ éÆ»è·é.724 ; 725 ; reqflg ÍCPUbNóÔÅ`FbN·é. »¤ÅÈ¢ÆC726 ; reqflg `FbNãÉN®³ê½ÝnhàÅ727 ; fBXpb`ªv³ê½êÉCfBXpb`³êÈ¢.728 ; 729 ; 730 ; CPU áOüû731 ; 732 ; ±±ÅÍ, Ý[hÉÏXµÄnhðÀs·é.733 ; 734 735 ; 736 ; CPU áOnhÄoµãÉsvÆÈéX^bNîñÌTCY708 ; ここでは, 割込み処理モードに変更してハンドラを実行する. 709 ; CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す. 710 ; 711 ; ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が 712 ; TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する. 713 ; 714 ; 多重割込みかどうかは割込みネストカウンタの値で判定する. 715 ; intnest != 0 ならば多重割込みであると判定する. 716 ; 717 ; reqflg はCPUロック状態でチェックする. そうでないと, 718 ; reqflg チェック後に起動された割込みハンドラ内で 719 ; ディスパッチが要求された場合に,ディスパッチされない. 720 ; 721 ; 722 ; CPU例外入口処理 723 ; 724 ; ここでは, 割込み処理モードに変更してハンドラを実行する. 725 ; 726 727 ; 728 ; CPU例外ハンドラ呼出し後に不要となるスタック情報のサイズ 737 729 ; EXCNO + R6--R13 738 730 ; … … 740 732 741 733 _kernel_exception: 742 pushm r14-r15 ; XNb`WX^ðÞð734 pushm r14-r15 ; スクラッチレジスタを退避 743 735 pushc fpsw 744 736 mvfacmi r5 745 shll #16, r5 ; ACC źÊ16bitÍ0Æ·é737 shll #16, r5 ; ACC最下位16bitは0とする 746 738 mvfachi r4 747 pushm r4-r5 ; AL 748 [^Þð 749 pushm r6-r13 ; ñXNb`WX^Û¶ 750 push.l r1 ; CPUáOvöÔðÛ 751 mov.l r0, r3 ; X^bN|C^ðæèoµ 739 pushm r4-r5 ; アキュムレータ退避 740 pushm r6-r13 ; 非スクラッチレジスタ保存 741 push.l r1 ; CPU例外要因番号を保持 742 mov.l r0, r3 ; スタックポインタを取り出し 752 743 mov.l EXC_GET_PSW_OFFSET[r3], r5 753 744 and #PSW_I_MASK, r5 754 bz exception_nonkernel ; SÝÖ~(CPUbN)óÔÈçÇO745 bz exception_nonkernel ; 全割込み禁止(CPUロック)状態なら管理外 755 746 .if TIPM_LOCK != -15 756 747 mov.l EXC_GET_PSW_OFFSET[r3], r5 757 748 and #PSW_IPL_MASK, r5 758 749 cmp #IPL_LOCK, r5 759 bgt exception_nonkernel ; IPL ªCPUbNxÈãÈçÇO750 bgt exception_nonkernel ; IPLがCPUロックレベル以上なら管理外 760 751 .endif 761 752 mov.l #__kernel_intnest, r5 762 753 mov.w [r5], r4 763 add #1, r4 ; lXgñðCNg754 add #1, r4 ; ネスト回数をインクリメント 764 755 mov.w r4, [r5] 765 cmp #1, r4 ; ½dèݩǤ©766 bnz exception_from_int ; ÁZOª0ÅȯêνdÝ767 ; iÌÝ768 mov.l #__kernel_istkpt, r5 ; ÝpÌX^bNÖØÖ¦é756 cmp #1, r4 ; 多重割り込みかどうか 757 bnz exception_from_int ; 加算前が0でなければ多重割込み 758 ; 初段の割込み 759 mov.l #__kernel_istkpt, r5 ; 割込み用のスタックへ切替える 769 760 mov.l [r5], r0 770 push.l r3 ; ^XNX^bNðÛ771 exception_from_int: ; ½dÝ761 push.l r3 ; タスクスタックを保持 762 exception_from_int: ; 多重割込み 772 763 mov.l EXC_GET_PSW_OFFSET[r3], r5 773 mvtc r5, psw ; CPU áO¶OÌóÔÉß·764 mvtc r5, psw ; CPU例外発生前の状態に戻す 774 765 .if LOG_EXC_LEAVE == 1 775 push.l r1 ; Og[XÌøðÛ766 push.l r1 ; ログトレースの引数を保持 776 767 .endif 777 768 778 769 .if LOG_EXC_ENTER == 1 779 770 pushm r2-r3 780 bsr _kernel_log_exc_enter ; Og[XÖÌÄoµ781 ; øÌÝvöÔÍùÉr1ÉüÁÄ¢é771 bsr _kernel_log_exc_enter ; ログトレース関数の呼出し 772 ; 引数の割込み要因番号は既にr1に入っている 782 773 popm r2-r3 783 774 .endif 784 775 785 mov.l r3, r1 ; øÌp_excinfðÝè786 jsr r2 ; C [`ÄÑoµ776 mov.l r3, r1 ; 引数のp_excinfを設定 777 jsr r2 ; Cルーチン呼び出し 787 778 788 779 .if LOG_EXC_LEAVE == 1 789 pop r1 ; øÉÝvöÔðÝè790 bsr _kernel_log_exc_leave ; Og[XÖÌÄoµ791 .endif 792 793 clrpsw i ; ±±©çÍK¸ÝÖ~780 pop r1 ; 引数に割込み要因番号を設定 781 bsr _kernel_log_exc_leave ; ログトレース関数の呼出し 782 .endif 783 784 clrpsw i ; ここからは必ず割込み禁止 794 785 mov.l #__kernel_intnest, r5 795 786 mov.w [r5], r4 796 sub #1, r4 ; lXgñðfNg787 sub #1, r4 ; ネスト回数をデクリメント 797 788 mov.w r4, [r5] 798 cmp #0, r4 ; ½dèݩǤ©799 bnz exception_return ; ½dèÝÈç^[800 ; iÌÝ801 pop r0 ; ^XNÌX^bNÉß·802 mov.l #__kernel_reqflg, r5 ; fBXpb`vªÈ¢©?789 cmp #0, r4 ; 多重割り込みかどうか 790 bnz exception_return ; 多重割り込みならリターン 791 ; 初段の割込み 792 pop r0 ; タスクのスタックに戻す 793 mov.l #__kernel_reqflg, r5 ; ディスパッチ要求がないか? 803 794 mov.l [r5], r5 804 795 cmp #1, r5 805 bnz exception_return ; ȯêÎ^[806 add #EXCINF_REG_SIZE, r0 ; CPU áOîñÌjü807 bra ret_int ; êÎ ret_int ÖWv796 bnz exception_return ; なければリターン 797 add #EXCINF_REG_SIZE, r0 ; CPU例外情報の破棄 798 bra ret_int ; あれば ret_int へジャンプ 808 799 809 800 exception_nonkernel: 810 801 mov.l #__kernel_intnest, r5 811 802 mov.w [r5], r4 812 add #1, r4 ; lXgñðCNg803 add #1, r4 ; ネスト回数をインクリメント 813 804 mov.w r4, [r5] 814 cmp #1, r4 ; ½dèݩǤ©815 bnz exception_from_nonkernelint ; ÁZOª0ÅȯêνdÝ816 ; iÌÝ817 mov.l #__kernel_istkpt, r5 ; ÝpÌX^bNÖØÖ¦é805 cmp #1, r4 ; 多重割り込みかどうか 806 bnz exception_from_nonkernelint ; 加算前が0でなければ多重割込み 807 ; 初段の割込み 808 mov.l #__kernel_istkpt, r5 ; 割込み用のスタックへ切替える 818 809 mov.l [r5], r0 819 push.l r3 ; ^XNX^bNðÛ820 exception_from_nonkernelint: ; ½dÝ810 push.l r3 ; タスクスタックを保持 811 exception_from_nonkernelint: ; 多重割込み 821 812 mov.l EXC_GET_PSW_OFFSET[r3], r5 822 mvtc r5, psw ; CPU áO¶OÌóÔÉß·823 824 mov.l r3, r1 ; øÌp_excinfðÝè825 jsr r2 ; C [`ÄÑoµ826 827 clrpsw i ; ±±©çÍK¸ÝÖ~813 mvtc r5, psw ; CPU例外発生前の状態に戻す 814 815 mov.l r3, r1 ; 引数のp_excinfを設定 816 jsr r2 ; Cルーチン呼び出し 817 818 clrpsw i ; ここからは必ず割込み禁止 828 819 mov.l #__kernel_intnest, r5 829 820 mov.w [r5], r4 830 sub #1, r4 ; lXgñðfNg821 sub #1, r4 ; ネスト回数をデクリメント 831 822 mov.w r4, [r5] 832 cmp #0, r4 ; ½dèݩǤ©833 bnz exception_return ; ½dèÝÈç^[834 ; iÌÝ835 pop r0 ; ^XNÌX^bNÉß·823 cmp #0, r4 ; 多重割り込みかどうか 824 bnz exception_return ; 多重割り込みならリターン 825 ; 初段の割込み 826 pop r0 ; タスクのスタックに戻す 836 827 837 828 exception_return: 838 add #EXCINF_REG_SIZE, r0 ; CPUáOîñÌjü 839 popm r4-r5 ; AL 840 [^A 841 mvtaclo r5 ; ACCźÊ16bitÍ0ÅA 829 add #EXCINF_REG_SIZE, r0 ; CPU例外情報の破棄 830 popm r4-r5 ; アキュムレータ復帰 831 mvtaclo r5 ; ACC最下位16bitは0で復帰 842 832 mvtachi r4 843 popc fpsw ; FPU Xe[^XWX^A844 popm r14-r15 ; WX^A833 popc fpsw ; FPUステータスレジスタ復帰 834 popm r14-r15 ; レジスタ復帰 845 835 popm r1-r5 846 rte ; ÝOÌÉßé847 848 849 ; 850 ; ÷ÔÒ¿836 rte ; 割込み前の処理に戻る 837 838 839 ; 840 ; 微少時間待ち 851 841 ; 852 842 _sil_dly_nse: -
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_syssvc.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * eXgvOÌ^[Qbg˶è`iRX630pj42 * テストプログラムのターゲット依存定義(RX630用) 47 43 */ 48 44 … … 51 47 52 48 /* 53 * N®bZ[WÉ^[Qbg˶Ìì \¦ð54 * ÇÁ·é½ßÌ}ND49 * 起動メッセージにターゲット依存部の著作権表示を 50 * 追加するためのマクロ. 55 51 */ 56 52 #define PRC_COPYRIGHT \ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_test.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * eXgvOÌ^[Qbg˶è`iRX630pj41 * テストプログラムのターゲット依存定義(RX630用) 46 42 */ 47 43 … … 49 45 #define TOPPERS_PRC_TEST_H 50 46 51 #define CPUEXC1 25 /* ®¬_áO*/47 #define CPUEXC1 25 /* 浮動小数点例外 */ 52 48 #define RAISE_CPU_EXCEPTION trigger_cpu_exception() 53 49 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_test.src
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
r164 r167 6 6 ;* Copyright (C) 2010 by Witz Corporation, JAPAN 7 7 ;* 8 ;* ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 ;* Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 ;* ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 ;* (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 ;* \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 ;* XR[hÉÜÜêÄ¢é±ÆD 14 ;* (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 ;* pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 ;* Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 ;* ̳ÛØKèðfÚ·é±ÆD 20 ;* (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 ;* pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 ;* ÆD 23 ;* (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 ;* ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 ;* (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 ;* ñ·é±ÆD 29 ;* (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 ;* Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 ;* ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 ;* RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 ;* ÆÓ·é±ÆD 8 ;* 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 ;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 ;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 ;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 ;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 ;* スコード中に含まれていること. 14 ;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 ;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 ;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 ;* の無保証規定を掲載すること. 18 ;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 ;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 ;* と. 21 ;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 ;* 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 ;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 ;* 報告すること. 25 ;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 ;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 ;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 ;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 ;* 免責すること. 34 30 ;* 35 ;* {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 ;* æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 ;* ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 ;* AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 ;* ÌÓCðíÈ¢D31 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 ;* の責任を負わない. 40 36 ;* 41 37 ;* @(#) $Id: prc_test.src 536 2014-10-09 23:11:40Z coas-nagasima $ … … 48 44 _trigger_cpu_exception: 49 45 ; 50 ; CPU áO̶46 ; CPU例外の発生 51 47 ; 52 ; [èZðs¤±ÆÅ, ®¬_áOð53 ; ¶³¹é.48 ; ゼロ割り算を行うことで, 浮動小数点例外を 49 ; 発生させる. 54 50 ; 55 51 mvtc #00001000H, fpsw -
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/prc_unrename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/rx630.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * RX630 É˶·éè`42 * RX630に依存する定義 47 43 */ 48 44 #ifndef TOPPERS_RX630_H … … 50 46 51 47 /* 52 * CPU áOnhÔÌè`(ÅèxN^e[u)48 * CPU例外ハンドラ番号の定義(固定ベクタテーブル) 53 49 * 54 * ÔÌÍÍÍ0 - 3155 */ 56 #define INT_PRIVILEGED_INSTRUNCTION 20 /* Á ½ßáO*/57 #define INT_UNDEF_INSTRUNCTION 23 /* ¢è`½ßáO*/58 #define INT_FLOATINGPOINT_INSTRUCTION 25 /* ®¬_áO*/59 #define INT_NMI 30 /* m}XJuèÝ*/60 #define INT_RESET 31 /* Zbg*/61 62 /* 63 * ÝÔÌè`(ÂÏxN^e[u)50 * 番号の範囲は0 - 31 51 */ 52 #define INT_PRIVILEGED_INSTRUNCTION 20 /* 特権命令例外 */ 53 #define INT_UNDEF_INSTRUNCTION 23 /* 未定義命令例外 */ 54 #define INT_FLOATINGPOINT_INSTRUCTION 25 /* 浮動小数点例外 */ 55 #define INT_NMI 30 /* ノンマスカブル割り込み */ 56 #define INT_RESET 31 /* リセット */ 57 58 /* 59 * 割込み番号の定義(可変ベクタテーブル) 64 60 */ 65 61 #define INT_BUSERR 16 … … 250 246 251 247 /* 252 * eW 253 [ÌWX^yÑÝèrbgîñ 248 * 各モジュールのレジスタ及び設定ビット情報 254 249 */ 255 250 … … 257 252 258 253 /* 259 * W 260 [XgbvRg[WX^AiMSTPCRAj 254 * モジュールストップコントロールレジスタA(MSTPCRA) 261 255 */ 262 256 #define SYSTEM_MSTPCRA_ADDR ( ( volatile uint32_t __evenaccess * )0x00080010 ) … … 296 290 297 291 /* 298 * W 299 [XgbvRg[WX^BiMSTPCRBj 292 * モジュールストップコントロールレジスタB(MSTPCRB) 300 293 */ 301 294 #define SYSTEM_MSTPCRB_ADDR ( ( volatile uint32_t __evenaccess * )0x00080014 ) … … 334 327 335 328 /* 336 * W 337 [XgbvRg[WX^CiMSTPCRCj 329 * モジュールストップコントロールレジスタC(MSTPCRC) 338 330 */ 339 331 #define SYSTEM_MSTPCRC_ADDR ( ( volatile uint32_t __evenaccess * )0x00080018 ) … … 372 364 373 365 /* 374 * NbN¶ñH366 * クロック発生回路 375 367 */ 376 368 #define SYSTEM_SCKCR_ADDR ( ( volatile uint32_t __evenaccess * )0x00080020 ) … … 392 384 393 385 /* 394 * veNgWX^386 * プロテクトレジスタ 395 387 */ 396 388 #define SYSTEM_PRCR_ADDR ( ( volatile uint16_t __evenaccess * )0x000803FE ) 397 389 398 390 /* 399 * èÝvWX^391 * 割り込み要求レジスタ 400 392 */ 401 393 #define ICU_IR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087000 ) … … 658 650 659 651 /* 660 * èÝvæÝèWX^652 * 割り込み要求先設定レジスタ 661 653 */ 662 654 #define ICU_ISELR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087100 ) … … 919 911 920 912 /* 921 * èÝvÂWX^913 * 割り込み要求許可レジスタ 922 914 */ 923 915 #define ICU_IER02_ADDR ( ( volatile uint8_t __evenaccess * )0x00087202 ) … … 960 952 961 953 /* 962 * èÝvövCIeBWX^i(i=0`253)ÌÝè954 * 割り込み要因プライオリティレジスタi(i=0〜253)の設定 963 955 */ 964 956 #define ICU_IPR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087300 ) … … 1222 1214 1223 1215 /* 1224 * IRQ Rg[WX^1216 * IRQコントロールレジスタ 1225 1217 */ 1226 1218 #define ICU_IRQ0_ADDR ( ( volatile uint8_t __evenaccess * )0x00087500 ) … … 1244 1236 1245 1237 /* 1246 * e`lÌWX^yÑÝèrbgîñ1238 * 各チャンネルのレジスタ及び設定ビット情報 1247 1239 */ 1248 1240 #define CMT_CMSTR0_ADDR ( ( volatile uint16_t __evenaccess * )0x00088000 ) … … 1353 1345 1354 1346 /* 1355 * I/O |[gÌWX^yÑÝèrbgîñ1347 * I/Oポートのレジスタ及び設定ビット情報 1356 1348 */ 1357 1349 #define PORT0_PDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C000 ) … … 1523 1515 1524 1516 /* 1525 * }`t@NVsRg[ÌWX^îñ1517 * マルチファンクションピンコントローラのレジスタ情報 1526 1518 */ 1527 1519 #define MPC_PFUSB0_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C114 ) … … 1662 1654 1663 1655 /* 1664 * A^CNbN1656 * リアルタイムクロック 1665 1657 */ 1666 1658 #define RTC_R64CNT_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C400 ) … … 1674 1666 1675 1667 /* 1676 * 12 rbgA/D Ro[^1668 * 12 ビットA/D コンバータ 1677 1669 */ 1678 1670 #define S12AD_ADCSR_ADDR ( ( volatile uint8_t __evenaccess * )0x00089000 ) … … 1903 1895 1904 1896 /* 1905 * UART ÖAÌè`1897 * UART関連の定義 1906 1898 * 1907 * pdic Ìrx600/rx630_uart.cÅgp·éD1908 */ 1909 /* 1910 * VAI/OÌÂ1899 * pdicのrx600/rx630_uart.cで使用する. 1900 */ 1901 /* 1902 * シリアルI/Oの個数 1911 1903 */ 1912 1904 #define TNUM_SIOP ( 2 ) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/rx630.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 $ 2 $ A[LeN`˶ev[giRX630pj2 $ アーキテクチャ依存テンプレート(RX630用) 3 3 $ 4 4 … … 11 11 12 12 $ 13 $ ÝÔÆÝnhÔÌè`13 $ 割込み番号と割込みハンドラ番号の定義 14 14 $ 15 $ RX630 ÅÍÝÔÆÝnhÔª1Î1ÅηéD15 $ RX630では割込み番号と割込みハンドラ番号が1対1で対応する. 16 16 $ 17 17 … … 20 20 21 21 $ 22 $ áOÔÌè`22 $ 例外番号の定義 23 23 $ 24 $ ÅèxN^e[uÌxN^e[uAhX̬³¢ÔÉáOÔðUéD25 $ ( \ñÌæàÜÞ)24 $ 固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る. 25 $ (予約領域も含む) 26 26 $ 27 27 … … 29 29 30 30 $ 31 $ INT ÝÌÔ31 $ INT割込みの番号 32 32 $ 33 33 … … 35 35 36 36 $ 37 $ ÝÔCÝnhÔCáOÔÌÍÍ37 $ 割込み番号,割込みハンドラ番号,例外番号の範囲 38 38 $ 39 $ ( \ñÌæàÜÞ)39 $ (予約領域も含む) 40 40 $ 41 41 … … 45 45 46 46 $ 47 $ vZbT˶Ìev[gt@CÌCN[h47 $ プロセッサ依存のテンプレートファイルのインクルード 48 48 $ 49 49 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * vZbT˶W 47 [iRX630pj 42 * プロセッサ依存モジュール(RX630用) 48 43 */ 49 44 … … 52 47 53 48 /* 54 * ÝvövCIeBWX^AhXe[u49 * 割込み要因プライオリティレジスタアドレステーブル 55 50 */ 56 51 volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = { 57 NULL, /* No.0 \ñ*/58 NULL, /* No.1 \ñ*/59 NULL, /* No.2 \ñ*/60 NULL, /* No.3 \ñ*/61 NULL, /* No.4 \ñ*/62 NULL, /* No.5 \ñ*/63 NULL, /* No.6 \ñ*/64 NULL, /* No.7 \ñ*/65 NULL, /* No.8 \ñ*/66 NULL, /* No.9 \ñ*/67 NULL, /* No.10 \ñ*/68 NULL, /* No.11 \ñ*/69 NULL, /* No.12 \ñ*/70 NULL, /* No.13 \ñ*/71 NULL, /* No.14 \ñ*/72 NULL, /* No.15 \ñ*/73 ICU_IPR000_ADDR, /* No.16 oXG[BUSERR */74 NULL, /* No.17 \ñ*/75 NULL, /* No.18 \ñ*/76 NULL, /* No.19 \ñ*/77 NULL, /* No.20 \ñ*/52 NULL, /* No.0 予約 */ 53 NULL, /* No.1 予約 */ 54 NULL, /* No.2 予約 */ 55 NULL, /* No.3 予約 */ 56 NULL, /* No.4 予約 */ 57 NULL, /* No.5 予約 */ 58 NULL, /* No.6 予約 */ 59 NULL, /* No.7 予約 */ 60 NULL, /* No.8 予約 */ 61 NULL, /* No.9 予約 */ 62 NULL, /* No.10 予約 */ 63 NULL, /* No.11 予約 */ 64 NULL, /* No.12 予約 */ 65 NULL, /* No.13 予約 */ 66 NULL, /* No.14 予約 */ 67 NULL, /* No.15 予約 */ 68 ICU_IPR000_ADDR, /* No.16 バスエラー BUSERR */ 69 NULL, /* No.17 予約 */ 70 NULL, /* No.18 予約 */ 71 NULL, /* No.19 予約 */ 72 NULL, /* No.20 予約 */ 78 73 ICU_IPR001_ADDR, /* No.21 FCU FIFERR */ 79 NULL, /* No.22 \ñ*/74 NULL, /* No.22 予約 */ 80 75 ICU_IPR002_ADDR, /* No.23 FCU FRDYI */ 81 NULL, /* No.24 \ñ*/82 NULL, /* No.25 \ñ*/83 NULL, /* No.26 \ñ*/76 NULL, /* No.24 予約 */ 77 NULL, /* No.25 予約 */ 78 NULL, /* No.26 予約 */ 84 79 ICU_IPR003_ADDR, /* No.27 SWINT */ 85 ICU_IPR004_ADDR, /* No.28 CMT jbg0 CMT0 */86 ICU_IPR005_ADDR, /* No.29 CMT jbg0 CMT1 */87 ICU_IPR006_ADDR, /* No.30 CMT jbg1 CMT2 */88 ICU_IPR007_ADDR, /* No.31 CMT jbg1 CMT3 */80 ICU_IPR004_ADDR, /* No.28 CMTユニット0 CMT0 */ 81 ICU_IPR005_ADDR, /* No.29 CMTユニット0 CMT1 */ 82 ICU_IPR006_ADDR, /* No.30 CMTユニット1 CMT2 */ 83 ICU_IPR007_ADDR, /* No.31 CMTユニット1 CMT3 */ 89 84 ICU_IPR032_ADDR, /* No.32 ETHER */ 90 85 ICU_IPR033_ADDR, /* No.33 USB0 D0FIFO0 */ … … 115 110 ICU_IPR056_ADDR, /* No.58 CAN RXM2 */ 116 111 ICU_IPR056_ADDR, /* No.59 CAN TXM2 */ 117 NULL, /* No.60 \ñ*/118 NULL, /* No.61 \ñ*/112 NULL, /* No.60 予約 */ 113 NULL, /* No.61 予約 */ 119 114 ICU_IPR062_ADDR, /* No.62 RTC PRD */ 120 NULL, /* No.63 \ñ*/121 ICU_IPR064_ADDR, /* No.64 O[qIRQ0 */122 ICU_IPR065_ADDR, /* No.65 O[qIRQ1 */123 ICU_IPR066_ADDR, /* No.66 O[qIRQ2 */124 ICU_IPR067_ADDR, /* No.67 O[qIRQ3 */125 ICU_IPR068_ADDR, /* No.68 O[qIRQ4 */126 ICU_IPR069_ADDR, /* No.69 O[qIRQ5 */127 ICU_IPR070_ADDR, /* No.70 O[qIRQ6 */128 ICU_IPR071_ADDR, /* No.71 O[qIRQ7 */129 ICU_IPR072_ADDR, /* No.72 O[qIRQ8 */130 ICU_IPR073_ADDR, /* No.73 O[qIRQ9 */131 ICU_IPR074_ADDR, /* No.74 O[qIRQ10 */132 ICU_IPR075_ADDR, /* No.75 O[qIRQ11 */133 ICU_IPR076_ADDR, /* No.76 O[qIRQ12 */134 ICU_IPR077_ADDR, /* No.77 O[qIRQ13 */135 ICU_IPR078_ADDR, /* No.78 O[qIRQ14 */136 ICU_IPR079_ADDR, /* No.79 O[qIRQ15 */137 NULL, /* No.80 \ñ*/138 NULL, /* No.81 \ñ*/139 NULL, /* No.82 \ñ*/140 NULL, /* No.83 \ñ*/141 NULL, /* No.84 \ñ*/142 NULL, /* No.85 \ñ*/143 NULL, /* No.86 \ñ*/144 NULL, /* No.87 \ñ*/145 NULL, /* No.88 \ñ*/146 NULL, /* No.89 \ñ*/115 NULL, /* No.63 予約 */ 116 ICU_IPR064_ADDR, /* No.64 外部端子 IRQ0 */ 117 ICU_IPR065_ADDR, /* No.65 外部端子 IRQ1 */ 118 ICU_IPR066_ADDR, /* No.66 外部端子 IRQ2 */ 119 ICU_IPR067_ADDR, /* No.67 外部端子 IRQ3 */ 120 ICU_IPR068_ADDR, /* No.68 外部端子 IRQ4 */ 121 ICU_IPR069_ADDR, /* No.69 外部端子 IRQ5 */ 122 ICU_IPR070_ADDR, /* No.70 外部端子 IRQ6 */ 123 ICU_IPR071_ADDR, /* No.71 外部端子 IRQ7 */ 124 ICU_IPR072_ADDR, /* No.72 外部端子 IRQ8 */ 125 ICU_IPR073_ADDR, /* No.73 外部端子 IRQ9 */ 126 ICU_IPR074_ADDR, /* No.74 外部端子 IRQ10 */ 127 ICU_IPR075_ADDR, /* No.75 外部端子 IRQ11 */ 128 ICU_IPR076_ADDR, /* No.76 外部端子 IRQ12 */ 129 ICU_IPR077_ADDR, /* No.77 外部端子 IRQ13 */ 130 ICU_IPR078_ADDR, /* No.78 外部端子 IRQ14 */ 131 ICU_IPR079_ADDR, /* No.79 外部端子 IRQ15 */ 132 NULL, /* No.80 予約 */ 133 NULL, /* No.81 予約 */ 134 NULL, /* No.82 予約 */ 135 NULL, /* No.83 予約 */ 136 NULL, /* No.84 予約 */ 137 NULL, /* No.85 予約 */ 138 NULL, /* No.86 予約 */ 139 NULL, /* No.87 予約 */ 140 NULL, /* No.88 予約 */ 141 NULL, /* No.89 予約 */ 147 142 ICU_IPR090_ADDR, /* No.90 USBR0 */ 148 143 ICU_IPR091_ADDR, /* No.91 USBR1 */ 149 144 ICU_IPR092_ADDR, /* No.92 RTC ALM */ 150 145 ICU_IPR093_ADDR, /* No.93 RTC PRD */ 151 NULL, /* No.94 \ñ*/152 NULL, /* No.95 \ñ*/153 NULL, /* No.96 \ñ*/154 NULL, /* No.97 \ñ*/146 NULL, /* No.94 予約 */ 147 NULL, /* No.95 予約 */ 148 NULL, /* No.96 予約 */ 149 NULL, /* No.97 予約 */ 155 150 ICU_IPR098_ADDR, /* No.98 AD ADI0 */ 156 NULL, /* No.99 \ñ*/157 NULL, /* No.100 \ñ*/158 NULL, /* No.101 \ñ*/151 NULL, /* No.99 予約 */ 152 NULL, /* No.100 予約 */ 153 NULL, /* No.101 予約 */ 159 154 ICU_IPR102_ADDR, /* No.102 S12AD S12ADIO */ 160 NULL, /* No.103 \ñ*/161 NULL, /* No.104 \ñ*/162 NULL, /* No.105 \ñ*/155 NULL, /* No.103 予約 */ 156 NULL, /* No.104 予約 */ 157 NULL, /* No.105 予約 */ 163 158 ICU_IPR106_ADDR, /* No.106 ICU GROUP0 */ 164 159 ICU_IPR107_ADDR, /* No.107 ICU GROUP1 */ … … 168 163 ICU_IPR111_ADDR, /* No.111 ICU GROUP5 */ 169 164 ICU_IPR112_ADDR, /* No.112 ICU GROUP6 */ 170 NULL, /* No.113 \ñ*/165 NULL, /* No.113 予約 */ 171 166 ICU_IPR114_ADDR, /* No.114 ICU GROUP12 */ 172 NULL, /* No.115 \ñ*/173 NULL, /* No.116 \ñ*/174 NULL, /* No.117 \ñ*/175 NULL, /* No.118 \ñ*/176 NULL, /* No.119 \ñ*/177 NULL, /* No.120 \ñ*/178 NULL, /* No.121 \ñ*/167 NULL, /* No.115 予約 */ 168 NULL, /* No.116 予約 */ 169 NULL, /* No.117 予約 */ 170 NULL, /* No.118 予約 */ 171 NULL, /* No.119 予約 */ 172 NULL, /* No.120 予約 */ 173 NULL, /* No.121 予約 */ 179 174 ICU_IPR122_ADDR, /* No.122 SCI12 SCIX0 */ 180 175 ICU_IPR123_ADDR, /* No.123 SCI12 SCIX1 */ … … 223 218 ICU_IPR167_ADDR, /* No.166 POE OEI1 */ 224 219 ICU_IPR167_ADDR, /* No.167 POE OEI2 */ 225 NULL, /* No.168 \ñ*/226 NULL, /* No.169 \ñ*/220 NULL, /* No.168 予約 */ 221 NULL, /* No.169 予約 */ 227 222 ICU_IPR170_ADDR, /* No.170 TMR0 CMIA0 */ 228 223 ICU_IPR170_ADDR, /* No.171 TMR0 CMIB0 */ … … 259 254 ICU_IPR202_ADDR, /* No.202 EXDMAC EXDMACI0 */ 260 255 ICU_IPR203_ADDR, /* No.203 EXDMAC EXDMACI1 */ 261 NULL, /* No.204 \ñ*/262 NULL, /* No.205 \ñ*/263 NULL, /* No.206 \ñ*/264 NULL, /* No.207 \ñ*/265 NULL, /* No.208 \ñ*/266 NULL, /* No.209 \ñ*/267 NULL, /* No.210 \ñ*/268 NULL, /* No.211 \ñ*/269 NULL, /* No.212 \ñ*/270 NULL, /* No.213 \ñ*/256 NULL, /* No.204 予約 */ 257 NULL, /* No.205 予約 */ 258 NULL, /* No.206 予約 */ 259 NULL, /* No.207 予約 */ 260 NULL, /* No.208 予約 */ 261 NULL, /* No.209 予約 */ 262 NULL, /* No.210 予約 */ 263 NULL, /* No.211 予約 */ 264 NULL, /* No.212 予約 */ 265 NULL, /* No.213 予約 */ 271 266 ICU_IPR214_ADDR, /* No.214 SCI0 RXI0 */ 272 267 ICU_IPR214_ADDR, /* No.215 SCI0 TXI0 */ … … 309 304 ICU_IPR250_ADDR, /* No.252 SCI12 TEI12 */ 310 305 ICU_IPR253_ADDR, /* No.253 IEB IEBINT */ 311 NULL, /* No.254 \ñ*/312 NULL, /* No.255 \ñ*/306 NULL, /* No.254 予約 */ 307 NULL, /* No.255 予約 */ 313 308 }; 314 309 315 310 316 311 /* 317 * ÝvÂWX^AhXe[u312 * 割込み要求許可レジスタアドレステーブル 318 313 */ 319 314 const IER_INFO ier_reg_addr[ INHNO_MAX ] = { 320 { NULL, INVALID_OFFSET }, /* No.0 \ñ*/321 { NULL, INVALID_OFFSET }, /* No.1 \ñ*/322 { NULL, INVALID_OFFSET }, /* No.2 \ñ*/323 { NULL, INVALID_OFFSET }, /* No.3 \ñ*/324 { NULL, INVALID_OFFSET }, /* No.4 \ñ*/325 { NULL, INVALID_OFFSET }, /* No.5 \ñ*/326 { NULL, INVALID_OFFSET }, /* No.6 \ñ*/327 { NULL, INVALID_OFFSET }, /* No.7 \ñ*/328 { NULL, INVALID_OFFSET }, /* No.8 \ñ*/329 { NULL, INVALID_OFFSET }, /* No.9 \ñ*/330 { NULL, INVALID_OFFSET }, /* No.10 \ñ*/331 { NULL, INVALID_OFFSET }, /* No.11 \ñ*/332 { NULL, INVALID_OFFSET }, /* No.12 \ñ*/333 { NULL, INVALID_OFFSET }, /* No.13 \ñ*/334 { NULL, INVALID_OFFSET }, /* No.14 \ñ*/335 { NULL, INVALID_OFFSET }, /* No.15 \ñ*/336 { ICU_IER02_ADDR, ICU_IEN0_BIT }, /* No.16 oXG[BUSERR */337 { NULL, INVALID_OFFSET }, /* No.17 \ñ*/338 { NULL, INVALID_OFFSET }, /* No.18 \ñ*/339 { NULL, INVALID_OFFSET }, /* No.19 \ñ*/340 { NULL, INVALID_OFFSET }, /* No.20 \ñ*/315 { NULL, INVALID_OFFSET }, /* No.0 予約 */ 316 { NULL, INVALID_OFFSET }, /* No.1 予約 */ 317 { NULL, INVALID_OFFSET }, /* No.2 予約 */ 318 { NULL, INVALID_OFFSET }, /* No.3 予約 */ 319 { NULL, INVALID_OFFSET }, /* No.4 予約 */ 320 { NULL, INVALID_OFFSET }, /* No.5 予約 */ 321 { NULL, INVALID_OFFSET }, /* No.6 予約 */ 322 { NULL, INVALID_OFFSET }, /* No.7 予約 */ 323 { NULL, INVALID_OFFSET }, /* No.8 予約 */ 324 { NULL, INVALID_OFFSET }, /* No.9 予約 */ 325 { NULL, INVALID_OFFSET }, /* No.10 予約 */ 326 { NULL, INVALID_OFFSET }, /* No.11 予約 */ 327 { NULL, INVALID_OFFSET }, /* No.12 予約 */ 328 { NULL, INVALID_OFFSET }, /* No.13 予約 */ 329 { NULL, INVALID_OFFSET }, /* No.14 予約 */ 330 { NULL, INVALID_OFFSET }, /* No.15 予約 */ 331 { ICU_IER02_ADDR, ICU_IEN0_BIT }, /* No.16 バスエラー BUSERR */ 332 { NULL, INVALID_OFFSET }, /* No.17 予約 */ 333 { NULL, INVALID_OFFSET }, /* No.18 予約 */ 334 { NULL, INVALID_OFFSET }, /* No.19 予約 */ 335 { NULL, INVALID_OFFSET }, /* No.20 予約 */ 341 336 { ICU_IER02_ADDR, ICU_IEN5_BIT }, /* No.21 FCU FIFERR */ 342 { NULL, INVALID_OFFSET }, /* No.22 \ñ*/337 { NULL, INVALID_OFFSET }, /* No.22 予約 */ 343 338 { ICU_IER02_ADDR, ICU_IEN7_BIT }, /* No.23 FCU FRDYI */ 344 { NULL, INVALID_OFFSET }, /* No.24 \ñ*/345 { NULL, INVALID_OFFSET }, /* No.25 \ñ*/346 { NULL, INVALID_OFFSET }, /* No.26 \ñ*/339 { NULL, INVALID_OFFSET }, /* No.24 予約 */ 340 { NULL, INVALID_OFFSET }, /* No.25 予約 */ 341 { NULL, INVALID_OFFSET }, /* No.26 予約 */ 347 342 { ICU_IER03_ADDR, ICU_IEN3_BIT }, /* No.27 SWINT */ 348 { ICU_IER03_ADDR, ICU_IEN4_BIT }, /* No.28 CMT jbg0 CMT0 */349 { ICU_IER03_ADDR, ICU_IEN5_BIT }, /* No.29 CMT jbg0 CMT1 */350 { ICU_IER03_ADDR, ICU_IEN6_BIT }, /* No.30 CMT jbg1 CMT2 */351 { ICU_IER03_ADDR, ICU_IEN7_BIT }, /* No.31 CMT jbg1 CMT3 */343 { ICU_IER03_ADDR, ICU_IEN4_BIT }, /* No.28 CMTユニット0 CMT0 */ 344 { ICU_IER03_ADDR, ICU_IEN5_BIT }, /* No.29 CMTユニット0 CMT1 */ 345 { ICU_IER03_ADDR, ICU_IEN6_BIT }, /* No.30 CMTユニット1 CMT2 */ 346 { ICU_IER03_ADDR, ICU_IEN7_BIT }, /* No.31 CMTユニット1 CMT3 */ 352 347 { ICU_IER04_ADDR, ICU_IEN0_BIT }, /* No.32 ETHER */ 353 348 { ICU_IER04_ADDR, ICU_IEN1_BIT }, /* No.33 USB0 D0FIFO0 */ … … 378 373 { ICU_IER07_ADDR, ICU_IEN2_BIT }, /* No.58 CAN2 RXM2 */ 379 374 { ICU_IER07_ADDR, ICU_IEN3_BIT }, /* No.59 CAN2 TXM2 */ 380 { NULL, INVALID_OFFSET }, /* No.60 \ñ*/381 { NULL, INVALID_OFFSET }, /* No.61 \ñ*/375 { NULL, INVALID_OFFSET }, /* No.60 予約 */ 376 { NULL, INVALID_OFFSET }, /* No.61 予約 */ 382 377 { ICU_IER07_ADDR, ICU_IEN6_BIT }, /* No.62 RTC PRD */ 383 { NULL, INVALID_OFFSET }, /* No.63 \ñ*/384 { ICU_IER08_ADDR, ICU_IEN0_BIT }, /* No.64 O[qIRQ0 */385 { ICU_IER08_ADDR, ICU_IEN1_BIT }, /* No.65 O[qIRQ1 */386 { ICU_IER08_ADDR, ICU_IEN2_BIT }, /* No.66 O[qIRQ2 */387 { ICU_IER08_ADDR, ICU_IEN3_BIT }, /* No.67 O[qIRQ3 */388 { ICU_IER08_ADDR, ICU_IEN4_BIT }, /* No.68 O[qIRQ4 */389 { ICU_IER08_ADDR, ICU_IEN5_BIT }, /* No.69 O[qIRQ5 */390 { ICU_IER08_ADDR, ICU_IEN6_BIT }, /* No.70 O[qIRQ6 */391 { ICU_IER08_ADDR, ICU_IEN7_BIT }, /* No.71 O[qIRQ7 */392 { ICU_IER09_ADDR, ICU_IEN0_BIT }, /* No.72 O[qIRQ8 */393 { ICU_IER09_ADDR, ICU_IEN1_BIT }, /* No.73 O[qIRQ9 */394 { ICU_IER09_ADDR, ICU_IEN2_BIT }, /* No.74 O[qIRQ10 */395 { ICU_IER09_ADDR, ICU_IEN3_BIT }, /* No.75 O[qIRQ11 */396 { ICU_IER09_ADDR, ICU_IEN4_BIT }, /* No.76 O[qIRQ12 */397 { ICU_IER09_ADDR, ICU_IEN5_BIT }, /* No.77 O[qIRQ13 */398 { ICU_IER09_ADDR, ICU_IEN6_BIT }, /* No.78 O[qIRQ14 */399 { ICU_IER09_ADDR, ICU_IEN7_BIT }, /* No.79 O[qIRQ15 */400 { NULL, INVALID_OFFSET }, /* No.80 \ñ*/401 { NULL, INVALID_OFFSET }, /* No.81 \ñ*/402 { NULL, INVALID_OFFSET }, /* No.82 \ñ*/403 { NULL, INVALID_OFFSET }, /* No.83 \ñ*/404 { NULL, INVALID_OFFSET }, /* No.84 \ñ*/405 { NULL, INVALID_OFFSET }, /* No.85 \ñ*/406 { NULL, INVALID_OFFSET }, /* No.86 \ñ*/407 { NULL, INVALID_OFFSET }, /* No.87 \ñ*/408 { NULL, INVALID_OFFSET }, /* No.88 \ñ*/409 { NULL, INVALID_OFFSET }, /* No.89 \ñ*/378 { NULL, INVALID_OFFSET }, /* No.63 予約 */ 379 { ICU_IER08_ADDR, ICU_IEN0_BIT }, /* No.64 外部端子 IRQ0 */ 380 { ICU_IER08_ADDR, ICU_IEN1_BIT }, /* No.65 外部端子 IRQ1 */ 381 { ICU_IER08_ADDR, ICU_IEN2_BIT }, /* No.66 外部端子 IRQ2 */ 382 { ICU_IER08_ADDR, ICU_IEN3_BIT }, /* No.67 外部端子 IRQ3 */ 383 { ICU_IER08_ADDR, ICU_IEN4_BIT }, /* No.68 外部端子 IRQ4 */ 384 { ICU_IER08_ADDR, ICU_IEN5_BIT }, /* No.69 外部端子 IRQ5 */ 385 { ICU_IER08_ADDR, ICU_IEN6_BIT }, /* No.70 外部端子 IRQ6 */ 386 { ICU_IER08_ADDR, ICU_IEN7_BIT }, /* No.71 外部端子 IRQ7 */ 387 { ICU_IER09_ADDR, ICU_IEN0_BIT }, /* No.72 外部端子 IRQ8 */ 388 { ICU_IER09_ADDR, ICU_IEN1_BIT }, /* No.73 外部端子 IRQ9 */ 389 { ICU_IER09_ADDR, ICU_IEN2_BIT }, /* No.74 外部端子 IRQ10 */ 390 { ICU_IER09_ADDR, ICU_IEN3_BIT }, /* No.75 外部端子 IRQ11 */ 391 { ICU_IER09_ADDR, ICU_IEN4_BIT }, /* No.76 外部端子 IRQ12 */ 392 { ICU_IER09_ADDR, ICU_IEN5_BIT }, /* No.77 外部端子 IRQ13 */ 393 { ICU_IER09_ADDR, ICU_IEN6_BIT }, /* No.78 外部端子 IRQ14 */ 394 { ICU_IER09_ADDR, ICU_IEN7_BIT }, /* No.79 外部端子 IRQ15 */ 395 { NULL, INVALID_OFFSET }, /* No.80 予約 */ 396 { NULL, INVALID_OFFSET }, /* No.81 予約 */ 397 { NULL, INVALID_OFFSET }, /* No.82 予約 */ 398 { NULL, INVALID_OFFSET }, /* No.83 予約 */ 399 { NULL, INVALID_OFFSET }, /* No.84 予約 */ 400 { NULL, INVALID_OFFSET }, /* No.85 予約 */ 401 { NULL, INVALID_OFFSET }, /* No.86 予約 */ 402 { NULL, INVALID_OFFSET }, /* No.87 予約 */ 403 { NULL, INVALID_OFFSET }, /* No.88 予約 */ 404 { NULL, INVALID_OFFSET }, /* No.89 予約 */ 410 405 { ICU_IER0B_ADDR, ICU_IEN2_BIT }, /* No.90 USBR0 */ 411 406 { ICU_IER0B_ADDR, ICU_IEN3_BIT }, /* No.91 USBR1 */ 412 407 { ICU_IER0B_ADDR, ICU_IEN4_BIT }, /* No.92 RTC ALM */ 413 408 { ICU_IER0B_ADDR, ICU_IEN5_BIT }, /* No.92 RTC PRD */ 414 { NULL, INVALID_OFFSET }, /* No.94 \ñ*/415 { NULL, INVALID_OFFSET }, /* No.95 \ñ*/416 { NULL, INVALID_OFFSET }, /* No.96 \ñ*/417 { NULL, INVALID_OFFSET }, /* No.97 \ñ*/409 { NULL, INVALID_OFFSET }, /* No.94 予約 */ 410 { NULL, INVALID_OFFSET }, /* No.95 予約 */ 411 { NULL, INVALID_OFFSET }, /* No.96 予約 */ 412 { NULL, INVALID_OFFSET }, /* No.97 予約 */ 418 413 { ICU_IER0C_ADDR, ICU_IEN2_BIT }, /* No.98 AD0 ADI0 */ 419 { NULL, INVALID_OFFSET }, /* No.99 \ñ*/420 { NULL, INVALID_OFFSET }, /* No.100 \ñ*/421 { NULL, INVALID_OFFSET }, /* No.101 \ñ*/414 { NULL, INVALID_OFFSET }, /* No.99 予約 */ 415 { NULL, INVALID_OFFSET }, /* No.100 予約 */ 416 { NULL, INVALID_OFFSET }, /* No.101 予約 */ 422 417 { ICU_IER0C_ADDR, ICU_IEN6_BIT }, /* No.102 S12AD S12ADI00 */ 423 { NULL, INVALID_OFFSET }, /* No.103 \ñ*/424 { NULL, INVALID_OFFSET }, /* No.104 \ñ*/425 { NULL, INVALID_OFFSET }, /* No.105 \ñ*/418 { NULL, INVALID_OFFSET }, /* No.103 予約 */ 419 { NULL, INVALID_OFFSET }, /* No.104 予約 */ 420 { NULL, INVALID_OFFSET }, /* No.105 予約 */ 426 421 { ICU_IER0D_ADDR, ICU_IEN2_BIT }, /* No.106 ICU GROUP0 */ 427 422 { ICU_IER0D_ADDR, ICU_IEN3_BIT }, /* No.107 ICU GROUP1 */ … … 431 426 { ICU_IER0D_ADDR, ICU_IEN7_BIT }, /* No.111 ICU GROUP5 */ 432 427 { ICU_IER0E_ADDR, ICU_IEN0_BIT }, /* No.112 ICU GROUP6 */ 433 { NULL, INVALID_OFFSET }, /* No.113 \ñ*/428 { NULL, INVALID_OFFSET }, /* No.113 予約 */ 434 429 { ICU_IER0E_ADDR, ICU_IEN1_BIT }, /* No.114 ICU GROUP12 */ 435 { NULL, INVALID_OFFSET }, /* No.115 \ñ*/436 { NULL, INVALID_OFFSET }, /* No.116 \ñ*/437 { NULL, INVALID_OFFSET }, /* No.117 \ñ*/438 { NULL, INVALID_OFFSET }, /* No.118 \ñ*/439 { NULL, INVALID_OFFSET }, /* No.119 \ñ*/440 { NULL, INVALID_OFFSET }, /* No.120 \ñ*/441 { NULL, INVALID_OFFSET }, /* No.121 \ñ*/430 { NULL, INVALID_OFFSET }, /* No.115 予約 */ 431 { NULL, INVALID_OFFSET }, /* No.116 予約 */ 432 { NULL, INVALID_OFFSET }, /* No.117 予約 */ 433 { NULL, INVALID_OFFSET }, /* No.118 予約 */ 434 { NULL, INVALID_OFFSET }, /* No.119 予約 */ 435 { NULL, INVALID_OFFSET }, /* No.120 予約 */ 436 { NULL, INVALID_OFFSET }, /* No.121 予約 */ 442 437 { ICU_IER0F_ADDR, ICU_IEN2_BIT }, /* No.122 SCI12 SCIX0 */ 443 438 { ICU_IER0F_ADDR, ICU_IEN3_BIT }, /* No.123 SCI12 SCIX1 */ … … 486 481 { ICU_IER14_ADDR, ICU_IEN6_BIT }, /* No.166 POE OEI1 */ 487 482 { ICU_IER14_ADDR, ICU_IEN7_BIT }, /* No.167 POE OEI2 */ 488 { NULL, INVALID_OFFSET }, /* No.168 \ñ*/489 { NULL, INVALID_OFFSET }, /* No.169 \ñ*/483 { NULL, INVALID_OFFSET }, /* No.168 予約 */ 484 { NULL, INVALID_OFFSET }, /* No.169 予約 */ 490 485 { ICU_IER15_ADDR, ICU_IEN2_BIT }, /* No.170 TMR0 CMIA0 */ 491 486 { ICU_IER15_ADDR, ICU_IEN3_BIT }, /* No.171 TMR0 CMIB0 */ … … 522 517 { ICU_IER19_ADDR, ICU_IEN2_BIT }, /* No.202 EXDMAC EXDMAC0I */ 523 518 { ICU_IER19_ADDR, ICU_IEN3_BIT }, /* No.203 EXDMAC EXDMAC1I */ 524 { NULL, INVALID_OFFSET }, /* No.204 \ñ*/525 { NULL, INVALID_OFFSET }, /* No.205 \ñ*/526 { NULL, INVALID_OFFSET }, /* No.206 \ñ*/527 { NULL, INVALID_OFFSET }, /* No.207 \ñ*/528 { NULL, INVALID_OFFSET }, /* No.208 \ñ*/529 { NULL, INVALID_OFFSET }, /* No.209 \ñ*/530 { NULL, INVALID_OFFSET }, /* No.210 \ñ*/531 { NULL, INVALID_OFFSET }, /* No.211 \ñ*/532 { NULL, INVALID_OFFSET }, /* No.212 \ñ*/533 { NULL, INVALID_OFFSET }, /* No.213 \ñ*/519 { NULL, INVALID_OFFSET }, /* No.204 予約 */ 520 { NULL, INVALID_OFFSET }, /* No.205 予約 */ 521 { NULL, INVALID_OFFSET }, /* No.206 予約 */ 522 { NULL, INVALID_OFFSET }, /* No.207 予約 */ 523 { NULL, INVALID_OFFSET }, /* No.208 予約 */ 524 { NULL, INVALID_OFFSET }, /* No.209 予約 */ 525 { NULL, INVALID_OFFSET }, /* No.210 予約 */ 526 { NULL, INVALID_OFFSET }, /* No.211 予約 */ 527 { NULL, INVALID_OFFSET }, /* No.212 予約 */ 528 { NULL, INVALID_OFFSET }, /* No.213 予約 */ 534 529 { ICU_IER1A_ADDR, ICU_IEN6_BIT }, /* No.214 SCI0 RXI0 */ 535 530 { ICU_IER1A_ADDR, ICU_IEN7_BIT }, /* No.215 SCI0 TXI0 */ … … 572 567 { ICU_IER1F_ADDR, ICU_IEN4_BIT }, /* No.252 SCI12 TEI12 */ 573 568 { ICU_IER1F_ADDR, ICU_IEN5_BIT }, /* No.253 IEB IEBINT */ 574 { NULL, INVALID_OFFSET }, /* No.254 \ñ*/575 { NULL, INVALID_OFFSET }, /* No.255 \ñ*/569 { NULL, INVALID_OFFSET }, /* No.254 予約 */ 570 { NULL, INVALID_OFFSET }, /* No.255 予約 */ 576 571 }; 577 572 578 573 579 574 /* 580 * IRQ Rg[WX^AhXe[u575 * IRQコントロールレジスタアドレステーブル 581 576 */ 582 577 volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = { -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * vZbT˶W 47 [iRX630pj 42 * プロセッサ依存モジュール(RX630用) 48 43 * 49 * ±ÌCN[ht@CÍCtarget_config.hiܽÍC»±©çCN50 * [h³êét@CjÌÝ©çCN[h³êéD¼Ìt@C©ç51 * ¼ÚCN[hµÄÍÈçÈ¢D44 * このインクルードファイルは,target_config.h(または,そこからインク 45 * ルードされるファイル)のみからインクルードされる.他のファイルから 46 * 直接インクルードしてはならない. 52 47 */ 53 48 … … 58 53 59 54 /* 60 * Ývö55 * 割込み要因数 61 56 */ 62 57 #define INHNO_MAX UINT_C( 256 ) … … 64 59 65 60 /* 66 * ݧäp^è`61 * 割込み制御用型定義 67 62 */ 68 63 typedef struct ier_info { … … 73 68 74 69 /* 75 * ݧäpè`70 * 割込み制御用定義 76 71 */ 77 72 #define INVALID_OFFSET ( 0xFFU ) … … 84 79 85 80 /* 86 * ݧäpe[u81 * 割込み制御用テーブル 87 82 */ 88 83 89 /* ÝvövCIeBWX^AhX*/84 /* 割込み要因プライオリティレジスタアドレス */ 90 85 extern volatile uint8_t __evenaccess * const ipr_reg_addr[]; 91 /* ÝvÂWX^AhX*/86 /* 割込み要求許可レジスタアドレス */ 92 87 extern const IER_INFO ier_reg_addr[]; 93 /* ÝvWX^AhX*/88 /* 割込み要求レジスタアドレス */ 94 89 extern volatile uint8_t __evenaccess * const ir_reg_addr[]; 95 /* IRQ Rg[WX^AhX*/90 /* IRQコントロールレジスタアドレス */ 96 91 extern volatile uint8_t __evenaccess * const irqcr_reg_addr[]; 97 92 98 93 99 94 /* 100 * vZbT˶W 101 [iRX630pj 95 * プロセッサ依存モジュール(RX630用) 102 96 */ 103 97 #include "rx630_ccrx/prc_config.h" -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/arch/rx630_ccrx/start.src
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
r164 r167 10 10 ;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 ;* 12 ;* ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 13 ;* Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 14 ;* ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 15 ;* (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 16 ;* \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 17 ;* XR[hÉÜÜêÄ¢é±ÆD 18 ;* (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 19 ;* pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 20 gip 21 ;* Ò}j 22 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 23 ;* ̳ÛØKèðfÚ·é±ÆD 24 ;* (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 25 ;* pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 26 ;* ÆD 27 ;* (a) Äzzɺ¤hL 28 gipÒ}j 29 AÈÇjÉCãLÌ 30 ;* ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 31 ;* (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 32 ;* ñ·é±ÆD 33 ;* (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 34 ;* Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 35 ;* ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 36 ;* RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 37 ;* ÆÓ·é±ÆD 12 ;* 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 13 ;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 ;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 ;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 ;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 ;* スコード中に含まれていること. 18 ;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 ;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 ;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 ;* の無保証規定を掲載すること. 22 ;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 ;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 ;* と. 25 ;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 ;* 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 ;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 ;* 報告すること. 29 ;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 ;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 ;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 ;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 ;* 免責すること. 38 34 ;* 39 ;* {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨40 ;* æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI41 ;* ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF42 ;* AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»43 ;* ÌÓCðíÈ¢D35 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 ;* の責任を負わない. 44 40 ;* 45 41 ;* @(#) $Id: start.src 536 2014-10-09 23:11:40Z coas-nagasima $ … … 49 45 50 46 ; 51 ; }bvÌè`(^[Qbg˶)47 ; メモリマップの定義(ターゲット依存部) 52 48 ; 53 49 54 DFLRE .equ 007FC440H ; DFLRE WX^50 DFLRE .equ 007FC440H ; DFLREレジスタ 55 51 56 52 DB_BLOCK_ENABLE .equ 02D0FH 57 53 58 54 ; 59 ; ú»[`55 ; 初期化ルーチン 60 56 ; 61 57 .section P, CODE … … 69 65 _start: 70 66 ; 71 ; d¹üãÍx0, SÝÖ~óÔÅ é.72 ; J[lÅͬÝðgpµÈ¢½ßABPC, BPSWyÑFINTV73 ; Ìú»ÍsíÈ¢.67 ; 電源投入後はレベル0, 全割込み禁止状態である. 68 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV 69 ; の初期化は行わない. 74 70 ; 75 71 76 72 ; 77 ; à ROMif[^tbV 78 jÌæÌÝè 73 ; 内蔵ROM(データフラッシュ)領域の設定 79 74 ; 80 ; Zbgã, f[^tbV 81 ÌæÍÇÝoµÖ~ÆÈÁÄ¢é 82 ; ½ß, ÇÝoµÂÉÝè·é. 75 ; リセット後, データフラッシュ領域は読み出し禁止となっている 76 ; ため, 読み出し許可に設定する. 83 77 ; 84 78 mov.l #DFLRE, r5 … … 86 80 87 81 ; 88 ; X^bN|C^ÌÝè82 ; スタックポインタの設定 89 83 ; 90 ; [UÉÄñ^XNReLXgpX^bNÌæðpÓµ½ê,91 ; [UÌæðÝè·é.92 ; kernel_cfg.c ÉÄ"_kernel_istkpt"Ìlðè·é.84 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合, 85 ; ユーザ領域を設定する. 86 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する. 93 87 ; 94 88 mov.l #__kernel_istkpt, r5 95 mov.l [r5], r0 ; ñ^XNReLXgpX^bNÌæðÝè89 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定 96 90 97 91 ; 98 ; ÂÏxN^e[uÌÝè92 ; 可変ベクタテーブルの設定 99 93 ; 100 mvtc #(topof C$VECT), intb ; xN^e[uÌÝè94 mvtc #(topof C$VECT), intb ; ベクタテーブルの設定 101 95 102 96 ; 103 ; n[hEFAÅLÌú»[`ÌÄoµ97 ; ハードウェア固有の初期化ルーチンの呼出し 104 98 ; 105 99 mov.l #_hardware_init_hook, r5 … … 109 103 110 104 ; 111 ; úl èÏÌæÌú»105 ; 初期値あり変数領域の初期化 112 106 ; 113 107 init_D: 114 108 mov.l #(sizeof R), r3 115 109 cmp #0, r3 116 beq.b init_D_2 ; TCY0Èçú»Kvȵ110 beq.b init_D_2 ; サイズ0なら初期化必要なし 117 111 mov.l #(topof R), r1 118 112 mov.l #(topof D), r2 … … 122 116 mov.l #(sizeof R_2), r3 123 117 cmp #0, r3 124 beq.b init_D_1 ; TCY0Èçú»Kvȵ118 beq.b init_D_1 ; サイズ0なら初期化必要なし 125 119 mov.l #(topof R_2), r1 126 120 mov.l #(topof D_2), r2 … … 130 124 mov.l #(sizeof R_1), r3 131 125 cmp #0, r3 132 beq.b clear_B ; TCY0Èçú»Kvȵ126 beq.b clear_B ; サイズ0なら初期化必要なし 133 127 mov.l #(topof R_1), r1 134 128 mov.l #(topof D_1), r2 … … 136 130 137 131 ; 138 ; úlȵÏÌæÌú»132 ; 初期値なし変数領域の初期化 139 133 ; 140 134 clear_B: … … 157 151 158 152 ; 159 ; software_init_hook ðÄoµi0 ÅÈ¢êj153 ; software_init_hook を呼出し(0 でない場合) 160 154 ; 161 ; \tgEFA«iÁÉCujÉ˶µÄKvÈú»162 ; ª éêÍCsoftware_init_hook Æ¢¤ÖðpÓ·êÎæ¢.155 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理 156 ; がある場合は,software_init_hook という関数を用意すればよい. 163 157 ; 164 158 mov.l #_software_init_hook, r5 … … 168 162 169 163 ; 170 ; J[lX^[g164 ; カーネルスタート 171 165 ; 172 166 kernel_link: -
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/include/histogram.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * ÀsÔªzWvW 46 [ 41 * 実行時間分布集計モジュール 47 42 */ 48 43 … … 55 50 56 51 /* 57 * ÀsÔªzvªÌú»52 * 実行時間分布計測の初期化 58 53 */ 59 54 extern void init_hist(ID histid, uint_t maxval, uint_t histarea[]); 60 55 61 56 /* 62 * ÀsÔvªÌJn57 * 実行時間計測の開始 63 58 */ 64 59 extern void begin_measure(ID histid); 65 60 66 61 /* 67 * ÀsÔvªÌI¹62 * 実行時間計測の終了 68 63 */ 69 64 extern void end_measure(ID histid); 70 65 71 66 /* 72 * ÀsÔªzvªÌ\¦67 * 実行時間分布計測の表示 73 68 */ 74 69 extern void print_hist(ID histid); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/itron.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * $Id$ … … 45 41 46 42 /* 47 * ITRON dl¤ÊKèÌf[^^EèE}N43 * ITRON仕様共通規定のデータ型・定数・マクロ 48 44 * 49 * ±Ìwb_t@CÍCITRONdl¤ÊKèÌf[^^EèE}NÌ50 * ÅCTOPPERS¤Êwb_t@CÉÜÜêÈ¢àÌÌè`ðÜÞDITRONd51 * lÆÌÝ·«ðKvÆ·éAvP[VªCN[h·é±Æðz52 * èµÄ¢éD45 * このヘッダファイルは,ITRON仕様共通規定のデータ型・定数・マクロの中 46 * で,TOPPERS共通ヘッダファイルに含まれないものの定義を含む.ITRON仕 47 * 様との互換性を必要とするアプリケーションがインクルードすることを想 48 * 定している. 53 49 * 54 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é55 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨D±êÉæèC}Nè`ÈOð56 * æ¤ÉÈÁÄ¢éD50 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 51 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 52 * 除くようになっている. 57 53 */ 58 54 … … 65 61 66 62 /* 67 * TOPPERS ¤Êwb_t@C63 * TOPPERS共通ヘッダファイル 68 64 */ 69 65 #include "t_stddef.h" 70 66 71 67 /* 72 * ITRON dl¤Êf[^^68 * ITRON仕様共通データ型 73 69 */ 74 70 #ifndef TOPPERS_MACRO_ONLY 75 71 76 72 #ifdef INT8_MAX 77 typedef int8_t B; /* t«8rbg®*/73 typedef int8_t B; /* 符号付き8ビット整数 */ 78 74 #endif /* INT8_MAX */ 79 75 80 76 #ifdef UINT8_MAX 81 typedef uint8_t UB; /* ³µ8rbg®*/82 typedef uint8_t VB; /* ^ªèÜçÈ¢8rbgÌl*/77 typedef uint8_t UB; /* 符号無し8ビット整数 */ 78 typedef uint8_t VB; /* 型が定まらない8ビットの値 */ 83 79 #endif /* UINT8_MAX */ 84 80 85 typedef int16_t H; /* t«16rbg®*/86 typedef uint16_t UH; /* ³µ16rbg®*/87 typedef uint16_t VH; /* ^ªèÜçÈ¢16rbgÌl*/81 typedef int16_t H; /* 符号付き16ビット整数 */ 82 typedef uint16_t UH; /* 符号無し16ビット整数 */ 83 typedef uint16_t VH; /* 型が定まらない16ビットの値 */ 88 84 89 typedef int32_t W; /* t«32rbg®*/90 typedef uint32_t UW; /* ³µ32rbg®*/91 typedef uint32_t VW; /* ^ªèÜçÈ¢32rbgÌl*/85 typedef int32_t W; /* 符号付き32ビット整数 */ 86 typedef uint32_t UW; /* 符号無し32ビット整数 */ 87 typedef uint32_t VW; /* 型が定まらない32ビットの値 */ 92 88 93 89 #ifdef INT64_MAX 94 typedef int64_t D; /* t«64rbg®*/90 typedef int64_t D; /* 符号付き64ビット整数 */ 95 91 #endif /* INT64_MAX */ 96 92 97 93 #ifdef UINT64_MAX 98 typedef uint64_t UD; /* ³µ64rbg®*/99 typedef uint64_t VD; /* ^ªèÜçÈ¢64rbgÌl*/94 typedef uint64_t UD; /* 符号無し64ビット整数 */ 95 typedef uint64_t VD; /* 型が定まらない64ビットの値 */ 100 96 #endif /* UINT64_MAX */ 101 97 102 typedef void *VP; /* ^ªèÜçÈ¢àÌÖÌ|C^*/98 typedef void *VP; /* 型が定まらないものへのポインタ */ 103 99 104 typedef int_t INT; /* ©RÈTCYÌt«®*/105 typedef uint_t UINT; /* ©RÈTCY̳µ®*/100 typedef int_t INT; /* 自然なサイズの符号付き整数 */ 101 typedef uint_t UINT; /* 自然なサイズの符号無し整数 */ 106 102 107 typedef bool_t BOOL; /* ^Ul*/103 typedef bool_t BOOL; /* 真偽値 */ 108 104 109 typedef intptr_t VP_INT; /* |C^ܽÍt«®*/105 typedef intptr_t VP_INT; /* ポインタまたは符号付き整数 */ 110 106 111 107 #endif /* TOPPERS_MACRO_ONLY */ 112 108 113 109 /* 114 * ITRON dl¤Êè110 * ITRON仕様共通定数 115 111 */ 116 #define TRUE true /* ^*/117 #define FALSE false /* U*/112 #define TRUE true /* 真 */ 113 #define FALSE false /* 偽 */ 118 114 119 115 /* 120 * IuWFNg®«Ìè`116 * オブジェクト属性の定義 121 117 */ 122 #define TA_HLNG UINT_C(0x00) /* ¾êpC^tF[X */ 123 #define TA_TFIFO UINT_C(0x00) /* ^XNÌÒ¿sñðFIFOÉ */ 124 #define TA_MFIFO UINT_C(0x00) /* bZ[WL 125 [ðFIFOÉ */ 126 #define TA_WSGL UINT_C(0x00) /* Ò¿^XNÍ1ÂÌÝ */ 118 #define TA_HLNG UINT_C(0x00) /* 高級言語用インタフェース */ 119 #define TA_TFIFO UINT_C(0x00) /* タスクの待ち行列をFIFO順に */ 120 #define TA_MFIFO UINT_C(0x00) /* メッセージキューをFIFO順に */ 121 #define TA_WSGL UINT_C(0x00) /* 待ちタスクは1つのみ */ 127 122 128 123 /* 129 * lXgñÌÅål124 * ネスト回数の最大値 130 125 */ 131 #define TMAX_SUSCNT UINT_C(1) /* §Ò¿vlXgÌÅål*/126 #define TMAX_SUSCNT UINT_C(1) /* 強制待ち要求ネスト数の最大値 */ 132 127 133 128 /* 134 * §Ò¿óÔ©ç̧ÄJ129 * 強制待ち状態からの強制再開 135 130 */ 136 131 #define frsm_tsk(tskid) rsm_tsk(tskid) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/kernel.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * TOPPERS/ASP J[l Wwb_t@C44 * TOPPERS/ASPカーネル 標準ヘッダファイル 49 45 * 50 * TOPPERS/ASP J[lªT|[g·éT[rXR[Ìé¾ÆCKvÈf[51 * ^^CèC}NÌè`ðÜÞwb_t@CD46 * TOPPERS/ASPカーネルがサポートするサービスコールの宣言と,必要なデー 47 * タ型,定数,マクロの定義を含むヘッダファイル. 52 48 * 53 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é54 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨D±êÉæèC}Nè`ÈOð55 * æ¤ÉÈÁÄ¢éD49 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 50 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 51 * 除くようになっている. 56 52 * 57 * ±Ìt@CðCN[h·éOÉCN[hµÄ¨×«t@C58 * ÍÈ¢D53 * このファイルをインクルードする前にインクルードしておくべきファイル 54 * はない. 59 55 */ 60 56 … … 67 63 68 64 /* 69 * TOPPERS ¤ÊÌf[^^EèE}N65 * TOPPERS共通のデータ型・定数・マクロ 70 66 */ 71 67 #include <t_stddef.h> 72 68 73 69 /* 74 * ^[Qbg˶70 * ターゲット依存部 75 71 */ 76 72 #include "target_kernel.h" … … 79 75 80 76 /* 81 * f[^^Ìè`82 */ 83 84 /* 85 * rbgp^[âIuWFNgÔÌ^è`86 */ 87 typedef uint_t TEXPTN; /* ^XNáOvöÌrbgp^[*/88 typedef uint_t FLGPTN; /* CxgtOÌrbgp^[*/89 typedef uint_t INTNO; /* ÝÔ*/90 typedef uint_t INHNO; /* ÝnhÔ*/91 typedef uint_t EXCNO; /* CPU áOnhÔ*/92 93 /* 94 * PÊÌ^è`77 * データ型の定義 78 */ 79 80 /* 81 * ビットパターンやオブジェクト番号の型定義 82 */ 83 typedef uint_t TEXPTN; /* タスク例外要因のビットパターン */ 84 typedef uint_t FLGPTN; /* イベントフラグのビットパターン */ 85 typedef uint_t INTNO; /* 割込み番号 */ 86 typedef uint_t INHNO; /* 割込みハンドラ番号 */ 87 typedef uint_t EXCNO; /* CPU例外ハンドラ番号 */ 88 89 /* 90 * 処理単位の型定義 95 91 */ 96 92 typedef void (*TASK)(intptr_t exinf); … … 105 101 106 102 /* 107 * ÌæmÛ̽ßÌ^è`103 * メモリ領域確保のための型定義 108 104 */ 109 105 #ifndef TOPPERS_STK_T 110 106 #define TOPPERS_STK_T intptr_t 111 107 #endif /* TOPPERS_STK_T */ 112 typedef TOPPERS_STK_T STK_T; /* X^bNÌæðmÛ·é½ßÌ^*/108 typedef TOPPERS_STK_T STK_T; /* スタック領域を確保するための型 */ 113 109 114 110 #ifndef TOPPERS_MPF_T 115 111 #define TOPPERS_MPF_T intptr_t 116 112 #endif /* TOPPERS_MPF_T */ 117 typedef TOPPERS_MPF_T MPF_T; /* Åè·v[ÌæðmÛ·é½ßÌ^*/118 119 /* 120 * bZ[Wwb_Ì^è`121 */ 122 typedef struct t_msg { /* [{bNXÌbZ[Wwb_*/113 typedef TOPPERS_MPF_T MPF_T; /* 固定長メモリプール領域を確保するための型 */ 114 115 /* 116 * メッセージヘッダの型定義 117 */ 118 typedef struct t_msg { /* メールボックスのメッセージヘッダ */ 123 119 struct t_msg *pk_next; 124 120 } T_MSG; 125 121 126 typedef struct t_msg_pri { /* Dæxt«bZ[Wwb_*/127 T_MSG msgque; /* bZ[Wwb_*/128 PRI msgpri; /* bZ[WDæx*/122 typedef struct t_msg_pri { /* 優先度付きメッセージヘッダ */ 123 T_MSG msgque; /* メッセージヘッダ */ 124 PRI msgpri; /* メッセージ優先度 */ 129 125 } T_MSG_PRI; 130 126 131 127 /* 132 * pPbg`®Ìè`128 * パケット形式の定義 133 129 */ 134 130 typedef struct t_ctsk { 135 ATR tskatr; /* ^XN®«*/136 intptr_t exinf; /* ^XNÌg£îñ*/137 TASK task; /* ^XNÌC[`ÌæªÔn*/138 PRI itskpri; /* ^XNÌN®Dæx*/139 SIZE stksz; /* ^XNÌX^bNÌæÌTCY*/140 STK_T *stk; /* ^XNÌX^bNÌæÌæªÔn*/131 ATR tskatr; /* タスク属性 */ 132 intptr_t exinf; /* タスクの拡張情報 */ 133 TASK task; /* タスクのメインルーチンの先頭番地 */ 134 PRI itskpri; /* タスクの起動時優先度 */ 135 SIZE stksz; /* タスクのスタック領域のサイズ */ 136 STK_T *stk; /* タスクのスタック領域の先頭番地 */ 141 137 } T_CTSK; 142 138 143 139 typedef struct t_rtsk { 144 STAT tskstat; /* ^XNóÔ */ 145 PRI tskpri; /* ^XNÌ»ÝDæx */ 146 PRI tskbpri; /* ^XNÌx[XDæx */ 147 STAT tskwait; /* Ò¿vö */ 148 ID wobjid; /* Ò¿ÎÛÌIuWFNgÌID */ 149 TMO lefttmo; /* ^CAEg·éÜÅÌÔ */ 150 uint_t actcnt; /* N®vL 151 [CO */ 152 uint_t wupcnt; /* N°vL 153 [CO */ 140 STAT tskstat; /* タスク状態 */ 141 PRI tskpri; /* タスクの現在優先度 */ 142 PRI tskbpri; /* タスクのベース優先度 */ 143 STAT tskwait; /* 待ち要因 */ 144 ID wobjid; /* 待ち対象のオブジェクトのID */ 145 TMO lefttmo; /* タイムアウトするまでの時間 */ 146 uint_t actcnt; /* 起動要求キューイング数 */ 147 uint_t wupcnt; /* 起床要求キューイング数 */ 154 148 } T_RTSK; 155 149 156 150 typedef struct t_dtex { 157 ATR texatr; /* ^XNáO[`®«*/158 TEXRTN texrtn; /* ^XNáO[`ÌæªÔn*/151 ATR texatr; /* タスク例外処理ルーチン属性 */ 152 TEXRTN texrtn; /* タスク例外処理ルーチンの先頭番地 */ 159 153 } T_DTEX; 160 154 161 155 typedef struct t_rtex { 162 STAT texstat; /* ^XNáOÌóÔ*/163 TEXPTN pndptn; /* Û¯áOvö*/156 STAT texstat; /* タスク例外処理の状態 */ 157 TEXPTN pndptn; /* 保留例外要因 */ 164 158 } T_RTEX; 165 159 166 160 typedef struct t_csem { 167 ATR sematr; /* Z}tH®«*/168 uint_t isemcnt; /* Z}tHÌú¹*/169 uint_t maxsem; /* Z}tHÌÅå¹*/161 ATR sematr; /* セマフォ属性 */ 162 uint_t isemcnt; /* セマフォの初期資源数 */ 163 uint_t maxsem; /* セマフォの最大資源数 */ 170 164 } T_CSEM; 171 165 172 166 typedef struct t_rsem { 173 ID wtskid; /* Z}tHÌÒ¿sñÌæªÌ^XNÌIDÔ*/174 uint_t semcnt; /* Z}tHÌ»Ý̹*/167 ID wtskid; /* セマフォの待ち行列の先頭のタスクのID番号 */ 168 uint_t semcnt; /* セマフォの現在の資源数 */ 175 169 } T_RSEM; 176 170 177 171 typedef struct t_cflg { 178 ATR flgatr; /* CxgtO®«*/179 FLGPTN iflgptn; /* CxgtOÌúrbgp^[*/172 ATR flgatr; /* イベントフラグ属性 */ 173 FLGPTN iflgptn; /* イベントフラグの初期ビットパターン */ 180 174 } T_CFLG; 181 175 182 176 typedef struct t_rflg { 183 ID wtskid; /* CxgtOÌÒ¿sñÌæªÌ^XNÌIDÔ*/184 FLGPTN flgptn; /* CxgtOÌ»ÝÌrbgp^[*/177 ID wtskid; /* イベントフラグの待ち行列の先頭のタスクのID番号 */ 178 FLGPTN flgptn; /* イベントフラグの現在のビットパターン */ 185 179 } T_RFLG; 186 180 187 181 typedef struct t_cdtq { 188 ATR dtqatr; /* f[^L 189 [®« */ 190 uint_t dtqcnt; /* f[^L 191 [ÇÌæÉi[Å«éf[^ */ 192 void *dtqmb; /* f[^L 193 [ÇÌæÌæªÔn */ 182 ATR dtqatr; /* データキュー属性 */ 183 uint_t dtqcnt; /* データキュー管理領域に格納できるデータ数 */ 184 void *dtqmb; /* データキュー管理領域の先頭番地 */ 194 185 } T_CDTQ; 195 186 196 187 typedef struct t_rdtq { 197 ID stskid; /* f[^L 198 [ÌMÒ¿sñÌæªÌ^XNÌIDÔ */ 199 ID rtskid; /* f[^L 200 [ÌóMÒ¿sñÌæªÌ^XNÌIDÔ */ 201 uint_t sdtqcnt; /* f[^L 202 [ÇÌæÉi[³êÄ¢éf[^Ì */ 188 ID stskid; /* データキューの送信待ち行列の先頭のタスクのID番号 */ 189 ID rtskid; /* データキューの受信待ち行列の先頭のタスクのID番号 */ 190 uint_t sdtqcnt; /* データキュー管理領域に格納されているデータの数 */ 203 191 } T_RDTQ; 204 192 205 193 typedef struct t_cpdq { 206 ATR pdqatr; /* Dæxf[^L 207 [®« */ 208 uint_t pdqcnt; /* Dæxf[^L 209 [ÇÌæÉi[Å«éf[^ */ 210 PRI maxdpri; /* Dæxf[^L 211 [ÉMÅ«éf[^DæxÌÅ 212 ål */ 213 void *pdqmb; /* Dæxf[^L 214 [ÇÌæÌæªÔn */ 194 ATR pdqatr; /* 優先度データキュー属性 */ 195 uint_t pdqcnt; /* 優先度データキュー管理領域に格納できるデータ数 */ 196 PRI maxdpri; /* 優先度データキューに送信できるデータ優先度の最 197 大値 */ 198 void *pdqmb; /* 優先度データキュー管理領域の先頭番地 */ 215 199 } T_CPDQ; 216 200 217 201 typedef struct t_rpdq { 218 ID stskid; /* Dæxf[^L 219 [ÌMÒ¿sñÌæªÌ^XN 220 ÌIDÔ */ 221 ID rtskid; /* Dæxf[^L 222 [ÌóMÒ¿sñÌæªÌ^XN 223 ÌIDÔ */ 224 uint_t spdqcnt; /* Dæxf[^L 225 [ÇÌæÉi[³êÄ¢éf[ 226 ^Ì */ 202 ID stskid; /* 優先度データキューの送信待ち行列の先頭のタスク 203 のID番号 */ 204 ID rtskid; /* 優先度データキューの受信待ち行列の先頭のタスク 205 のID番号 */ 206 uint_t spdqcnt; /* 優先度データキュー管理領域に格納されているデー 207 タの数 */ 227 208 } T_RPDQ; 228 209 229 210 typedef struct t_cmbx { 230 ATR mbxatr; /* [{bNX®« */ 231 PRI maxmpri; /* Dæx[{bNXÉMÅ«ébZ[WDæ 232 xÌÅål */ 233 void *mprihd; /* DæxÊÌbZ[WL 234 [wb_ÌæÌæªÔn */ 211 ATR mbxatr; /* メールボックス属性 */ 212 PRI maxmpri; /* 優先度メールボックスに送信できるメッセージ優先 213 度の最大値 */ 214 void *mprihd; /* 優先度別のメッセージキューヘッダ領域の先頭番地 */ 235 215 } T_CMBX; 236 216 237 217 typedef struct t_rmbx { 238 ID wtskid; /* [{bNXÌÒ¿sñÌæªÌ^XNÌIDÔ */ 239 T_MSG *pk_msg; /* bZ[WL 240 [ÌæªÉÂȪê½bZ[W 241 ÌæªÔn */ 218 ID wtskid; /* メールボックスの待ち行列の先頭のタスクのID番号 */ 219 T_MSG *pk_msg; /* メッセージキューの先頭につながれたメッセージ 220 の先頭番地 */ 242 221 } T_RMBX; 243 222 244 223 typedef struct t_cmpf { 245 ATR mpfatr; /* Åè·v[®«*/246 uint_t blkcnt; /* l¾Å«éÅè·ubNÌ*/247 uint_t blksz; /* Åè·ubNÌTCY*/248 MPF_T *mpf; /* Åè·v[ÌæÌæªÔn*/249 void *mpfmb; /* Åè·v[ÇÌæÌæªÔn*/224 ATR mpfatr; /* 固定長メモリプール属性 */ 225 uint_t blkcnt; /* 獲得できる固定長メモリブロックの数 */ 226 uint_t blksz; /* 固定長メモリブロックのサイズ */ 227 MPF_T *mpf; /* 固定長メモリプール領域の先頭番地 */ 228 void *mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 250 229 } T_CMPF; 251 230 252 231 typedef struct t_rmpf { 253 ID wtskid; /* Åè·v[ÌÒ¿sñÌæªÌ^XNÌ254 ID Ô*/255 uint_t fblkcnt; /* Åè·v[ÌæÌó«ÌæÉè256 t¯é±ÆªÅ«éÅè·ubNÌ*/232 ID wtskid; /* 固定長メモリプールの待ち行列の先頭のタスクの 233 ID番号 */ 234 uint_t fblkcnt; /* 固定長メモリプール領域の空きメモリ領域に割り 235 付けることができる固定長メモリブロックの数 */ 257 236 } T_RMPF; 258 237 259 238 typedef struct t_ccyc { 260 ATR cycatr; /* üúnh®«*/261 intptr_t exinf; /* üúnhÌg£îñ*/262 CYCHDR cychdr; /* üúnhÌæªÔn*/263 RELTIM cyctim; /* üúnhÌN®üú*/264 RELTIM cycphs; /* üúnhÌN®Ê*/239 ATR cycatr; /* 周期ハンドラ属性 */ 240 intptr_t exinf; /* 周期ハンドラの拡張情報 */ 241 CYCHDR cychdr; /* 周期ハンドラの先頭番地 */ 242 RELTIM cyctim; /* 周期ハンドラの起動周期 */ 243 RELTIM cycphs; /* 周期ハンドラの起動位相 */ 265 244 } T_CCYC; 266 245 267 246 typedef struct t_rcyc { 268 STAT cycstat; /* üúnhÌ®ìóÔ*/269 RELTIM lefttim; /* ÉüúnhðN®·éÜÅÌÎÔ*/247 STAT cycstat; /* 周期ハンドラの動作状態 */ 248 RELTIM lefttim; /* 次に周期ハンドラを起動する時刻までの相対時間 */ 270 249 } T_RCYC; 271 250 272 251 typedef struct t_calm { 273 ATR almatr; /* A[nh®«*/274 intptr_t exinf; /* A[nhÌg£îñ*/275 ALMHDR almhdr; /* A[nhÌæªÔn*/252 ATR almatr; /* アラームハンドラ属性 */ 253 intptr_t exinf; /* アラームハンドラの拡張情報 */ 254 ALMHDR almhdr; /* アラームハンドラの先頭番地 */ 276 255 } T_CALM; 277 256 278 257 typedef struct t_ralm { 279 STAT almstat; /* A[nhÌ®ìóÔ*/280 RELTIM lefttim; /* A[nhðN®·éÜÅÌÎÔ*/258 STAT almstat; /* アラームハンドラの動作状態 */ 259 RELTIM lefttim; /* アラームハンドラを起動する時刻までの相対時間 */ 281 260 } T_RALM; 282 261 283 262 typedef struct t_cisr { 284 ATR isratr; /* ÝT[rX[`®«*/285 intptr_t exinf; /* ÝT[rX[`Ìg£îñ*/286 INTNO intno; /* ÝT[rX[`ðo^·éÝÔ*/287 ISR isr; /* ÝT[rX[`ÌæªÔn*/288 PRI isrpri; /* ÝT[rX[`Dæx*/263 ATR isratr; /* 割込みサービスルーチン属性 */ 264 intptr_t exinf; /* 割込みサービスルーチンの拡張情報 */ 265 INTNO intno; /* 割込みサービスルーチンを登録する割込み番号 */ 266 ISR isr; /* 割込みサービスルーチンの先頭番地 */ 267 PRI isrpri; /* 割込みサービスルーチン優先度 */ 289 268 } T_CISR; 290 269 291 270 /* 292 * T[rXR[Ìé¾293 */ 294 295 /* 296 * ^XNÇ@\271 * サービスコールの宣言 272 */ 273 274 /* 275 * タスク管理機能 297 276 */ 298 277 extern ER_UINT acre_tsk(const T_CTSK *pk_ctsk) throw(); … … 309 288 310 289 /* 311 * ^XNt®¯ú@\290 * タスク付属同期機能 312 291 */ 313 292 extern ER slp_tsk(void) throw(); … … 323 302 324 303 /* 325 * ^XNáO@\304 * タスク例外処理機能 326 305 */ 327 306 extern ER def_tex(ID tskid, const T_DTEX *pk_dtex) throw(); … … 334 313 335 314 /* 336 * ¯úEÊM@\315 * 同期・通信機能 337 316 */ 338 317 extern ER_ID acre_sem(const T_CSEM *pk_csem) throw(); … … 398 377 399 378 /* 400 * v[Ç@\379 * メモリプール管理機能 401 380 */ 402 381 extern ER_ID acre_mpf(const T_CMPF *pk_cmpf) throw(); … … 410 389 411 390 /* 412 * ÔÇ@\391 * 時間管理機能 413 392 */ 414 393 extern ER get_tim(SYSTIM *p_systim) throw(); … … 430 409 431 410 /* 432 * VXeóÔÇ@\411 * システム状態管理機能 433 412 */ 434 413 extern ER rot_rdq(PRI tskpri) throw(); … … 450 429 451 430 /* 452 * ÝÇ@\431 * 割込み管理機能 453 432 */ 454 433 extern ER_ID acre_isr(const T_CISR *pk_cisr) throw(); … … 460 439 461 440 /* 462 * CPU áOÇ@\441 * CPU例外管理機能 463 442 */ 464 443 extern bool_t xsns_dpn(void *p_excinf) throw(); … … 468 447 469 448 /* 470 * IuWFNg®«Ìè` 471 */ 472 #define TA_ACT UINT_C(0x02) /* ^XNðN®³ê½óÔŶ¬ */ 473 474 #define TA_TPRI UINT_C(0x01) /* ^XNÌÒ¿sñðDæxÉ */ 475 #define TA_MPRI UINT_C(0x02) /* bZ[WL 476 [ðDæxÉ */ 477 478 #define TA_WMUL UINT_C(0x02) /* ¡ÌÒ¿^XN */ 479 #define TA_CLR UINT_C(0x04) /* CxgtOÌNAwè */ 480 481 #define TA_STA UINT_C(0x02) /* üúnhð®ìóÔŶ¬ */ 482 483 #define TA_NONKERNEL UINT_C(0x02) /* J[lÇOÌÝ */ 484 485 #define TA_ENAINT UINT_C(0x01) /* ÝvÖ~tOðNA */ 486 #define TA_EDGE UINT_C(0x02) /* GbWgK */ 487 488 /* 489 * T[rXR[Ì®ì[hÌè` 490 */ 491 #define TWF_ORW UINT_C(0x01) /* CxgtOÌORÒ¿ */ 492 #define TWF_ANDW UINT_C(0x02) /* CxgtOÌANDÒ¿ */ 493 494 /* 495 * IuWFNgÌóÔÌè` 496 */ 497 #define TTS_RUN UINT_C(0x01) /* ÀsóÔ */ 498 #define TTS_RDY UINT_C(0x02) /* ÀsÂ\óÔ */ 499 #define TTS_WAI UINT_C(0x04) /* Ò¿óÔ */ 500 #define TTS_SUS UINT_C(0x08) /* §Ò¿óÔ */ 501 #define TTS_WAS UINT_C(0x0c) /* ñdÒ¿óÔ */ 502 #define TTS_DMT UINT_C(0x10) /* x~óÔ */ 503 504 #define TTW_SLP UINT_C(0x0001) /* N°Ò¿ */ 505 #define TTW_DLY UINT_C(0x0002) /* ÔoßÒ¿ */ 506 #define TTW_SEM UINT_C(0x0004) /* Z}tH̹l¾Ò¿ */ 507 #define TTW_FLG UINT_C(0x0008) /* CxgtOÒ¿ */ 508 #define TTW_SDTQ UINT_C(0x0010) /* f[^L 509 [ÖÌMÒ¿ */ 510 #define TTW_RDTQ UINT_C(0x0020) /* f[^L 511 [©çÌóMÒ¿ */ 512 #define TTW_SPDQ UINT_C(0x0100) /* Dæxf[^L 513 [ÖÌMÒ¿ */ 514 #define TTW_RPDQ UINT_C(0x0200) /* Dæxf[^L 515 [©çÌóMÒ¿ */ 516 #define TTW_MBX UINT_C(0x0040) /* [{bNX©çÌóMÒ¿ */ 517 #define TTW_MPF UINT_C(0x2000) /* Åè·ubNÌl¾Ò¿ */ 518 519 #define TTEX_ENA UINT_C(0x01) /* ^XNáOÂóÔ */ 520 #define TTEX_DIS UINT_C(0x02) /* ^XNáOÖ~óÔ */ 521 522 #define TCYC_STP UINT_C(0x01) /* üúnhª®ìµÄ¢È¢ */ 523 #define TCYC_STA UINT_C(0x02) /* üúnhª®ìµÄ¢é */ 524 525 #define TALM_STP UINT_C(0x01) /* A[nhª®ìµÄ¢È¢ */ 526 #define TALM_STA UINT_C(0x02) /* A[nhª®ìµÄ¢é */ 527 528 /* 529 * »Ì¼ÌèÌè` 530 */ 531 #define TSK_SELF 0 /* ©^XNwè */ 532 #define TSK_NONE 0 /* Y·é^XNªÈ¢ */ 533 534 #define TPRI_SELF 0 /* ©^XNÌx[XDæx */ 535 #define TPRI_INI 0 /* ^XNÌN®Dæx */ 536 537 #define TIPM_ENAALL 0 /* ÝDæx}XNSð */ 538 539 /* 540 * \¬èÆ}N 541 */ 542 543 /* 544 * T|[g·é@\ 449 * オブジェクト属性の定義 450 */ 451 #define TA_ACT UINT_C(0x02) /* タスクを起動された状態で生成 */ 452 453 #define TA_TPRI UINT_C(0x01) /* タスクの待ち行列を優先度順に */ 454 #define TA_MPRI UINT_C(0x02) /* メッセージキューを優先度順に */ 455 456 #define TA_WMUL UINT_C(0x02) /* 複数の待ちタスク */ 457 #define TA_CLR UINT_C(0x04) /* イベントフラグのクリア指定 */ 458 459 #define TA_STA UINT_C(0x02) /* 周期ハンドラを動作状態で生成 */ 460 461 #define TA_NONKERNEL UINT_C(0x02) /* カーネル管理外の割込み */ 462 463 #define TA_ENAINT UINT_C(0x01) /* 割込み要求禁止フラグをクリア */ 464 #define TA_EDGE UINT_C(0x02) /* エッジトリガ */ 465 466 /* 467 * サービスコールの動作モードの定義 468 */ 469 #define TWF_ORW UINT_C(0x01) /* イベントフラグのOR待ち */ 470 #define TWF_ANDW UINT_C(0x02) /* イベントフラグのAND待ち */ 471 472 /* 473 * オブジェクトの状態の定義 474 */ 475 #define TTS_RUN UINT_C(0x01) /* 実行状態 */ 476 #define TTS_RDY UINT_C(0x02) /* 実行可能状態 */ 477 #define TTS_WAI UINT_C(0x04) /* 待ち状態 */ 478 #define TTS_SUS UINT_C(0x08) /* 強制待ち状態 */ 479 #define TTS_WAS UINT_C(0x0c) /* 二重待ち状態 */ 480 #define TTS_DMT UINT_C(0x10) /* 休止状態 */ 481 482 #define TTW_SLP UINT_C(0x0001) /* 起床待ち */ 483 #define TTW_DLY UINT_C(0x0002) /* 時間経過待ち */ 484 #define TTW_SEM UINT_C(0x0004) /* セマフォの資源獲得待ち */ 485 #define TTW_FLG UINT_C(0x0008) /* イベントフラグ待ち */ 486 #define TTW_SDTQ UINT_C(0x0010) /* データキューへの送信待ち */ 487 #define TTW_RDTQ UINT_C(0x0020) /* データキューからの受信待ち */ 488 #define TTW_SPDQ UINT_C(0x0100) /* 優先度データキューへの送信待ち */ 489 #define TTW_RPDQ UINT_C(0x0200) /* 優先度データキューからの受信待ち */ 490 #define TTW_MBX UINT_C(0x0040) /* メールボックスからの受信待ち */ 491 #define TTW_MPF UINT_C(0x2000) /* 固定長メモリブロックの獲得待ち */ 492 493 #define TTEX_ENA UINT_C(0x01) /* タスク例外処理許可状態 */ 494 #define TTEX_DIS UINT_C(0x02) /* タスク例外処理禁止状態 */ 495 496 #define TCYC_STP UINT_C(0x01) /* 周期ハンドラが動作していない */ 497 #define TCYC_STA UINT_C(0x02) /* 周期ハンドラが動作している */ 498 499 #define TALM_STP UINT_C(0x01) /* アラームハンドラが動作していない */ 500 #define TALM_STA UINT_C(0x02) /* アラームハンドラが動作している */ 501 502 /* 503 * その他の定数の定義 504 */ 505 #define TSK_SELF 0 /* 自タスク指定 */ 506 #define TSK_NONE 0 /* 該当するタスクがない */ 507 508 #define TPRI_SELF 0 /* 自タスクのベース優先度 */ 509 #define TPRI_INI 0 /* タスクの起動時優先度 */ 510 511 #define TIPM_ENAALL 0 /* 割込み優先度マスク全解除 */ 512 513 /* 514 * 構成定数とマクロ 515 */ 516 517 /* 518 * サポートする機能 545 519 */ 546 520 #ifdef TOPPERS_TARGET_SUPPORT_DIS_INT 547 #define TOPPERS_SUPPORT_DIS_INT /* dis_int ªT|[g³êÄ¢é*/521 #define TOPPERS_SUPPORT_DIS_INT /* dis_intがサポートされている */ 548 522 #endif /* TOPPERS_TARGET_SUPPORT_DIS_INT */ 549 523 550 524 #ifdef TOPPERS_TARGET_SUPPORT_ENA_INT 551 #define TOPPERS_SUPPORT_ENA_INT /* ena_int ªT|[g³êÄ¢é*/525 #define TOPPERS_SUPPORT_ENA_INT /* ena_intがサポートされている */ 552 526 #endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */ 553 527 554 528 #ifdef TOPPERS_TARGET_SUPPORT_GET_UTM 555 #define TOPPERS_SUPPORT_GET_UTM /* get_utm ªT|[g³êÄ¢é*/529 #define TOPPERS_SUPPORT_GET_UTM /* get_utmがサポートされている */ 556 530 #endif /* TOPPERS_TARGET_SUPPORT_GET_UTM */ 557 531 558 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* ®I¶¬@\g£ */ 559 560 /* 561 * DæxÌÍÍ 562 */ 563 #define TMIN_TPRI 1 /* ^XNDæxÌŬliÅlj*/ 564 #define TMAX_TPRI 16 /* ^XNDæxÌÅåliÅálj*/ 565 #define TMIN_DPRI 1 /* f[^DæxÌŬliÅlj*/ 566 #define TMAX_DPRI 16 /* f[^DæxÌÅåliÅálj*/ 567 #define TMIN_MPRI 1 /* bZ[WDæxÌŬliÅlj*/ 568 #define TMAX_MPRI 16 /* bZ[WDæxÌÅåliÅálj*/ 569 #define TMIN_ISRPRI 1 /* ÝT[rX[`DæxÌŬl */ 570 #define TMAX_ISRPRI 16 /* ÝT[rX[`DæxÌÅål */ 571 572 /* 573 * o[Wîñ 574 */ 575 #define TKERNEL_MAKER UINT_C(0x0118) /* J[lÌ[J[R[h */ 576 #define TKERNEL_PRID UINT_C(0x0007) /* J[l̯ÊÔ */ 577 #define TKERNEL_SPVER UINT_C(0xf517) /* J[ldlÌo[WÔ */ 578 #define TKERNEL_PRVER UINT_C(0x1092) /* J[lÌo[WÔ */ 579 580 /* 581 * L 582 [COñÌÅål 583 */ 584 #define TMAX_ACTCNT UINT_C(1) /* N®vL 585 [COÌÅål */ 586 #define TMAX_WUPCNT UINT_C(1) /* N°vL 587 [COÌÅål */ 588 589 /* 590 * rbgp^[Ìrbg 591 */ 592 #ifndef TBIT_TEXPTN /* ^XNáOvöÌrbg */ 532 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* 動的生成機能拡張 */ 533 534 /* 535 * 優先度の範囲 536 */ 537 #define TMIN_TPRI 1 /* タスク優先度の最小値(最高値)*/ 538 #define TMAX_TPRI 16 /* タスク優先度の最大値(最低値)*/ 539 #define TMIN_DPRI 1 /* データ優先度の最小値(最高値)*/ 540 #define TMAX_DPRI 16 /* データ優先度の最大値(最低値)*/ 541 #define TMIN_MPRI 1 /* メッセージ優先度の最小値(最高値)*/ 542 #define TMAX_MPRI 16 /* メッセージ優先度の最大値(最低値)*/ 543 #define TMIN_ISRPRI 1 /* 割込みサービスルーチン優先度の最小値 */ 544 #define TMAX_ISRPRI 16 /* 割込みサービスルーチン優先度の最大値 */ 545 546 /* 547 * バージョン情報 548 */ 549 #define TKERNEL_MAKER UINT_C(0x0118) /* カーネルのメーカーコード */ 550 #define TKERNEL_PRID UINT_C(0x0007) /* カーネルの識別番号 */ 551 #define TKERNEL_SPVER UINT_C(0xf517) /* カーネル仕様のバージョン番号 */ 552 #define TKERNEL_PRVER UINT_C(0x1092) /* カーネルのバージョン番号 */ 553 554 /* 555 * キューイング回数の最大値 556 */ 557 #define TMAX_ACTCNT UINT_C(1) /* 起動要求キューイング数の最大値 */ 558 #define TMAX_WUPCNT UINT_C(1) /* 起床要求キューイング数の最大値 */ 559 560 /* 561 * ビットパターンのビット数 562 */ 563 #ifndef TBIT_TEXPTN /* タスク例外要因のビット数 */ 593 564 #define TBIT_TEXPTN (sizeof(TEXPTN) * CHAR_BIT) 594 565 #endif /* TBIT_TEXPTN */ 595 566 596 #ifndef TBIT_FLGPTN /* CxgtOÌrbg*/567 #ifndef TBIT_FLGPTN /* イベントフラグのビット数 */ 597 568 #define TBIT_FLGPTN (sizeof(FLGPTN) * CHAR_BIT) 598 569 #endif /* TBIT_FLGPTN */ 599 570 600 571 /* 601 * ÌæmÛ̽ßÌ}N572 * メモリ領域確保のためのマクロ 602 573 * 603 * ȺÌTOPPERS_COUNT_SZÆTOPPERS_ROUND_SZÌè`ÍCunitª2ÌÐæÅ604 * é±Æð¼èµÄ¢éD574 * 以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ 575 * ることを仮定している. 605 576 */ 606 577 #ifndef TOPPERS_COUNT_SZ … … 629 600 630 601 /* 631 * »Ì¼Ì\¬è632 */ 633 #define TMAX_MAXSEM UINT_MAX /* Z}tHÌÅå¹ÌÅål*/602 * その他の構成定数 603 */ 604 #define TMAX_MAXSEM UINT_MAX /* セマフォの最大資源数の最大値 */ 634 605 635 606 #ifdef __cplusplus -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/log_output.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * VXeOÌtH[}bgoÍ43 * システムログのフォーマット出力 48 44 */ 49 45 … … 58 54 59 55 /* 60 * ¶ñ®`oÍ56 * 文字列整形出力 61 57 * 62 * format Åwè³êétH[}bgLqÆp_argsÅwè³êéøñ©çì63 * ¬µ½bZ[WðC1¶oÍÖputcðp¢ÄoÍ·éD58 * formatで指定されるフォーマット記述とp_argsで指定される引数列から作 59 * 成したメッセージを,1文字出力関数putcを用いて出力する. 64 60 */ 65 61 extern void syslog_printf(const char *format, const intptr_t *p_args, … … 67 63 68 64 /* 69 * OîñÌoÍ65 * ログ情報の出力 70 66 * 71 * p_syslog Åwè³êéOîñð¶ñÉ®`µC1¶oÍÖputcðp72 * ¢ÄoÍ·éD67 * p_syslogで指定されるログ情報を文字列に整形し,1文字出力関数putcを用 68 * いて出力する. 73 69 */ 74 70 extern void syslog_print(const SYSLOG *p_syslog, void (*putc)(char)) throw(); 75 71 76 72 /* 77 * Oîñr¸bZ[W¶ñ73 * ログ情報喪失メッセージ文字列 78 74 * 79 * lostlog ÂÌOîñª¸íê½|ÌbZ[WðC1¶oÍÖputcð80 * p¢ÄoÍ·éD75 * lostlog個のログ情報が失われた旨のメッセージを,1文字出力関数putcを 76 * 用いて出力する. 81 77 */ 82 78 extern void syslog_lostmsg(uint_t lostlog, void (*putc)(char)) throw(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/queue.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * L 48 [ìCu 49 * 50 * ±ÌL 51 [ìCuÅÍCL 52 [wb_ðÜÞO\¢Ì_u 53 * NL 54 [ðµ¤DïÌIÉÍCL 55 [wb_ÌGgÍL 56 [Ì 57 * æªÌGgCOGgÍL 58 [ÌöÌGgÆ·éDܽCL 59 * 60 [ÌæªÌGgÌOGgÆCL 61 [ÌöÌGgÌG 62 * gÍCL 63 [wb_Æ·éDóÌL 64 [ÍCGgCOGgÆ 65 * ੪©gðw·L 66 [wb_Å çí·D 43 * キュー操作ライブラリ 44 * 45 * このキュー操作ライブラリでは,キューヘッダを含むリング構造のダブル 46 * リンクキューを扱う.具体的には,キューヘッダの次エントリはキューの 47 * 先頭のエントリ,前エントリはキューの末尾のエントリとする.また,キ 48 * ューの先頭のエントリの前エントリと,キューの末尾のエントリの次エン 49 * トリは,キューヘッダとする.空のキューは,次エントリ,前エントリと 50 * も自分自身を指すキューヘッダであらわす. 67 51 */ 68 52 … … 75 59 76 60 /* 77 * L 78 [Ìf[^\¢Ìè` 61 * キューのデータ構造の定義 79 62 */ 80 63 typedef struct queue { 81 struct queue *p_next; /* GgÖÌ|C^*/82 struct queue *p_prev; /* OGgÖÌ|C^*/64 struct queue *p_next; /* 次エントリへのポインタ */ 65 struct queue *p_prev; /* 前エントリへのポインタ */ 83 66 } QUEUE; 84 67 85 68 /* 86 * L 87 [Ìú» 88 * 89 * p_queueÉÍL 90 [wb_ðwè·éD 69 * キューの初期化 70 * 71 * p_queueにはキューヘッダを指定する. 91 72 */ 92 73 Inline void … … 98 79 99 80 /* 100 * L 101 [ÌOGgÖÌ}ü 102 * 103 * p_queueÌOÉp_entryð}ü·éDp_queueÉL 104 [wb_ðwèµ½ê 105 * ÉÍCL 106 [ÌöÉp_entryð}ü·é±ÆÉÈéD 81 * キューの前エントリへの挿入 82 * 83 * p_queueの前にp_entryを挿入する.p_queueにキューヘッダを指定した場 84 * 合には,キューの末尾にp_entryを挿入することになる. 107 85 */ 108 86 Inline void … … 116 94 117 95 /* 118 * L 119 [ÌGgÖÌ}ü 120 * 121 * p_queueÌÉp_entryð}ü·éDp_queueÉL 122 [wb_ðwèµ½ê 123 * ÉÍCL 124 [ÌæªÉp_entryð}ü·é±ÆÉÈéD 96 * キューの次エントリへの挿入 97 * 98 * p_queueの次にp_entryを挿入する.p_queueにキューヘッダを指定した場 99 * 合には,キューの先頭にp_entryを挿入することになる. 125 100 */ 126 101 Inline void … … 134 109 135 110 /* 136 * GgÌí 137 * 138 * p_entryðL 139 [©çí·éD 111 * エントリの削除 112 * 113 * p_entryをキューから削除する. 140 114 */ 141 115 Inline void … … 147 121 148 122 /* 149 * L 150 [Ìñ 151 * 152 * øp_topðL 153 [Æ·éGgð檩çñ·éB 154 * ÅÌÄoµÅÍAp_entryÉNULLðn·BÔlÍp_topÌÌGg(ÂÜèæª)Å éB 155 * ñÈ~ÍOñɾ½Ggðp_entryÉn·BÔlÍp_entryÌÌGgÆÈéB 156 * p_entryÌÌGgªp_top¾Á½Æ«ANULLðÔlƵÄAL 157 [ÌI[ð çí·B 158 * p_topÌNULL`FbNâp_entryÌëØÍsÁĢȢBÄoµ¤ÌÓCÅs¤±ÆB 159 * ܽA¾¤ÜÅàÈ¢ªAXbhZ[tÉÍÈè¦È¢Bñ[vÍr¼Í 160 * Äoµ¤ÌÓCÅs¤±ÆB 123 * キューの列挙 124 * 125 * 引数p_topをキューとするエントリを先頭から列挙する。 126 * 最初の呼出しでは、p_entryにNULLを渡す。返値はp_topの次のエントリ(つまり先頭)である。 127 * 次回以降は前回に得たエントリをp_entryに渡す。返値はp_entryの次のエントリとなる。 128 * p_entryの次のエントリがp_topだったとき、NULLを返値として、キューの終端をあらわす。 129 * p_topのNULLチェックやp_entryの妥当性検証は行っていない。呼出し側の責任で行うこと。 130 * また、言うまでもないが、スレッドセーフにはなりえない。列挙ループ中は排他は 131 * 呼出し側の責任で行うこと。 161 132 */ 162 133 Inline QUEUE * … … 176 147 177 148 /* 178 * L 179 [ÌGgÌæoµ 180 * 181 * p_queueÌGgðL 182 [©çíµCíµ½GgðÔ·D 183 * p_queueÉL 184 [wb_ðwèµ½êÉÍCL 185 [ÌæªÌGgð 186 * æèo·±ÆÉÈéDp_queueÉóÌL 187 [ðwèµÄÄÑoµÄÍÈç 188 * È¢D 149 * キューの次エントリの取出し 150 * 151 * p_queueの次エントリをキューから削除し,削除したエントリを返す. 152 * p_queueにキューヘッダを指定した場合には,キューの先頭のエントリを 153 * 取り出すことになる.p_queueに空のキューを指定して呼び出してはなら 154 * ない. 189 155 */ 190 156 Inline QUEUE * … … 201 167 202 168 /* 203 * L 204 [ÌGgÌ|C^ðæ¾ 205 * 206 * p_queue ÌGgðÔ·Dp_queue ÉL 207 [wb_ðwèµ½êÉÍC 208 * L 209 [ÌæªÌGgðæèo·±ÆÉÈéDp_queue ÉóÌL 210 [ð 211 * wèµÄÄÑoµÄÍÈçÈ¢D 169 * キューの次エントリのポインタを取得 170 * 171 * p_queue の次エントリを返す.p_queue にキューヘッダを指定した場合には, 172 * キューの先頭のエントリを取り出すことになる.p_queue に空のキューを 173 * 指定して呼び出してはならない. 212 174 */ 213 175 Inline QUEUE * … … 220 182 221 183 /* 222 * L 223 [ªó©Ç¤©Ì`FbN 224 * 225 * p_queueÉÍL 226 [wb_ðwè·éD 184 * キューが空かどうかのチェック 185 * 186 * p_queueにはキューヘッダを指定する. 227 187 */ 228 188 Inline bool_t -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/sil.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * VXeC^tF[XC48 * 49 * VXeC^tF[XCÌT[rXR[Ìè`Eé¾Æ}NÈ50 * ÇÌè`ðÜÞwb_t@CD51 * 52 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é53 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨±ÆÅC}Nè`ÈOÌLqð54 * ±ÆªÅ«éD55 * 56 * ±Ìt@CðCN[h·éOÉCN[hµÄ¨×«t@C57 * ÍÈ¢D43 * システムインタフェースレイヤ 44 * 45 * システムインタフェースレイヤのサービスコールの定義・宣言とマクロな 46 * どの定義を含むヘッダファイル. 47 * 48 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 49 * は,TOPPERS_MACRO_ONLYを定義しておくことで,マクロ定義以外の記述を 50 * 除くことができる. 51 * 52 * このファイルをインクルードする前にインクルードしておくべきファイル 53 * はない. 58 54 */ 59 55 … … 66 62 67 63 /* 68 * TOPPERS ¤ÊÌf[^^EèE}N64 * TOPPERS共通のデータ型・定数・マクロ 69 65 */ 70 66 #include <t_stddef.h> 71 67 72 68 /* 73 * ^[Qbg˶69 * ターゲット依存部 74 70 */ 75 71 #include "target_sil.h" … … 78 74 79 75 /* 80 * SÝbNóÔ̧ä81 * 82 * SIL_PRE_LOC CSIL_LOC_INT()CSIL_UNL_INT()ÍC^[Qbg˶Åp83 * Ó·éDftHgÌè`ÍpӵĢȢD84 */ 85 86 /* 87 * ÷ÔÒ¿76 * 全割込みロック状態の制御 77 * 78 * SIL_PRE_LOC,SIL_LOC_INT(),SIL_UNL_INT()は,ターゲット依存部で用 79 * 意する.デフォルトの定義は用意していない. 80 */ 81 82 /* 83 * 微少時間待ち 88 84 */ 89 85 extern void sil_dly_nse(ulong_t dlytim) throw(); 90 86 91 87 /* 92 * GfBA̽]88 * エンディアンの反転 93 89 */ 94 90 #ifndef TOPPERS_SIL_REV_ENDIAN_UINT16 … … 104 100 105 101 /* 106 * óÔANZXÖ102 * メモリ空間アクセス関数 107 103 */ 108 104 #ifndef TOPPERS_OMIT_SIL_ACCESS 109 105 110 106 /* 111 * 8 rbgPÊÌÇoµ^Ý107 * 8ビット単位の読出し/書込み 112 108 */ 113 109 #ifdef UINT8_MAX … … 131 127 132 128 /* 133 * 16 rbgPÊÌÇoµ^Ý129 * 16ビット単位の読出し/書込み 134 130 */ 135 131 … … 149 145 } 150 146 151 #ifdef SIL_ENDIAN_BIG /* rbOGfBAvZbT*/147 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 152 148 153 149 #define sil_reh_bem(mem) sil_reh_mem(mem) … … 176 172 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */ 177 173 #else /* SIL_ENDIAN_BIG */ 178 #ifdef SIL_ENDIAN_LITTLE /* gGfBAvZbT*/174 #ifdef SIL_ENDIAN_LITTLE /* リトルエンディアンプロセッサ */ 179 175 180 176 #define sil_reh_lem(mem) sil_reh_mem(mem) … … 210 206 211 207 /* 212 * 32 rbgPÊÌÇoµ^Ý208 * 32ビット単位の読出し/書込み 213 209 */ 214 210 … … 228 224 } 229 225 230 #ifdef SIL_ENDIAN_BIG /* rbOGfBAvZbT*/226 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 231 227 232 228 #define sil_rew_bem(mem) sil_rew_mem(mem) … … 254 250 255 251 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */ 256 #else /* SIL_ENDIAN_BIG */ /* gGfBAvZbT*/252 #else /* SIL_ENDIAN_BIG */ /* リトルエンディアンプロセッサ */ 257 253 258 254 #define sil_rew_lem(mem) sil_rew_mem(mem) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/t_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * TOPPERS ¤Êwb_t@C48 * 49 * TOPPERS ÖAÌ·×ÄÌ\[Xt@CÅCN[h·×«wb_t@C50 * DeíÌJ[lâ\tgEFAiŤÊÉp¢é±ÆðzèµÄ¢51 * éDTOPPERSÌeíÌJ[lâ\tgEFAiŤÊÉp¢éf[^^C52 * èC}NÌè`ÈÇðÜÞD53 * 54 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é55 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨D±êÉæèC}Nè`ÈOð56 * æ¤ÉÈÁÄ¢éD57 * 58 * ±Ìt@CðCN[h·éOÉCN[hµÄ¨×«t@C59 * ÍÈ¢D43 * TOPPERS共通ヘッダファイル 44 * 45 * TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ 46 * ル.各種のカーネルやソフトウェア部品で共通に用いることを想定してい 47 * る.TOPPERSの各種のカーネルやソフトウェア部品で共通に用いるデータ型, 48 * 定数,マクロの定義などを含む. 49 * 50 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 51 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 52 * 除くようになっている. 53 * 54 * このファイルをインクルードする前にインクルードしておくべきファイル 55 * はない. 60 56 */ 61 57 … … 68 64 69 65 /* 70 * ^[Qbg˶66 * ターゲット依存部 71 67 */ 72 68 #include "target_stddef.h" 73 69 74 70 /* 75 * C ¾ê/EC++Åthrow()Éηé½ßÌè`71 * C言語/EC++でthrow()に対処するための定義 76 72 */ 77 73 #if !defined(__cplusplus) || defined(__embedded_cplusplus) … … 82 78 83 79 /* 84 * ^[Qbg˶Ìf[^^Ì}NÌftHgè`80 * ターゲット依存のデータ型のマクロのデフォルト定義 85 81 */ 86 82 #ifndef TOPPERS_bool 87 #define TOPPERS_bool int /* u[^*/83 #define TOPPERS_bool int /* ブール型 */ 88 84 #endif /* TOPPERS_bool */ 89 85 90 86 #ifndef TOPPERS_size 91 #define TOPPERS_size uintptr_t /* TCY^*/87 #define TOPPERS_size uintptr_t /* サイズ型 */ 92 88 #endif /* TOPPERS_size */ 93 89 … … 95 91 struct TOPPERS_dummy_t { int TOPPERS_dummy_field; }; 96 92 typedef void (*TOPPERS_fp_t)(struct TOPPERS_dummy_t); 97 #define TOPPERS_fp TOPPERS_fp_t /* vOÌN®Ôn*/93 #define TOPPERS_fp TOPPERS_fp_t /* プログラムの起動番地 */ 98 94 #endif /* TOPPERS_fp */ 99 95 100 96 /* 101 * ¤Êf[^^102 */ 103 typedef TOPPERS_bool bool_t; /* ^Ul*/104 105 typedef signed int int_t; /* ©RÈTCYÌt«®*/106 typedef unsigned int uint_t; /* ©RÈTCY̳µ®*/107 108 typedef signed long long_t; /* ·ßÌTCYÌt«®*/109 typedef unsigned long ulong_t; /* ·ßÌTCY̳µ®*/110 111 typedef int_t FN; /* @\R[h*/112 typedef int_t ER; /* G[R[h*/113 typedef int_t ID; /* IuWFNgÌIDÔ*/114 typedef uint_t ATR; /* IuWFNgÌ®«*/115 typedef uint_t STAT; /* IuWFNgÌóÔ*/116 typedef uint_t MODE; /* T[rXR[Ì®ì[h*/117 typedef int_t PRI; /* Dæx*/118 typedef TOPPERS_size SIZE; /* ÌæÌTCY*/119 120 typedef int_t TMO; /* ^CAEgwè*/121 typedef uint_t RELTIM; /* ÎÔ*/122 typedef ulong_t SYSTIM; /* VXe*/123 typedef ulong_t SYSUTM; /* «\]¿pVXe*/124 125 typedef TOPPERS_fp FP; /* vOÌN®Ôn*/126 127 typedef int_t ER_BOOL; /* G[R[hܽÍ^Ul*/128 typedef int_t ER_ID; /* G[R[hܽÍIDÔ*/129 typedef int_t ER_UINT; /* G[R[hܽͳµ®*/130 131 typedef uintptr_t MB_T; /* ÇÌæðmÛ·é½ßÌf[^^*/132 133 typedef uint32_t ACPTN; /* ANZXÂp^[*/134 typedef struct acvct { /* ANZXÂxN^*/135 ACPTN acptn1; /* Êíì1ÌANZXÂp^[*/136 ACPTN acptn2; /* Êíì2ÌANZXÂp^[*/137 ACPTN acptn3; /* ÇìÌANZXÂp^[*/138 ACPTN acptn4; /* QÆìÌANZXÂp^[*/97 * 共通データ型 98 */ 99 typedef TOPPERS_bool bool_t; /* 真偽値 */ 100 101 typedef signed int int_t; /* 自然なサイズの符号付き整数 */ 102 typedef unsigned int uint_t; /* 自然なサイズの符号無し整数 */ 103 104 typedef signed long long_t; /* 長めのサイズの符号付き整数 */ 105 typedef unsigned long ulong_t; /* 長めのサイズの符号無し整数 */ 106 107 typedef int_t FN; /* 機能コード */ 108 typedef int_t ER; /* エラーコード */ 109 typedef int_t ID; /* オブジェクトのID番号 */ 110 typedef uint_t ATR; /* オブジェクトの属性 */ 111 typedef uint_t STAT; /* オブジェクトの状態 */ 112 typedef uint_t MODE; /* サービスコールの動作モード */ 113 typedef int_t PRI; /* 優先度 */ 114 typedef TOPPERS_size SIZE; /* メモリ領域のサイズ */ 115 116 typedef int_t TMO; /* タイムアウト指定 */ 117 typedef uint_t RELTIM; /* 相対時間 */ 118 typedef ulong_t SYSTIM; /* システム時刻 */ 119 typedef ulong_t SYSUTM; /* 性能評価用システム時刻 */ 120 121 typedef TOPPERS_fp FP; /* プログラムの起動番地 */ 122 123 typedef int_t ER_BOOL; /* エラーコードまたは真偽値 */ 124 typedef int_t ER_ID; /* エラーコードまたはID番号 */ 125 typedef int_t ER_UINT; /* エラーコードまたは符号無し整数 */ 126 127 typedef uintptr_t MB_T; /* 管理領域を確保するためのデータ型 */ 128 129 typedef uint32_t ACPTN; /* アクセス許可パターン */ 130 typedef struct acvct { /* アクセス許可ベクタ */ 131 ACPTN acptn1; /* 通常操作1のアクセス許可パターン */ 132 ACPTN acptn2; /* 通常操作2のアクセス許可パターン */ 133 ACPTN acptn3; /* 管理操作のアクセス許可パターン */ 134 ACPTN acptn4; /* 参照操作のアクセス許可パターン */ 139 135 } ACVCT; 140 136 … … 142 138 143 139 /* 144 * ®èðìé}N140 * 整数定数を作るマクロ 145 141 */ 146 142 #ifndef UINT_C 147 #define UINT_C(val) (val ## U) /* uint_t ^Ìèðìé}N*/143 #define UINT_C(val) (val ## U) /* uint_t型の定数を作るマクロ */ 148 144 #endif /* UINT_C */ 149 145 150 146 #ifndef ULONG_C 151 #define ULONG_C(val) (val ## UL) /* ulong_t ^Ìèðìé}N*/147 #define ULONG_C(val) (val ## UL) /* ulong_t型の定数を作るマクロ */ 152 148 #endif /* ULONG_C */ 153 149 154 150 /* 155 * êÊè151 * 一般定数 156 152 */ 157 153 #ifndef NULL 158 #define NULL 0 /* ³ø|C^*/154 #define NULL 0 /* 無効ポインタ */ 159 155 #endif /* NULL */ 160 156 161 157 #ifndef true 162 #define true 1 /* ^*/158 #define true 1 /* 真 */ 163 159 #endif /* true */ 164 160 165 161 #ifndef false 166 #define false 0 /* U*/162 #define false 0 /* 偽 */ 167 163 #endif /* false */ 168 164 169 #define E_OK 0 /* ³íI¹ */ 170 171 /* 172 * CG[R[h 173 */ 174 #define E_SYS (-5) /* VXeG[ */ 175 #define E_NOSPT (-9) /* ¢T|[g@\ */ 176 #define E_RSFN (-10) /* \ñ@\R[h */ 177 #define E_RSATR (-11) /* \ñ®« */ 178 #define E_PAR (-17) /* p[^G[ */ 179 #define E_ID (-18) /* s³IDÔ */ 180 #define E_CTX (-25) /* ReLXgG[ */ 181 #define E_MACV (-26) /* ANZXá½ */ 182 #define E_OACV (-27) /* IuWFNgANZXá½ */ 183 #define E_ILUSE (-28) /* T[rXR[s³gp */ 184 #define E_NOMEM (-33) /* s« */ 185 #define E_NOID (-34) /* IDÔs« */ 186 #define E_NORES (-35) /* ¹s« */ 187 #define E_OBJ (-41) /* IuWFNgóÔG[ */ 188 #define E_NOEXS (-42) /* IuWFNg¢¶¬ */ 189 #define E_QOVR (-43) /* L 190 [COI[o[t[ */ 191 #define E_RLWAI (-49) /* Ò¿óÔ̧ð */ 192 #define E_TMOUT (-50) /* |[O¸sܽÍ^CAEg */ 193 #define E_DLT (-51) /* Ò¿IuWFNgÌí */ 194 #define E_CLS (-52) /* Ò¿IuWFNgÌóÔÏ» */ 195 #define E_WBLK (-57) /* mubLOót¯ */ 196 #define E_BOVR (-58) /* obt@I[o[t[ */ 197 198 /* 199 * IuWFNg®« 200 */ 201 #define TA_NULL UINT_C(0) /* IuWFNg®«ðwèµÈ¢ */ 202 203 /* 204 * ^CAEgwè 205 */ 206 #define TMO_POL 0 /* |[O */ 207 #define TMO_FEVR (-1) /* ivÒ¿ */ 208 #define TMO_NBLK (-2) /* mubLO */ 209 210 /* 211 * ANZXÂp^[ 212 */ 213 #define TACP_KERNEL (0U) /* J[lhC¾¯ÉANZXð */ 214 #define TACP_SHARED (~0U) /* ·×ÄÌhC©çANZXð */ 215 216 /* 217 * ^ÉÖ·éîñðæèo·½ßÌ}N 218 * 219 * ȺÌALIGN_TYPEÌè`ÍCACgÌPʪ2ÌÐæÅ é±Æð 220 * ¼èµÄ¢éD 165 #define E_OK 0 /* 正常終了 */ 166 167 /* 168 * メインエラーコード 169 */ 170 #define E_SYS (-5) /* システムエラー */ 171 #define E_NOSPT (-9) /* 未サポート機能 */ 172 #define E_RSFN (-10) /* 予約機能コード */ 173 #define E_RSATR (-11) /* 予約属性 */ 174 #define E_PAR (-17) /* パラメータエラー */ 175 #define E_ID (-18) /* 不正ID番号 */ 176 #define E_CTX (-25) /* コンテキストエラー */ 177 #define E_MACV (-26) /* メモリアクセス違反 */ 178 #define E_OACV (-27) /* オブジェクトアクセス違反 */ 179 #define E_ILUSE (-28) /* サービスコール不正使用 */ 180 #define E_NOMEM (-33) /* メモリ不足 */ 181 #define E_NOID (-34) /* ID番号不足 */ 182 #define E_NORES (-35) /* 資源不足 */ 183 #define E_OBJ (-41) /* オブジェクト状態エラー */ 184 #define E_NOEXS (-42) /* オブジェクト未生成 */ 185 #define E_QOVR (-43) /* キューイングオーバーフロー */ 186 #define E_RLWAI (-49) /* 待ち状態の強制解除 */ 187 #define E_TMOUT (-50) /* ポーリング失敗またはタイムアウト */ 188 #define E_DLT (-51) /* 待ちオブジェクトの削除 */ 189 #define E_CLS (-52) /* 待ちオブジェクトの状態変化 */ 190 #define E_WBLK (-57) /* ノンブロッキング受付け */ 191 #define E_BOVR (-58) /* バッファオーバーフロー */ 192 193 /* 194 * オブジェクト属性 195 */ 196 #define TA_NULL UINT_C(0) /* オブジェクト属性を指定しない */ 197 198 /* 199 * タイムアウト指定 200 */ 201 #define TMO_POL 0 /* ポーリング */ 202 #define TMO_FEVR (-1) /* 永久待ち */ 203 #define TMO_NBLK (-2) /* ノンブロッキング */ 204 205 /* 206 * アクセス許可パターン 207 */ 208 #define TACP_KERNEL (0U) /* カーネルドメインだけにアクセスを許可 */ 209 #define TACP_SHARED (~0U) /* すべてのドメインからアクセスを許可 */ 210 211 /* 212 * 型に関する情報を取り出すためのマクロ 213 * 214 * 以下のALIGN_TYPEの定義は,アラインメントの単位が2の巾乗であることを 215 * 仮定している. 221 216 */ 222 217 #ifndef offsetof … … 228 223 #endif /* alignof */ 229 224 230 #ifndef ALIGN_TYPE /* ACgÌ`FbN*/225 #ifndef ALIGN_TYPE /* アラインメントのチェック */ 231 226 #define ALIGN_TYPE(addr, type) \ 232 227 ((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U) … … 234 229 235 230 /* 236 * assert }N231 * assertマクロ 237 232 */ 238 233 #undef assert … … 249 244 250 245 /* 251 * G[R[h¶¬Eªð}N252 * 253 * ȺÌ}Nè`ÍCt«®ª2ÌâÅ\»³êĨèCEVtg254 * Zqi>>jªZpVtg³êé±Æð¼èµÄ¢éD»¤ÅÈ¢JÂ255 * «ÅÍCtarget_stddef.hűêçÌè`ð㫵ȯêÎÈçÈ¢D256 * 257 * MERCD }NÌè`ÍCCG[R[hªÅ é±Æð¼èµÄ¢éD258 * »¤ÅÈ¢êC2ÂÌè`ªêvµÈÈéD246 * エラーコード生成・分解マクロ 247 * 248 * 以下のマクロ定義は,符号付き整数が2の補数で表現されており,右シフト 249 * 演算子(>>)が算術シフトされることを仮定している.そうでない開発環 250 * 境では,target_stddef.hでこれらの定義を上書きしなければならない. 251 * 252 * MERCDマクロの定義は,メインエラーコードが負であることを仮定している. 253 * そうでない場合,2つの定義が一致しなくなる. 259 254 */ 260 255 #ifndef ERCD … … 276 271 277 272 /* 278 * ANZXÂp^[¶¬}N279 */ 280 #define TACP(domid) (1U << ((domid) - 1)) /* domid ¾¯ÉANZXðÂ*/281 282 /* 283 * ÎÔiRELTIMjÉwèÅ«éÅål273 * アクセス許可パターン生成マクロ 274 */ 275 #define TACP(domid) (1U << ((domid) - 1)) /* domidだけにアクセスを許可 */ 276 277 /* 278 * 相対時間(RELTIM)に指定できる最大値 284 279 */ 285 280 #if UINT_MAX < LONG_MAX -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/t_stdlib.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * î{IÈCuÖ43 * 基本的なライブラリ関数 48 44 */ 49 45 … … 56 52 57 53 /* 58 * G[bZ[W¶ñðÔ·Ö54 * エラーメッセージ文字列を返す関数 59 55 * 60 * ercd Åwè³ê½G[R[hÌCG[R[h̼ÌiE_PARC61 * E_OBJ ÈÇj̶ñðÔ·ÖD56 * ercdで指定されたエラーコードのメインエラーコードの名称(E_PAR, 57 * E_OBJなど)の文字列を返す関数. 62 58 */ 63 59 extern const char *itron_strerror(ER ercd) throw(); 64 60 65 61 /* 66 * G[bZ[WÌOoÍ62 * エラーメッセージのログ出力 67 63 * 68 * T[rXR[ªG[ðÔµ½êÉC»Ìt@C¼CsÔCC69 * G[R[hð\¦·é½ßÌÖD64 * サービスコールがエラーを返した場合に,そのファイル名,行番号,メイ 65 * ンエラーコード等を表示するための関数. 70 66 */ 71 67 extern void t_perror(uint_t prio, const char *file, int_t line, -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/t_syslog.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VXeOoÍðs¤½ßÌè`49 * 50 * VXeOT[rXÍCVXeÌOîñðoÍ·é½ßÌT[rX51 * Å éDJ[l©çÌOîñÌoÍÉàp¢é½ßCàÅÒ¿óÔ52 * ÉÍ¢é±ÆÍÈ¢D53 * 54 * OîñÍCJ[làÌOobt@É«Þ©Cáx̶o55 * ÍÖðp¢ÄoÍ·éDÇ¿çðg¤©ÍCg£T[rXR[ÅØè56 * ·¦é±ÆªÅ«éD57 * 58 * Oobt@ÌæªI[ot[µ½êÉÍCâOîñðÁµÄã59 * «·éD60 * 61 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é62 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨±ÆÅC}Nè`ÈOÌLqð63 * ±ÆªÅ«éD64 * 65 * ±Ìt@CðCN[h·éOÉCt_stddef.hðCN[hµÄ¨66 * ±ÆªKvÅ éD44 * システムログ出力を行うための定義 45 * 46 * システムログサービスは,システムのログ情報を出力するためのサービス 47 * である.カーネルからのログ情報の出力にも用いるため,内部で待ち状態 48 * にはいることはない. 49 * 50 * ログ情報は,カーネル内のログバッファに書き込むか,低レベルの文字出 51 * 力関数を用いて出力する.どちらを使うかは,拡張サービスコールで切り 52 * 換えることができる. 53 * 54 * ログバッファ領域がオーバフローした場合には,古いログ情報を消して上 55 * 書きする. 56 * 57 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 58 * は,TOPPERS_MACRO_ONLYを定義しておくことで,マクロ定義以外の記述を 59 * 除くことができる. 60 * 61 * このファイルをインクルードする前に,t_stddef.hをインクルードしてお 62 * くことが必要である. 67 63 */ 68 64 … … 75 71 76 72 /* 77 * OîñÌíÊÌè`78 */ 79 #define LOG_TYPE_COMMENT UINT_C(0x01) /* Rg*/80 #define LOG_TYPE_ASSERT UINT_C(0x02) /* AT[V̸s*/81 82 #define LOG_TYPE_INH UINT_C(0x11) /* Ýnh*/83 #define LOG_TYPE_ISR UINT_C(0x12) /* ÝT[rX[`*/84 #define LOG_TYPE_CYC UINT_C(0x13) /* üúnh*/85 #define LOG_TYPE_ALM UINT_C(0x14) /* A[nh*/86 #define LOG_TYPE_OVR UINT_C(0x15) /* I[onh*/87 #define LOG_TYPE_EXC UINT_C(0x16) /* CPU áOnh*/88 #define LOG_TYPE_TEX UINT_C(0x17) /* ^XNáO[`*/89 #define LOG_TYPE_TSKSTAT UINT_C(0x18) /* ^XNóÔÏ»*/90 #define LOG_TYPE_DSP UINT_C(0x19) /* fBXpb`*/91 #define LOG_TYPE_SVC UINT_C(0x1a) /* T[rXR[*/92 93 #define LOG_ENTER UINT_C(0x00) /* üû^Jn*/94 #define LOG_LEAVE UINT_C(0x80) /* oû^I¹*/95 96 /* 97 * OîñÌdvxÌè`98 */ 99 #define LOG_EMERG UINT_C(0) /* Vbg_EÉl·éG[*/73 * ログ情報の種別の定義 74 */ 75 #define LOG_TYPE_COMMENT UINT_C(0x01) /* コメント */ 76 #define LOG_TYPE_ASSERT UINT_C(0x02) /* アサーションの失敗 */ 77 78 #define LOG_TYPE_INH UINT_C(0x11) /* 割込みハンドラ */ 79 #define LOG_TYPE_ISR UINT_C(0x12) /* 割込みサービスルーチン */ 80 #define LOG_TYPE_CYC UINT_C(0x13) /* 周期ハンドラ */ 81 #define LOG_TYPE_ALM UINT_C(0x14) /* アラームハンドラ */ 82 #define LOG_TYPE_OVR UINT_C(0x15) /* オーバランハンドラ */ 83 #define LOG_TYPE_EXC UINT_C(0x16) /* CPU例外ハンドラ */ 84 #define LOG_TYPE_TEX UINT_C(0x17) /* タスク例外処理ルーチン */ 85 #define LOG_TYPE_TSKSTAT UINT_C(0x18) /* タスク状態変化 */ 86 #define LOG_TYPE_DSP UINT_C(0x19) /* ディスパッチャ */ 87 #define LOG_TYPE_SVC UINT_C(0x1a) /* サービスコール */ 88 89 #define LOG_ENTER UINT_C(0x00) /* 入口/開始 */ 90 #define LOG_LEAVE UINT_C(0x80) /* 出口/終了 */ 91 92 /* 93 * ログ情報の重要度の定義 94 */ 95 #define LOG_EMERG UINT_C(0) /* シャットダウンに値するエラー */ 100 96 #define LOG_ALERT UINT_C(1) 101 97 #define LOG_CRIT UINT_C(2) 102 #define LOG_ERROR UINT_C(3) /* VXeG[*/103 #define LOG_WARNING UINT_C(4) /* xbZ[W*/98 #define LOG_ERROR UINT_C(3) /* システムエラー */ 99 #define LOG_WARNING UINT_C(4) /* 警告メッセージ */ 104 100 #define LOG_NOTICE UINT_C(5) 105 101 #define LOG_INFO UINT_C(6) 106 #define LOG_DEBUG UINT_C(7) /* fobOpbZ[W*/102 #define LOG_DEBUG UINT_C(7) /* デバッグ用メッセージ */ 107 103 108 104 #ifndef TOPPERS_MACRO_ONLY 109 105 110 106 /* 111 * OîñÌf[^\¢107 * ログ情報のデータ構造 112 108 */ 113 109 … … 115 111 116 112 typedef struct { 117 uint_t logtype; /* OîñÌíÊ*/118 SYSTIM logtim; /* O*/119 intptr_t loginfo[TMAX_LOGINFO]; /* »Ì¼ÌOîñ*/113 uint_t logtype; /* ログ情報の種別 */ 114 SYSTIM logtim; /* ログ時刻 */ 115 intptr_t loginfo[TMAX_LOGINFO]; /* その他のログ情報 */ 120 116 } SYSLOG; 121 117 122 118 /* 123 * OîñÌdvxÌrbg}bvðìé½ßÌ}N119 * ログ情報の重要度のビットマップを作るためのマクロ 124 120 */ 125 121 #define LOG_MASK(prio) (1U << (prio)) … … 127 123 128 124 /* 129 * pPbg`®Ìè`125 * パケット形式の定義 130 126 */ 131 127 typedef struct t_syslog_rlog { 132 uint_t count; /* Oobt@ÌOÌ*/133 uint_t lost; /* ¸íê½OÌ*/134 uint_t logmask; /* Oobt@ÉL^·×«dvx*/135 uint_t lowmask; /* áxoͷ׫dvx*/128 uint_t count; /* ログバッファ中のログの数 */ 129 uint_t lost; /* 失われたログの数 */ 130 uint_t logmask; /* ログバッファに記録すべき重要度 */ 131 uint_t lowmask; /* 低レベル出力すべき重要度 */ 136 132 } T_SYSLOG_RLOG; 137 133 138 134 /* 139 * OîñðoÍ·é½ßÌCuÖ135 * ログ情報を出力するためのライブラリ関数 140 136 */ 141 137 … … 233 229 234 230 /* 235 * OîñiRgjðoÍ·é½ßÌCuÖivasyslog.cj231 * ログ情報(コメント)を出力するためのライブラリ関数(vasyslog.c) 236 232 */ 237 233 extern void syslog(uint_t prio, const char *format, ...) throw(); … … 241 237 242 238 /* 243 * VXeOoÍð}~·éê239 * システムログ出力を抑止する場合 244 240 */ 245 241 … … 291 287 292 288 /* 293 * OîñiRgjðoÍ·é½ßÌ}N294 * 295 * format ¨æÑã±Ìø©ç쬵½bZ[WðCdåxprioÅOî296 * ñƵÄoÍ·é½ßÌ}NDarg1`argnÍintptr_t^ÉLXg·é297 * ½ßCintptr_t^É^Ï·Å«éCÓÌ^Åæ¢D289 * ログ情報(コメント)を出力するためのマクロ 290 * 291 * formatおよび後続の引数から作成したメッセージを,重大度prioでログ情 292 * 報として出力するためのマクロ.arg1〜argnはintptr_t型にキャストする 293 * ため,intptr_t型に型変換できる任意の型でよい. 298 294 */ 299 295 … … 324 320 325 321 /* 326 * OîñiAT[V̸sjðoÍ·é½ßÌ}N322 * ログ情報(アサーションの失敗)を出力するためのマクロ 327 323 */ 328 324 #ifndef TOPPERS_assert_fail -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/include/test_lib.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * eXgvOpCu41 * テストプログラム用ライブラリ 46 42 */ 47 43 … … 56 52 57 53 /* 58 * ^[Qbg˶Ìè`54 * ターゲット依存の定義 59 55 */ 60 56 #include "target_test.h" 61 57 62 58 /* 63 * ©ÈffÖÌ^59 * 自己診断関数の型 64 60 */ 65 61 typedef ER (*BIT_FUNC)(void); 66 62 67 63 /* 68 * ©ÈffÖÌÝè64 * 自己診断関数の設定 69 65 */ 70 66 extern void set_bit_func(BIT_FUNC bit_func); 71 67 72 68 /* 73 * eXgvOÌJn69 * テストプログラムの開始 74 70 */ 75 71 extern void test_start(char *progname); 76 72 77 73 /* 78 * VXeOÌoÍ74 * システムログの出力処理 79 75 */ 80 76 extern void syslog_flush(void); 81 77 82 78 /* 83 * eXgvOÌI¹79 * テストプログラムの終了 84 80 */ 85 81 extern void test_finish(void); 86 82 87 83 /* 88 * `FbN|Cg84 * チェックポイント 89 85 */ 90 86 extern void check_point(uint_t count); 91 87 92 88 /* 93 * ®¹`FbN|Cg89 * 完了チェックポイント 94 90 */ 95 91 extern void check_finish(uint_t count); 96 92 97 93 /* 98 * ð`FbN94 * 条件チェック 99 95 */ 100 96 extern void _check_assert(const char *expr, const char *file, int_t line); … … 103 99 104 100 /* 105 * G[R[h`FbN101 * エラーコードチェック 106 102 */ 107 103 extern void _check_ercd(ER ercd, const char *file, int_t line); … … 111 107 112 108 /* 113 * VXeóÔÌ`FbN109 * システム状態のチェック 114 110 */ 115 111 Inline void … … 124 120 if (!loc) { 125 121 /* 126 * IPM Ì`FbNÍCCPUbNðóÔÌêÉÌÝs¤D122 * IPMのチェックは,CPUロック解除状態の場合にのみ行う. 127 123 */ 128 124 ercd = get_ipm(&intpri); … … 136 132 137 133 /* 138 * VXeóÔÌ`FbNiñ^XNReLXgpj134 * システム状態のチェック(非タスクコンテキスト用) 139 135 */ 140 136 Inline void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/alarm.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * A[nh@\44 * アラームハンドラ機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_ALM_ENTER … … 121 117 122 118 /* 123 * A[nhÌ119 * アラームハンドラの数 124 120 */ 125 121 #define tnum_alm ((uint_t)(tmax_almid - TMIN_ALMID + 1)) … … 127 123 128 124 /* 129 * A[nhID©çA[nhÇubNðæèo·½ßÌ}N125 * アラームハンドラIDからアラームハンドラ管理ブロックを取り出すためのマクロ 130 126 */ 131 127 #define INDEX_ALM(almid) ((uint_t)((almid) - TMIN_ALMID)) … … 135 131 136 132 /* 137 * gpµÄ¢È¢A[nhÇubNÌXg133 * 使用していないアラームハンドラ管理ブロックのリスト 138 134 * 139 * A[nhÇubNÌæªÉÍL 140 [ÉÂÈ®½ßÌÌæªÈ 141 * ¢½ßC^CCxgubNitmevtbjÌÌæðp¢éD 135 * アラームハンドラ管理ブロックの先頭にはキューにつなぐための領域がな 136 * いため,タイムイベントブロック(tmevtb)の領域を用いる. 142 137 */ 143 138 QUEUE free_almcb; 144 139 145 140 /* 146 * A[nh@\Ìú»141 * アラームハンドラ機能の初期化 147 142 */ 148 143 void … … 171 166 172 167 /* 173 * A[nh̶¬168 * アラームハンドラの生成 174 169 */ 175 170 #ifdef TOPPERS_acre_alm … … 213 208 214 209 /* 215 * A[nhÌí210 * アラームハンドラの削除 216 211 */ 217 212 #ifdef TOPPERS_del_alm … … 257 252 258 253 /* 259 * A[nhÌ®ìJn254 * アラームハンドラの動作開始 260 255 */ 261 256 #ifdef TOPPERS_sta_alm … … 298 293 299 294 /* 300 * A[nhÌ®ìJniñ^XNReLXgpj295 * アラームハンドラの動作開始(非タスクコンテキスト用) 301 296 */ 302 297 #ifdef TOPPERS_ista_alm … … 339 334 340 335 /* 341 * A[nhÌ®ìâ~336 * アラームハンドラの動作停止 342 337 */ 343 338 #ifdef TOPPERS_stp_alm … … 375 370 376 371 /* 377 * A[nhÌ®ìâ~iñ^XNReLXgpj372 * アラームハンドラの動作停止(非タスクコンテキスト用) 378 373 */ 379 374 #ifdef TOPPERS_istp_alm … … 411 406 412 407 /* 413 * A[nhÌóÔQÆ408 * アラームハンドラの状態参照 414 409 */ 415 410 #ifdef TOPPERS_ref_alm … … 450 445 451 446 /* 452 * A[nhN®[`447 * アラームハンドラ起動ルーチン 453 448 */ 454 449 #ifdef TOPPERS_almcal … … 460 455 461 456 /* 462 * A[nhðâ~óÔÉ·éD457 * アラームハンドラを停止状態にする. 463 458 */ 464 459 p_almcb->almsta = false; 465 460 466 461 /* 467 * A[nhðCCPUbNðóÔÅÄÑo·D462 * アラームハンドラを,CPUロック解除状態で呼び出す. 468 463 */ 469 464 saved_ipm = i_get_ipm(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/alarm.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * A[nh@\44 * アラームハンドラ機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * A[nhú»ubN54 * アラームハンドラ初期化ブロック 59 55 */ 60 56 typedef struct alarm_handler_initialization_block { 61 ATR almatr; /* A[nh®«*/62 intptr_t exinf; /* A[nhÌg£îñ*/63 ALMHDR almhdr; /* A[nhÌN®Ôn*/57 ATR almatr; /* アラームハンドラ属性 */ 58 intptr_t exinf; /* アラームハンドラの拡張情報 */ 59 ALMHDR almhdr; /* アラームハンドラの起動番地 */ 64 60 } ALMINIB; 65 61 66 62 /* 67 * A[nhÇubN63 * アラームハンドラ管理ブロック 68 64 */ 69 65 typedef struct alarm_handler_control_block { 70 const ALMINIB *p_alminib; /* ú»ubNÖÌ|C^*/71 bool_t almsta; /* A[nhÌ®ìóÔ*/72 TMEVTB tmevtb; /* ^CCxgubN*/66 const ALMINIB *p_alminib; /* 初期化ブロックへのポインタ */ 67 bool_t almsta; /* アラームハンドラの動作状態 */ 68 TMEVTB tmevtb; /* タイムイベントブロック */ 73 69 } ALMCB; 74 70 75 71 /* 76 * gpµÄ¢È¢A[nhÇubNÌXg72 * 使用していないアラームハンドラ管理ブロックのリスト 77 73 */ 78 74 extern QUEUE free_almcb; 79 75 80 76 /* 81 * A[nhIDÌÅålikernel_cfg.cj77 * アラームハンドラIDの最大値(kernel_cfg.c) 82 78 */ 83 79 extern const ID tmax_almid; … … 85 81 86 82 /* 87 * A[nhú»ubNÌGAikernel_cfg.cj83 * アラームハンドラ初期化ブロックのエリア(kernel_cfg.c) 88 84 */ 89 85 extern const ALMINIB alminib_table[]; … … 91 87 92 88 /* 93 * A[nhÇubNÌGAikernel_cfg.cj89 * アラームハンドラ管理ブロックのエリア(kernel_cfg.c) 94 90 */ 95 91 extern ALMCB almcb_table[]; 96 92 97 93 /* 98 * A[nhÇubN©çA[nhIDðæèo·½ßÌ99 * }N94 * アラームハンドラ管理ブロックからアラームハンドラIDを取り出すための 95 * マクロ 100 96 */ 101 97 #define ALMID(p_almcb) ((ID)(((p_almcb) - almcb_table) + TMIN_ALMID)) 102 98 103 99 /* 104 * A[nh@\Ìú»100 * アラームハンドラ機能の初期化 105 101 */ 106 102 extern void initialize_alarm(void); 107 103 108 104 /* 109 * A[nhN®[`105 * アラームハンドラ起動ルーチン 110 106 */ 111 107 extern void call_almhdr(ALMCB *p_almcb); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/allfunc.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 35 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 40 * ÌÓCðíÈ¢D 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 31 * 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * ·×ÄÌÖðRpC·é½ßÌè`42 * すべての関数をコンパイルするための定義 47 43 */ 48 44 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/check.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * G[`FbNp}N44 * エラーチェック用マクロ 49 45 */ 50 46 … … 53 49 54 50 /* 55 * \ñ®«G[Ì`FbNiE_PARj51 * 予約属性エラーのチェック(E_PAR) 56 52 */ 57 53 #define CHECK_RSATR(atr, valid_atr) do { \ … … 63 59 64 60 /* 65 * DæxÌÍÍÌ»è61 * 優先度の範囲の判定 66 62 */ 67 63 #define VALID_TPRI(tpri) (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI) … … 80 76 81 77 /* 82 * ^XNDæxÌ`FbNiE_PARj78 * タスク優先度のチェック(E_PAR) 83 79 */ 84 80 #define CHECK_TPRI(tpri) do { \ … … 104 100 105 101 /* 106 * f[^DæxÌ`FbNiE_PARj102 * データ優先度のチェック(E_PAR) 107 103 */ 108 104 #define CHECK_DPRI(dpri) do { \ … … 114 110 115 111 /* 116 * bZ[WDæxÌ`FbNiE_PARj112 * メッセージ優先度のチェック(E_PAR) 117 113 */ 118 114 #define CHECK_MPRI(mpri) do { \ … … 124 120 125 121 /* 126 * ÝT[rX[`DæxÌ`FbNiE_PARj122 * 割込みサービスルーチン優先度のチェック(E_PAR) 127 123 */ 128 124 #define CHECK_ISRPRI(isrpri) do { \ … … 134 130 135 131 /* 136 * ^CAEgwèlÌ`FbNiE_PARj132 * タイムアウト指定値のチェック(E_PAR) 137 133 */ 138 134 #define CHECK_TMOUT(tmout) do { \ … … 144 140 145 141 /* 146 * ÝDæxÌ`FbNiE_PARj142 * 割込み優先度のチェック(E_PAR) 147 143 */ 148 144 #define CHECK_INTPRI_CHGIPM(intpri) do { \ … … 154 150 155 151 /* 156 * ÝÔÌ`FbNiE_PARj152 * 割込み番号のチェック(E_PAR) 157 153 */ 158 154 #define CHECK_INTNO_CREISR(intno) do { \ … … 171 167 172 168 /* 173 * ACµÄ¢é©Ì»è169 * アラインしているかの判定 174 170 */ 175 171 #define ALIGNED(val, align) ((((uintptr_t)(val)) & ((align) - 1U)) == 0U) … … 206 202 207 203 /* 208 * NULL ÅÈ¢±ÆÌ`FbN204 * NULLでないことのチェック 209 205 */ 210 206 #ifdef CHECK_FUNC_NONNULL … … 215 211 216 212 /* 217 * ÖÌæªÔnÌ`FbNiE_PARj213 * 関数の先頭番地のチェック(E_PAR) 218 214 */ 219 215 #define CHECK_ALIGN_FUNC(func) do { \ … … 232 228 233 229 /* 234 * X^bNTCYÌ`FbNiE_PARj230 * スタックサイズのチェック(E_PAR) 235 231 */ 236 232 #define CHECK_ALIGN_STKSZ(stksz) do { \ … … 242 238 243 239 /* 244 * X^bNÌæªÔnÌ`FbNiE_PARj240 * スタックの先頭番地のチェック(E_PAR) 245 241 */ 246 242 #define CHECK_ALIGN_STACK(stack) do { \ … … 252 248 253 249 /* 254 * Åè·v[ÌæÌæªÔnÌ`FbNiE_PARj250 * 固定長メモリプール領域の先頭番地のチェック(E_PAR) 255 251 */ 256 252 #define CHECK_ALIGN_MPF(mpf) do { \ … … 262 258 263 259 /* 264 * ÇÌæÌæªÔnÌ`FbNiE_PARj260 * 管理領域の先頭番地のチェック(E_PAR) 265 261 */ 266 262 #define CHECK_ALIGN_MB(mb) do { \ … … 272 268 273 269 /* 274 * »Ì¼Ìp[^G[Ì`FbNiE_PARj270 * その他のパラメータエラーのチェック(E_PAR) 275 271 */ 276 272 #define CHECK_PAR(exp) do { \ … … 282 278 283 279 /* 284 * IuWFNgIDÌÍÍÌ»è280 * オブジェクトIDの範囲の判定 285 281 */ 286 282 #define VALID_TSKID(tskid) (TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid) … … 296 292 297 293 /* 298 * IuWFNgIDÌ`FbNiE_IDj294 * オブジェクトIDのチェック(E_ID) 299 295 */ 300 296 #define CHECK_TSKID(tskid) do { \ … … 376 372 377 373 /* 378 * ÄoµReLXgÌ`FbNiE_CTXj374 * 呼出しコンテキストのチェック(E_CTX) 379 375 */ 380 376 #define CHECK_TSKCTX() do { \ … … 393 389 394 390 /* 395 * ÄoµReLXgÆCPUbNóÔÌ`FbNiE_CTXj391 * 呼出しコンテキストとCPUロック状態のチェック(E_CTX) 396 392 */ 397 393 #define CHECK_TSKCTX_UNL() do { \ … … 410 406 411 407 /* 412 * fBXpb`Û¯óÔÅÈ¢©Ì`FbNiE_CTXj408 * ディスパッチ保留状態でないかのチェック(E_CTX) 413 409 */ 414 410 #define CHECK_DISPATCH() do { \ … … 420 416 421 417 /* 422 * »Ì¼ÌReLXgG[Ì`FbNiE_CTXj418 * その他のコンテキストエラーのチェック(E_CTX) 423 419 */ 424 420 #define CHECK_CTX(exp) do { \ … … 430 426 431 427 /* 432 * ©^XNðwèµÄ¢È¢©Ì`FbNiE_ILUSEj428 * 自タスクを指定していないかのチェック(E_ILUSE) 433 429 */ 434 430 #define CHECK_NONSELF(p_tcb) do { \ … … 440 436 441 437 /* 442 * »Ì¼Ìs³gpG[Ì`FbNiE_ILUSEj438 * その他の不正使用エラーのチェック(E_ILUSE) 443 439 */ 444 440 #define CHECK_ILUSE(exp) do { \ … … 450 446 451 447 /* 452 * ¢T|[g@\G[Ì`FbNiE_NOSPTj448 * 未サポート機能エラーのチェック(E_NOSPT) 453 449 */ 454 450 #define CHECK_NOSPT(exp) do { \ … … 460 456 461 457 /* 462 * ÃIÈIuWFNgóÔG[Ì`FbNiE_OBJj458 * 静的なオブジェクト状態エラーのチェック(E_OBJ) 463 459 */ 464 460 #define CHECK_OBJ(exp) do { \ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/cyclic.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * üúnh@\44 * 周期ハンドラ機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_CYC_ENTER … … 105 101 106 102 /* 107 * üúnhÌ103 * 周期ハンドラの数 108 104 */ 109 105 #define tnum_cyc ((uint_t)(tmax_cycid - TMIN_CYCID + 1)) … … 111 107 112 108 /* 113 * üúnhID©çüúnhÇubNðæèo·½ßÌ}N109 * 周期ハンドラIDから周期ハンドラ管理ブロックを取り出すためのマクロ 114 110 */ 115 111 #define INDEX_CYC(cycid) ((uint_t)((cycid) - TMIN_CYCID)) … … 117 113 118 114 /* 119 * üúnhN®Ì½ßÌ^CCxgubNÌo^115 * 周期ハンドラ起動のためのタイムイベントブロックの登録 120 116 */ 121 117 Inline void … … 130 126 131 127 /* 132 * gpµÄ¢È¢üúnhÇubNÌXg128 * 使用していない周期ハンドラ管理ブロックのリスト 133 129 * 134 * üúnhÇubNÌæªÉÍL 135 [ÉÂÈ®½ßÌÌæªÈ¢½ 136 * ßC^CCxgubNitmevtbjÌÌæðp¢éD 130 * 周期ハンドラ管理ブロックの先頭にはキューにつなぐための領域がないた 131 * め,タイムイベントブロック(tmevtb)の領域を用いる. 137 132 */ 138 133 QUEUE free_cyccb; 139 134 140 135 /* 141 * üúnh@\Ìú»136 * 周期ハンドラ機能の初期化 142 137 */ 143 138 void … … 172 167 173 168 /* 174 * üúnh̶¬169 * 周期ハンドラの生成 175 170 */ 176 171 #ifdef TOPPERS_acre_cyc … … 225 220 226 221 /* 227 * üúnhÌí222 * 周期ハンドラの削除 228 223 */ 229 224 #ifdef TOPPERS_del_cyc … … 269 264 270 265 /* 271 * üúnhÌ®ìJn266 * 周期ハンドラの動作開始 272 267 */ 273 268 #ifdef TOPPERS_sta_cyc … … 308 303 309 304 /* 310 * üúnhÌ®ìâ~305 * 周期ハンドラの動作停止 311 306 */ 312 307 #ifdef TOPPERS_stp_cyc … … 344 339 345 340 /* 346 * üúnhÌóÔQÆ341 * 周期ハンドラの状態参照 347 342 */ 348 343 #ifdef TOPPERS_ref_cyc … … 383 378 384 379 /* 385 * üúnhN®[`380 * 周期ハンドラ起動ルーチン 386 381 */ 387 382 #ifdef TOPPERS_cyccal … … 393 388 394 389 /* 395 * ñÌN®Ì½ßÌ^CCxgubNðo^·éD390 * 次回の起動のためのタイムイベントブロックを登録する. 396 391 * 397 * ¯¶^CeBbNÅüúnhðÄxN®·×«êÉÍC±Ì398 * Ö©çsignal_timeÉßÁ½ãÉCÄx±ÌÖªÄÎêé±ÆÉÈ399 * éD392 * 同じタイムティックで周期ハンドラを再度起動すべき場合には,この 393 * 関数からsignal_timeに戻った後に,再度この関数が呼ばれることにな 394 * る. 400 395 */ 401 396 tmevtb_enqueue_cyc(p_cyccb, p_cyccb->evttim + p_cyccb->p_cycinib->cyctim); 402 397 403 398 /* 404 * üúnhðCCPUbNðóÔÅÄÑo·D399 * 周期ハンドラを,CPUロック解除状態で呼び出す. 405 400 */ 406 401 saved_ipm = i_get_ipm(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/cyclic.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * üúnh@\44 * 周期ハンドラ機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * üúnhú»ubN54 * 周期ハンドラ初期化ブロック 59 55 */ 60 56 typedef struct cyclic_handler_initialization_block { 61 ATR cycatr; /* üúnh®«*/62 intptr_t exinf; /* üúnhÌg£îñ*/63 CYCHDR cychdr; /* üúnhÌN®Ôn*/64 RELTIM cyctim; /* üúnhÌN®üú*/65 RELTIM cycphs; /* üúnhÌN®Ê*/57 ATR cycatr; /* 周期ハンドラ属性 */ 58 intptr_t exinf; /* 周期ハンドラの拡張情報 */ 59 CYCHDR cychdr; /* 周期ハンドラの起動番地 */ 60 RELTIM cyctim; /* 周期ハンドラの起動周期 */ 61 RELTIM cycphs; /* 周期ハンドラの起動位相 */ 66 62 } CYCINIB; 67 63 68 64 /* 69 * üúnhÇubN65 * 周期ハンドラ管理ブロック 70 66 */ 71 67 typedef struct cyclic_handler_control_block { 72 const CYCINIB *p_cycinib; /* ú»ubNÖÌ|C^*/73 bool_t cycsta; /* üúnhÌ®ìóÔ*/74 EVTTIM evttim; /* ÉüúnhðN®·é*/75 TMEVTB tmevtb; /* ^CCxgubN*/68 const CYCINIB *p_cycinib; /* 初期化ブロックへのポインタ */ 69 bool_t cycsta; /* 周期ハンドラの動作状態 */ 70 EVTTIM evttim; /* 次に周期ハンドラを起動する時刻 */ 71 TMEVTB tmevtb; /* タイムイベントブロック */ 76 72 } CYCCB; 77 73 78 74 /* 79 * gpµÄ¢È¢üúnhÇubNÌXg75 * 使用していない周期ハンドラ管理ブロックのリスト 80 76 */ 81 77 extern QUEUE free_cyccb; 82 78 83 79 /* 84 * üúnhIDÌÅålikernel_cfg.cj80 * 周期ハンドラIDの最大値(kernel_cfg.c) 85 81 */ 86 82 extern const ID tmax_cycid; … … 88 84 89 85 /* 90 * üúnhú»ubNÌGAikernel_cfg.cj86 * 周期ハンドラ初期化ブロックのエリア(kernel_cfg.c) 91 87 */ 92 88 extern const CYCINIB cycinib_table[]; … … 94 90 95 91 /* 96 * üúnhÇubNÌGAikernel_cfg.cj92 * 周期ハンドラ管理ブロックのエリア(kernel_cfg.c) 97 93 */ 98 94 extern CYCCB cyccb_table[]; 99 95 100 96 /* 101 * üúnhÇubN©çüúnhIDðæèo·½ßÌ}N97 * 周期ハンドラ管理ブロックから周期ハンドラIDを取り出すためのマクロ 102 98 */ 103 99 #define CYCID(p_cyccb) ((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID)) 104 100 105 101 /* 106 * üúnh@\Ìú»102 * 周期ハンドラ機能の初期化 107 103 */ 108 104 extern void initialize_cyclic(void); 109 105 110 106 /* 111 * üúnhN®[`107 * 周期ハンドラ起動ルーチン 112 108 */ 113 109 extern void call_cychdr(CYCCB *p_cyccb); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/dataqueue.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * f[^L 49 [@\ 44 * データキュー機能 50 45 */ 51 46 … … 57 52 58 53 /* 59 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 60 55 */ 61 56 #ifndef LOG_ACRE_DTQ_ENTER … … 164 159 165 160 /* 166 * f[^L 167 [Ì 161 * データキューの数 168 162 */ 169 163 #define tnum_dtq ((uint_t)(tmax_dtqid - TMIN_DTQID + 1)) … … 171 165 172 166 /* 173 * f[^L 174 [ID©çf[^L 175 [ÇubNðæèo·½ßÌ}N 167 * データキューIDからデータキュー管理ブロックを取り出すためのマクロ 176 168 */ 177 169 #define INDEX_DTQ(dtqid) ((uint_t)((dtqid) - TMIN_DTQID)) … … 181 173 182 174 /* 183 * gpµÄ¢È¢f[^L 184 [ÇubNÌXg 175 * 使用していないデータキュー管理ブロックのリスト 185 176 */ 186 177 QUEUE free_dtqcb; 187 178 188 179 /* 189 * f[^L 190 [@\Ìú» 180 * データキュー機能の初期化 191 181 */ 192 182 void … … 219 209 220 210 /* 221 * f[^L 222 [ÇÌæÖÌf[^Ìi[ 211 * データキュー管理領域へのデータの格納 223 212 */ 224 213 #ifdef TOPPERS_dtqenq … … 238 227 239 228 /* 240 * f[^L 241 [ÇÌæÖÌf[^̧i[ 229 * データキュー管理領域へのデータの強制格納 242 230 */ 243 231 #ifdef TOPPERS_dtqfenq … … 262 250 263 251 /* 264 * f[^L 265 [ÇÌæ©çÌf[^Ìæoµ 252 * データキュー管理領域からのデータの取出し 266 253 */ 267 254 #ifdef TOPPERS_dtqdeq … … 281 268 282 269 /* 283 * f[^L 284 [ÖÌf[^M 270 * データキューへのデータ送信 285 271 */ 286 272 #ifdef TOPPERS_dtqsnd … … 310 296 311 297 /* 312 * f[^L 313 [ÖÌf[^§M 298 * データキューへのデータ強制送信 314 299 */ 315 300 #ifdef TOPPERS_dtqfsnd … … 334 319 335 320 /* 336 * f[^L 337 [©çÌf[^óM 321 * データキューからのデータ受信 338 322 */ 339 323 #ifdef TOPPERS_dtqrcv … … 372 356 373 357 /* 374 * f[^L 375 [̶¬ 358 * データキューの生成 376 359 */ 377 360 #ifdef TOPPERS_acre_dtq … … 432 415 433 416 /* 434 * f[^L 435 [Ìí 417 * データキューの削除 436 418 */ 437 419 #ifdef TOPPERS_del_dtq … … 483 465 484 466 /* 485 * f[^L 486 [ÖÌM 467 * データキューへの送信 487 468 */ 488 469 #ifdef TOPPERS_snd_dtq … … 528 509 529 510 /* 530 * f[^L 531 [ÖÌMi|[Oj 511 * データキューへの送信(ポーリング) 532 512 */ 533 513 #ifdef TOPPERS_psnd_dtq … … 568 548 569 549 /* 570 * f[^L 571 [ÖÌMi|[OCñ^XNReLXgpj 550 * データキューへの送信(ポーリング,非タスクコンテキスト用) 572 551 */ 573 552 #ifdef TOPPERS_ipsnd_dtq … … 608 587 609 588 /* 610 * f[^L 611 [ÖÌMi^CAEg èj 589 * データキューへの送信(タイムアウトあり) 612 590 */ 613 591 #ifdef TOPPERS_tsnd_dtq … … 659 637 660 638 /* 661 * f[^L 662 [Ö̧M 639 * データキューへの強制送信 663 640 */ 664 641 #ifdef TOPPERS_fsnd_dtq … … 696 673 697 674 /* 698 * f[^L 699 [Ö̧Miñ^XNReLXgpj 675 * データキューへの強制送信(非タスクコンテキスト用) 700 676 */ 701 677 #ifdef TOPPERS_ifsnd_dtq … … 733 709 734 710 /* 735 * f[^L 736 [©çÌóM 711 * データキューからの受信 737 712 */ 738 713 #ifdef TOPPERS_rcv_dtq … … 783 758 784 759 /* 785 * f[^L 786 [©çÌóMi|[Oj 760 * データキューからの受信(ポーリング) 787 761 */ 788 762 #ifdef TOPPERS_prcv_dtq … … 823 797 824 798 /* 825 * f[^L 826 [©çÌóMi^CAEg èj 799 * データキューからの受信(タイムアウトあり) 827 800 */ 828 801 #ifdef TOPPERS_trcv_dtq … … 878 851 879 852 /* 880 * f[^L 881 [ÌÄú» 853 * データキューの再初期化 882 854 */ 883 855 #ifdef TOPPERS_ini_dtq … … 922 894 923 895 /* 924 * f[^L 925 [ÌóÔQÆ 896 * データキューの状態参照 926 897 */ 927 898 #ifdef TOPPERS_ref_dtq -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/dataqueue.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * f[^L 49 [@\ 44 * データキュー機能 50 45 */ 51 46 … … 56 51 57 52 /* 58 * f[^ÇubN53 * データ管理ブロック 59 54 */ 60 55 typedef struct data_management_block { 61 intptr_t data; /* f[^{Ì*/56 intptr_t data; /* データ本体 */ 62 57 } DTQMB; 63 58 64 59 /* 65 * f[^L 66 [ú»ubN 60 * データキュー初期化ブロック 67 61 * 68 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ69 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC70 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD62 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 63 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 64 * 最初のフィールドが共通になっている. 71 65 */ 72 66 typedef struct dataqueue_initialization_block { 73 ATR dtqatr; /* f[^L 74 [®« */ 75 uint_t dtqcnt; /* f[^L 76 [ÌeÊ */ 77 DTQMB *p_dtqmb; /* f[^L 78 [ÇÌæÌæªÔn */ 67 ATR dtqatr; /* データキュー属性 */ 68 uint_t dtqcnt; /* データキューの容量 */ 69 DTQMB *p_dtqmb; /* データキュー管理領域の先頭番地 */ 79 70 } DTQINIB; 80 71 81 72 /* 82 * f[^L 83 [ÇubN 73 * データキュー管理ブロック 84 74 * 85 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj86 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ87 * tB[hª¤ÊÉÈÁÄ¢éD75 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 76 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 77 * フィールドが共通になっている. 88 78 */ 89 79 typedef struct dataqueue_control_block { 90 QUEUE swait_queue; /* f[^L 91 [MÒ¿L 92 [ */ 93 const DTQINIB *p_dtqinib; /* ú»ubNÖÌ|C^ */ 94 QUEUE rwait_queue; /* f[^L 95 [óMÒ¿L 96 [ */ 97 uint_t count; /* f[^L 98 [Ìf[^Ì */ 99 uint_t head; /* ÅÌf[^Ìi[ê */ 100 uint_t tail; /* ÅãÌf[^Ìi[êÌ */ 80 QUEUE swait_queue; /* データキュー送信待ちキュー */ 81 const DTQINIB *p_dtqinib; /* 初期化ブロックへのポインタ */ 82 QUEUE rwait_queue; /* データキュー受信待ちキュー */ 83 uint_t count; /* データキュー中のデータの数 */ 84 uint_t head; /* 最初のデータの格納場所 */ 85 uint_t tail; /* 最後のデータの格納場所の次 */ 101 86 } DTQCB; 102 87 103 88 /* 104 * f[^L 105 [Ò¿îñubNÌè` 89 * データキュー待ち情報ブロックの定義 106 90 * 107 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ 108 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC 109 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD 110 * f[^L 111 [ÖÌMÒ¿Æf[^L 112 [©çÌóMÒ¿ÅC¯¶Ò¿î 113 * ñubNðg¤D 91 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 92 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 93 * 最初の2つのフィールドが共通になっている. 94 * データキューへの送信待ちとデータキューからの受信待ちで,同じ待ち情 95 * 報ブロックを使う. 114 96 */ 115 97 typedef struct dataqueue_waiting_information { 116 WINFO winfo; /* WÌÒ¿îñubN */ 117 DTQCB *p_dtqcb; /* ÒÁÄ¢éf[^L 118 [ÌÇubN */ 119 intptr_t data; /* óMf[^ */ 98 WINFO winfo; /* 標準の待ち情報ブロック */ 99 DTQCB *p_dtqcb; /* 待っているデータキューの管理ブロック */ 100 intptr_t data; /* 送受信データ */ 120 101 } WINFO_DTQ; 121 102 122 103 /* 123 * gpµÄ¢È¢f[^L 124 [ÇubNÌXg 104 * 使用していないデータキュー管理ブロックのリスト 125 105 */ 126 106 extern QUEUE free_dtqcb; 127 107 128 108 /* 129 * f[^L 130 [IDÌÅålikernel_cfg.cj 109 * データキューIDの最大値(kernel_cfg.c) 131 110 */ 132 111 extern const ID tmax_dtqid; … … 134 113 135 114 /* 136 * f[^L 137 [ú»ubNÌGAikernel_cfg.cj 115 * データキュー初期化ブロックのエリア(kernel_cfg.c) 138 116 */ 139 117 extern const DTQINIB dtqinib_table[]; … … 141 119 142 120 /* 143 * f[^L 144 [ÇubNÌGAikernel_cfg.cj 121 * データキュー管理ブロックのエリア(kernel_cfg.c) 145 122 */ 146 123 extern DTQCB dtqcb_table[]; 147 124 148 125 /* 149 * f[^L 150 [ÇubN©çf[^L 151 [IDðæèo·½ßÌ}N 126 * データキュー管理ブロックからデータキューIDを取り出すためのマクロ 152 127 */ 153 128 #define DTQID(p_dtqcb) ((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID)) 154 129 155 130 /* 156 * f[^L 157 [@\Ìú» 131 * データキュー機能の初期化 158 132 */ 159 133 extern void initialize_dataqueue(void); 160 134 161 135 /* 162 * f[^L 163 [ÇÌæÖÌf[^Ìi[ 136 * データキュー管理領域へのデータの格納 164 137 */ 165 138 extern void enqueue_data(DTQCB *p_dtqcb, intptr_t data); 166 139 167 140 /* 168 * f[^L 169 [ÇÌæÖÌf[^̧i[ 141 * データキュー管理領域へのデータの強制格納 170 142 */ 171 143 extern void force_enqueue_data(DTQCB *p_dtqcb, intptr_t data); 172 144 173 145 /* 174 * f[^L 175 [ÇÌæ©çÌf[^Ìæoµ 146 * データキュー管理領域からのデータの取出し 176 147 */ 177 148 extern void dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data); 178 149 179 150 /* 180 * f[^L 181 [ÖÌf[^M 151 * データキューへのデータ送信 182 152 */ 183 153 extern bool_t send_data(DTQCB *p_dtqcb, intptr_t data, bool_t *p_dspreq); 184 154 185 155 /* 186 * f[^L 187 [ÖÌf[^§M 156 * データキューへのデータ強制送信 188 157 */ 189 158 extern bool_t force_send_data(DTQCB *p_dtqcb, intptr_t data); 190 159 191 160 /* 192 * f[^L 193 [©çÌf[^óM 161 * データキューからのデータ受信 194 162 */ 195 163 extern bool_t receive_data(DTQCB *p_dtqcb, intptr_t *p_data, -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/eventflag.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * CxgtO@\44 * イベントフラグ機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 59 55 */ 60 56 #ifndef LOG_ACRE_FLG_ENTER … … 139 135 140 136 /* 141 * CxgtOÌ137 * イベントフラグの数 142 138 */ 143 139 #define tnum_flg ((uint_t)(tmax_flgid - TMIN_FLGID + 1)) … … 145 141 146 142 /* 147 * CxgtOID©çCxgtOÇubNðæèo·½ßÌ}N143 * イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ 148 144 */ 149 145 #define INDEX_FLG(flgid) ((uint_t)((flgid) - TMIN_FLGID)) … … 153 149 154 150 /* 155 * gpµÄ¢È¢CxgtOÇubNÌXg151 * 使用していないイベントフラグ管理ブロックのリスト 156 152 */ 157 153 QUEUE free_flgcb; 158 154 159 155 /* 160 * CxgtO@\Ìú»156 * イベントフラグ機能の初期化 161 157 */ 162 158 void … … 186 182 187 183 /* 188 * CxgtOÒ¿ððÌ`FbN184 * イベントフラグ待ち解除条件のチェック 189 185 */ 190 186 #ifdef TOPPERS_flgcnd … … 207 203 208 204 /* 209 * CxgtO̶¬205 * イベントフラグの生成 210 206 */ 211 207 #ifdef TOPPERS_acre_flg … … 246 242 247 243 /* 248 * CxgtOÌí244 * イベントフラグの削除 249 245 */ 250 246 #ifdef TOPPERS_del_flg … … 290 286 291 287 /* 292 * CxgtOÌZbg288 * イベントフラグのセット 293 289 */ 294 290 #ifdef TOPPERS_set_flg … … 346 342 347 343 /* 348 * CxgtOÌZbgiñ^XNReLXgpj344 * イベントフラグのセット(非タスクコンテキスト用) 349 345 */ 350 346 #ifdef TOPPERS_iset_flg … … 398 394 399 395 /* 400 * CxgtOÌNA396 * イベントフラグのクリア 401 397 */ 402 398 #ifdef TOPPERS_clr_flg … … 431 427 432 428 /* 433 * CxgtOÒ¿429 * イベントフラグ待ち 434 430 */ 435 431 #ifdef TOPPERS_wai_flg … … 481 477 482 478 /* 483 * CxgtOÒ¿i|[Oj479 * イベントフラグ待ち(ポーリング) 484 480 */ 485 481 #ifdef TOPPERS_pol_flg … … 522 518 523 519 /* 524 * CxgtOÒ¿i^CAEg èj520 * イベントフラグ待ち(タイムアウトあり) 525 521 */ 526 522 #ifdef TOPPERS_twai_flg … … 578 574 579 575 /* 580 * CxgtOÌÄú»576 * イベントフラグの再初期化 581 577 */ 582 578 #ifdef TOPPERS_ini_flg … … 616 612 617 613 /* 618 * CxgtOÌóÔQÆ614 * イベントフラグの状態参照 619 615 */ 620 616 #ifdef TOPPERS_ref_flg -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/eventflag.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * CxgtO@\44 * イベントフラグ機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * CxgtOú»ubN53 * イベントフラグ初期化ブロック 58 54 * 59 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ60 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC61 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD55 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 56 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 57 * 最初のフィールドが共通になっている. 62 58 */ 63 59 typedef struct eventflag_initialization_block { 64 ATR flgatr; /* CxgtO®«*/65 FLGPTN iflgptn; /* CxgtOÌrbgp^[Ìúl*/60 ATR flgatr; /* イベントフラグ属性 */ 61 FLGPTN iflgptn; /* イベントフラグのビットパターンの初期値 */ 66 62 } FLGINIB; 67 63 68 64 /* 69 * CxgtOÇubN65 * イベントフラグ管理ブロック 70 66 * 71 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj72 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ73 * tB[hª¤ÊÉÈÁÄ¢éD67 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 68 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 69 * フィールドが共通になっている. 74 70 */ 75 71 typedef struct eventflag_control_block { 76 QUEUE wait_queue; /* CxgtOÒ¿L 77 [ */ 78 const FLGINIB *p_flginib; /* ú»ubNÖÌ|C^ */ 79 FLGPTN flgptn; /* CxgtO»Ýp^[ */ 72 QUEUE wait_queue; /* イベントフラグ待ちキュー */ 73 const FLGINIB *p_flginib; /* 初期化ブロックへのポインタ */ 74 FLGPTN flgptn; /* イベントフラグ現在パターン */ 80 75 } FLGCB; 81 76 82 77 /* 83 * CxgtOÒ¿îñubNÌè`78 * イベントフラグ待ち情報ブロックの定義 84 79 * 85 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ86 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC87 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD80 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 81 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 82 * 最初の2つのフィールドが共通になっている. 88 83 * 89 * flgptn ÍCwaiptn¨æÑwfmodeƯÉg¤±ÆÍÈ¢½ßC¤pÌðg90 * ¦Îðßñ·é±ÆªÂ\Å éD84 * flgptnは,waiptnおよびwfmodeと同時に使うことはないため,共用体を使 85 * えばメモリを節約することが可能である. 91 86 */ 92 87 typedef struct eventflag_waiting_information { 93 WINFO winfo; /* WÌÒ¿îñubN*/94 FLGCB *p_flgcb; /* ÒÁÄ¢éCxgtOÌÇubN*/95 FLGPTN waiptn; /* Ò¿p^[*/96 MODE wfmode; /* Ò¿[h*/97 FLGPTN flgptn; /* Ò¿ðÌp^[*/88 WINFO winfo; /* 標準の待ち情報ブロック */ 89 FLGCB *p_flgcb; /* 待っているイベントフラグの管理ブロック */ 90 FLGPTN waiptn; /* 待ちパターン */ 91 MODE wfmode; /* 待ちモード */ 92 FLGPTN flgptn; /* 待ち解除時のパターン */ 98 93 } WINFO_FLG; 99 94 100 95 /* 101 * gpµÄ¢È¢CxgtOÇubNÌXg96 * 使用していないイベントフラグ管理ブロックのリスト 102 97 */ 103 98 extern QUEUE free_flgcb; 104 99 105 100 /* 106 * CxgtOIDÌÅålikernel_cfg.cj101 * イベントフラグIDの最大値(kernel_cfg.c) 107 102 */ 108 103 extern const ID tmax_flgid; … … 110 105 111 106 /* 112 * CxgtOú»ubNÌGAikernel_cfg.cj107 * イベントフラグ初期化ブロックのエリア(kernel_cfg.c) 113 108 */ 114 109 extern const FLGINIB flginib_table[]; … … 116 111 117 112 /* 118 * CxgtOÇubNÌGAikernel_cfg.cj113 * イベントフラグ管理ブロックのエリア(kernel_cfg.c) 119 114 */ 120 115 extern FLGCB flgcb_table[]; 121 116 122 117 /* 123 * CxgtOÇubN©çCxgtOIDðæèo·½ßÌ}N118 * イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ 124 119 */ 125 120 #define FLGID(p_flgcb) ((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID)) 126 121 127 122 /* 128 * CxgtO@\Ìú»123 * イベントフラグ機能の初期化 129 124 */ 130 125 extern void initialize_eventflag(void); 131 126 132 127 /* 133 * CxgtOÒ¿ððÌ`FbN128 * イベントフラグ待ち解除条件のチェック 134 129 */ 135 130 extern bool_t check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn, -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/exception.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * CPU áOÇ@\44 * CPU例外管理機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_XSNS_DPN_ENTER … … 73 69 74 70 /* 75 * CPU áOnhÇ@\Ìú»71 * CPU例外ハンドラ管理機能の初期化 76 72 */ 77 73 #ifdef TOPPERS_excini … … 93 89 94 90 /* 95 * CPU áO̶µ½ReLXgÌQÆ91 * CPU例外の発生したコンテキストの参照 96 92 */ 97 93 98 94 /* 99 * CPU áO¶ÌfBXpb`Û¯óÔÌQÆ95 * CPU例外発生時のディスパッチ保留状態の参照 100 96 * 101 * CPU áOnhÅdisdspªÏ»·é±ÆÍÈ¢½ßCCPUáOª¶µ102 * ½ÌdisdspðÛ¶µÄ¨KvÍÈ¢D97 * CPU例外ハンドラ中でdisdspが変化することはないため,CPU例外が発生し 98 * た時のdisdspを保存しておく必要はない. 103 99 */ 104 100 #ifdef TOPPERS_xsns_dpn … … 118 114 119 115 /* 120 * CPU áO¶Ì^XNáOÛ¯óÔÌQÆ116 * CPU例外発生時のタスク例外処理保留状態の参照 121 117 * 122 * CPU áOnhÅp_runtskÆp_runtsk->enatexªÏ»·é±ÆÍÈ¢123 * ½ßCCPUáOª¶µ½Ìp_runtsk->enatexðÛ¶µÄ¨KvÍÈ124 * ¢D118 * CPU例外ハンドラ中でp_runtskとp_runtsk->enatexが変化することはない 119 * ため,CPU例外が発生した時のp_runtsk->enatexを保存しておく必要はな 120 * い. 125 121 */ 126 122 #ifdef TOPPERS_xsns_xpn -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/exception.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * CPU áOÇ@\44 * CPU例外管理機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * CPU áOnhú»ubN53 * CPU例外ハンドラ初期化ブロック 58 54 */ 59 55 typedef struct cpu_exception_handler_initialization_block { 60 EXCNO excno; /* CPU áOnhÔ*/61 ATR excatr; /* CPU áOnh®«*/62 FP exc_entry; /* CPU áOnhÌoüûÌÔn*/56 EXCNO excno; /* CPU例外ハンドラ番号 */ 57 ATR excatr; /* CPU例外ハンドラ属性 */ 58 FP exc_entry; /* CPU例外ハンドラの出入口処理の番地 */ 63 59 } EXCINIB; 64 60 65 61 /* 66 * CPU áOnhÔÌikernel_cfg.cj62 * CPU例外ハンドラ番号の数(kernel_cfg.c) 67 63 */ 68 64 extern const uint_t tnum_excno; 69 65 70 66 /* 71 * CPU áOnhú»ubNÌGAikernel_cfg.cj67 * CPU例外ハンドラ初期化ブロックのエリア(kernel_cfg.c) 72 68 */ 73 69 extern const EXCINIB excinib_table[]; … … 76 72 77 73 /* 78 * CPU áOnhÇ@\Ìú»74 * CPU例外ハンドラ管理機能の初期化 79 75 */ 80 76 extern void initialize_exception(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/genoffset.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 8 8 $ Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 $ 10 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 $ XR[hÉÜÜêÄ¢é±ÆD 16 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 $ Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 $ ̳ÛØKèðfÚ·é±ÆD 22 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 $ ÆD 25 $ (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 $ ñ·é±ÆD 31 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 $ ÆÓ·é±ÆD 10 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 $ スコード中に含まれていること. 16 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 $ の無保証規定を掲載すること. 20 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 $ と. 23 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 $ 報告すること. 27 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 $ 免責すること. 36 32 $ 37 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 $ ÌÓCðíÈ¢D33 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 $ の責任を負わない. 42 38 $ 43 39 $ $Id$ … … 46 42 47 43 $ 48 $ #define fBNeBu̶¬44 $ #defineディレクティブの生成 49 45 $ 50 46 $FUNCTION DEFINE$ … … 53 49 54 50 $ 55 $ rbgÌT[`51 $ ビットのサーチ 56 52 $ 57 53 $FUNCTION SEARCH_BIT$ … … 66 62 67 63 $ 68 $ rbgtB[hÌItZbgÆrbgÊuÌè`̶¬64 $ ビットフィールドのオフセットとビット位置の定義の生成 69 65 $ 70 66 $FUNCTION DEFINE_BIT$ … … 115 111 116 112 $ 117 $ oCgzuÌ`FbN113 $ バイト配置のチェック 118 114 $ 119 115 $FUNCTION MAGIC_CHECK$ … … 144 140 145 141 $ 146 $ t@Cwb_̶¬142 $ ファイルヘッダの生成 147 143 $ 148 144 $FILE "offset.h"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/interrupt.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * ÝÇ@\44 * 割込み管理機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * g[XO}NÌftHgè`53 * トレースログマクロのデフォルト定義 58 54 */ 59 55 #ifndef LOG_ISR_ENTER … … 114 110 115 111 /* 116 * ÝT[rX[`Ì112 * 割込みサービスルーチンの数 117 113 */ 118 114 #define tnum_isr ((uint_t)(tmax_isrid - TMIN_SEMID + 1) + tnum_sisr) 119 115 120 116 /* 121 * ÝT[rX[`ID©çÝT[rX[`ÇubNðæ122 * èo·½ßÌ}N117 * 割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取 118 * り出すためのマクロ 123 119 */ 124 120 #define INDEX_ISR(isrid) ((uint_t)((isrid) - TMIN_ISRID) + tnum_sisr) … … 126 122 127 123 /* 128 * ÝT[rX[`L 129 [ÖÌo^ 124 * 割込みサービスルーチンキューへの登録 130 125 */ 131 126 Inline void … … 147 142 148 143 /* 149 * gpµÄ¢È¢ÝT[rX[`ÇubNÌXg144 * 使用していない割込みサービスルーチン管理ブロックのリスト 150 145 */ 151 146 QUEUE free_isrcb; 152 147 153 148 /* 154 * ÝT[rX[`@\Ìú»149 * 割込みサービスルーチン機能の初期化 155 150 */ 156 151 void … … 182 177 183 178 /* 184 * ÝT[rX[`ÌÄoµ179 * 割込みサービスルーチンの呼出し 185 180 */ 186 181 #ifdef TOPPERS_isrcal … … 202 197 203 198 if (p_queue->p_next != p_isr_queue) { 204 /* ISR ÌÄoµOÌóÔÉß·*/199 /* ISRの呼出し前の状態に戻す */ 205 200 if (i_sense_lock()) { 206 201 i_unlock_cpu(); … … 214 209 215 210 /* 216 * ÝT[rX[`ÄoµL 217 [Ìõ 211 * 割込みサービスルーチン呼出しキューの検索 218 212 */ 219 213 Inline QUEUE * … … 246 240 247 241 /* 248 * ÝT[rX[`̶¬242 * 割込みサービスルーチンの生成 249 243 */ 250 244 #ifdef TOPPERS_acre_isr … … 295 289 296 290 /* 297 * ÝT[rX[`Ìí291 * 割込みサービスルーチンの削除 298 292 */ 299 293 #ifdef TOPPERS_del_isr … … 332 326 333 327 /* 334 * ÝÇ@\Ìú»328 * 割込み管理機能の初期化 335 329 */ 336 330 #ifdef TOPPERS_intini … … 358 352 359 353 /* 360 * ÝÌÖ~354 * 割込みの禁止 361 355 */ 362 356 #ifdef TOPPERS_dis_int … … 396 390 397 391 /* 398 * ÝÌÂ392 * 割込みの許可 399 393 */ 400 394 #ifdef TOPPERS_ena_int … … 434 428 435 429 /* 436 * ÝDæx}XNÌÏX430 * 割込み優先度マスクの変更 437 431 */ 438 432 #ifdef TOPPERS_chg_ipm … … 476 470 477 471 /* 478 * ÝDæx}XNÌQÆ472 * 割込み優先度マスクの参照 479 473 */ 480 474 #ifdef TOPPERS_get_ipm -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/interrupt.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * ÝÇ@\44 * 割込み管理機能 49 45 */ 50 46 … … 53 49 54 50 /* 55 * ÝT[rX[`ú»ubN51 * 割込みサービスルーチン初期化ブロック 56 52 */ 57 53 typedef struct isr_initialization_block { 58 ATR isratr; /* ÝT[rX[`®« */ 59 intptr_t exinf; /* ÝT[rX[`Ìg£îñ */ 60 INTNO intno; /* ÝT[rX[`ðo^·éÝÔ */ 61 QUEUE *p_isr_queue; /* o^æÝT[rX[`L 62 [ÌÔn */ 63 ISR isr; /* ÝT[rX[`ÌæªÔn */ 64 PRI isrpri; /* ÝT[rX[`Dæx */ 54 ATR isratr; /* 割込みサービスルーチン属性 */ 55 intptr_t exinf; /* 割込みサービスルーチンの拡張情報 */ 56 INTNO intno; /* 割込みサービスルーチンを登録する割込み番号 */ 57 QUEUE *p_isr_queue; /* 登録先割込みサービスルーチンキューの番地 */ 58 ISR isr; /* 割込みサービスルーチンの先頭番地 */ 59 PRI isrpri; /* 割込みサービスルーチン優先度 */ 65 60 } ISRINIB; 66 61 67 62 /* 68 * ÝT[rX[`ÇubN63 * 割込みサービスルーチン管理ブロック 69 64 */ 70 65 typedef struct isr_control_block { 71 QUEUE isr_queue; /* ÝT[rX[`ÄoµL 72 [ */ 73 const ISRINIB *p_isrinib; /* ú»ubNÖÌ|C^ */ 66 QUEUE isr_queue; /* 割込みサービスルーチン呼出しキュー */ 67 const ISRINIB *p_isrinib; /* 初期化ブロックへのポインタ */ 74 68 } ISRCB; 75 69 76 70 /* 77 * ÝT[rX[`ÄoµL 78 [ðõ·é½ßÌf[^\¢ 71 * 割込みサービスルーチン呼出しキューを検索するためのデータ構造 79 72 */ 80 73 typedef struct { 81 INTNO intno; /* ÝÔ */ 82 QUEUE *p_isr_queue; /* ÝT[rX[`ÄoµL 83 [ */ 74 INTNO intno; /* 割込み番号 */ 75 QUEUE *p_isr_queue; /* 割込みサービスルーチン呼出しキュー */ 84 76 } ISR_ENTRY; 85 77 86 78 /* 87 * ÝT[rX[`L 88 [ÌGgikernel_cfg.cj 79 * 割込みサービスルーチンキューのエントリ数(kernel_cfg.c) 89 80 */ 90 81 extern const uint_t tnum_isr_queue; 91 82 92 83 /* 93 * ÝT[rX[`L 94 [Xgikernel_cfg.cj 84 * 割込みサービスルーチンキューリスト(kernel_cfg.c) 95 85 */ 96 86 extern const ISR_ENTRY isr_queue_list[]; 97 87 98 88 /* 99 * ÝT[rX[`L 100 [ÌGAikernel_cfg.cj 89 * 割込みサービスルーチンキューのエリア(kernel_cfg.c) 101 90 */ 102 91 extern QUEUE isr_queue_table[]; 103 92 104 93 /* 105 * gpµÄ¢È¢ÝT[rX[`ÇubNÌXg94 * 使用していない割込みサービスルーチン管理ブロックのリスト 106 95 */ 107 96 extern QUEUE free_isrcb; 108 97 109 98 /* 110 * ÝT[rX[`IDÌÅålikernel_cfg.cj99 * 割込みサービスルーチンIDの最大値(kernel_cfg.c) 111 100 * 112 * ÃIɶ¬³êéÝT[rX[`ÍIDÔð½È¢½ßC113 * tmax_isrid Í®Iɶ¬³êéÝT[rX[`ÌIDÔÌÅål114 * Å éDÃIɶ¬³êéÝT[rX[`ÌÍCtnum_sisrÉÛ115 * ·éD101 * 静的に生成される割込みサービスルーチンはID番号を持たないため, 102 * tmax_isridは動的に生成される割込みサービスルーチンのID番号の最大値 103 * である.静的に生成される割込みサービスルーチンの数は,tnum_sisrに保 104 * 持する. 116 105 */ 117 106 extern const ID tmax_isrid; … … 119 108 120 109 /* 121 * ÝT[rX[`ú»ubNÌGAikernel_cfg.cj110 * 割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c) 122 111 */ 123 112 extern const ISRINIB sisrinib_table[]; … … 125 114 126 115 /* 127 * ÝT[rX[`ÇubNÌGAikernel_cfg.cj116 * 割込みサービスルーチン管理ブロックのエリア(kernel_cfg.c) 128 117 */ 129 118 extern ISRCB isrcb_table[]; 130 119 131 120 /* 132 * ÝT[rX[`ÇubN©çÝT[rX[`IDðæ133 * èo·½ßÌ}N121 * 割込みサービスルーチン管理ブロックから割込みサービスルーチンIDを取 122 * り出すためのマクロ 134 123 */ 135 124 #define ISRID(p_isrcb) ((ID)(((p_isrcb) - isrcb_table) \ … … 137 126 138 127 /* 139 * ÝT[rX[`@\Ìú»128 * 割込みサービスルーチン機能の初期化 140 129 */ 141 130 extern void initialize_isr(void); 142 131 143 132 /* 144 * ÝT[rX[`ÌÄoµ133 * 割込みサービスルーチンの呼出し 145 134 */ 146 135 extern void call_isr(QUEUE *p_isr_queue); … … 149 138 150 139 /* 151 * Ýnhú»ubN140 * 割込みハンドラ初期化ブロック 152 141 */ 153 142 typedef struct interrupt_handler_initialization_block { 154 INHNO inhno; /* ÝnhÔ*/155 ATR inhatr; /* Ýnh®«*/156 FP int_entry; /* ÝnhÌoüûÌÔn*/143 INHNO inhno; /* 割込みハンドラ番号 */ 144 ATR inhatr; /* 割込みハンドラ属性 */ 145 FP int_entry; /* 割込みハンドラの出入口処理の番地 */ 157 146 } INHINIB; 158 147 159 148 /* 160 * ÝvCú»ubN149 * 割込み要求ライン初期化ブロック 161 150 */ 162 151 typedef struct interrupt_request_initialization_block { 163 INTNO intno; /* ÝÔ*/164 ATR intatr; /* Ý®«*/165 PRI intpri; /* ÝDæx*/152 INTNO intno; /* 割込み番号 */ 153 ATR intatr; /* 割込み属性 */ 154 PRI intpri; /* 割込み優先度 */ 166 155 } INTINIB; 167 156 168 157 /* 169 * ÝnhÔÌikernel_cfg.cj158 * 割込みハンドラ番号の数(kernel_cfg.c) 170 159 */ 171 160 extern const uint_t tnum_inhno; 172 161 173 162 /* 174 * Ýnhú»ubNÌGAikernel_cfg.cj163 * 割込みハンドラ初期化ブロックのエリア(kernel_cfg.c) 175 164 */ 176 165 extern const INHINIB inhinib_table[]; 177 166 178 167 /* 179 * ÝvCÌikernel_cfg.cj168 * 割込み要求ラインの数(kernel_cfg.c) 180 169 */ 181 170 extern const uint_t tnum_intno; 182 171 183 172 /* 184 * ÝvCú»ubNÌGAikernel_cfg.cj173 * 割込み要求ライン初期化ブロックのエリア(kernel_cfg.c) 185 174 */ 186 175 extern const INTINIB intinib_table[]; … … 189 178 190 179 /* 191 * ÝÇ@\Ìú»180 * 割込み管理機能の初期化 192 181 */ 193 182 extern void initialize_interrupt(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 9 9 $ Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 $ 11 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 $ XR[hÉÜÜêÄ¢é±ÆD 17 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 $ Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 $ ̳ÛØKèðfÚ·é±ÆD 23 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 $ ÆD 26 $ (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 $ ñ·é±ÆD 32 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 $ ÆÓ·é±ÆD 11 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 $ スコード中に含まれていること. 17 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 $ の無保証規定を掲載すること. 21 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 $ と. 24 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 $ 報告すること. 28 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 $ 免責すること. 37 33 $ 38 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 $ ÌÓCðíÈ¢D34 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 $ の責任を負わない. 43 39 $ 44 40 $ $Id$ … … 47 43 48 44 $ ===================================================================== 49 $ AID_YYY Ì45 $ AID_YYYの処理 50 46 $ ===================================================================== 51 47 52 48 $num_atskid = 0$ 53 49 $FOREACH i ATSK.ORDER_LIST$ 54 $ // notsk ªÌêiE_PARj50 $ // notskが負の場合(E_PAR) 55 51 $IF ATSK.NOTSK[i] < 0$ 56 52 $ERROR ATSK.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "notsk", ATSK.NOTSK[i], "AID_TSK")$$END$ … … 62 58 $num_asemid = 0$ 63 59 $FOREACH i ASEM.ORDER_LIST$ 64 $ // nosem ªÌêiE_PARj60 $ // nosemが負の場合(E_PAR) 65 61 $IF ASEM.NOSEM[i] < 0$ 66 62 $ERROR ASEM.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nosem", ASEM.NOSEM[i], "AID_SEM")$$END$ … … 72 68 $num_aflgid = 0$ 73 69 $FOREACH i AFLG.ORDER_LIST$ 74 $ // noflg ªÌêiE_PARj70 $ // noflgが負の場合(E_PAR) 75 71 $IF AFLG.NOFLG[i] < 0$ 76 72 $ERROR AFLG.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "noflg", AFLG.NOFLG[i], "AID_FLG")$$END$ … … 82 78 $num_adtqid = 0$ 83 79 $FOREACH i ADTQ.ORDER_LIST$ 84 $ // nodtq ªÌêiE_PARj80 $ // nodtqが負の場合(E_PAR) 85 81 $IF ADTQ.NODTQ[i] < 0$ 86 82 $ERROR ADTQ.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nodtq", ADTQ.NODTQ[i], "AID_DTQ")$$END$ … … 92 88 $num_apdqid = 0$ 93 89 $FOREACH i APDQ.ORDER_LIST$ 94 $ // nopdq ªÌêiE_PARj90 $ // nopdqが負の場合(E_PAR) 95 91 $IF APDQ.NOPDQ[i] < 0$ 96 92 $ERROR APDQ.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nopdq", APDQ.NOPDQ[i], "AID_PDQ")$$END$ … … 102 98 $num_ambxid = 0$ 103 99 $FOREACH i AMBX.ORDER_LIST$ 104 $ // nombx ªÌêiE_PARj100 $ // nombxが負の場合(E_PAR) 105 101 $IF AMBX.NOMBX[i] < 0$ 106 102 $ERROR AMBX.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nombx", AMBX.NOMBX[i], "AID_MBX")$$END$ … … 112 108 $num_ampfid = 0$ 113 109 $FOREACH i AMPF.ORDER_LIST$ 114 $ // nompf ªÌêiE_PARj110 $ // nompfが負の場合(E_PAR) 115 111 $IF AMPF.NOMPF[i] < 0$ 116 112 $ERROR AMPF.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nompf", AMPF.NOMPF[i], "AID_MPF")$$END$ … … 122 118 $num_acycid = 0$ 123 119 $FOREACH i ACYC.ORDER_LIST$ 124 $ // nocyc ªÌêiE_PARj120 $ // nocycが負の場合(E_PAR) 125 121 $IF ACYC.NOCYC[i] < 0$ 126 122 $ERROR ACYC.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "nocyc", ACYC.NOCYC[i], "AID_CYC")$$END$ … … 132 128 $num_aalmid = 0$ 133 129 $FOREACH i AALM.ORDER_LIST$ 134 $ // noalm ªÌêiE_PARj130 $ // noalmが負の場合(E_PAR) 135 131 $IF AALM.NOALM[i] < 0$ 136 132 $ERROR AALM.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "noalm", AALM.NOALM[i], "AID_ALM")$$END$ … … 142 138 $num_aisrid = 0$ 143 139 $FOREACH i AISR.ORDER_LIST$ 144 $ // noisr ªÌêiE_PARj140 $ // noisrが負の場合(E_PAR) 145 141 $IF AISR.NOISR[i] < 0$ 146 142 $ERROR AISR.TEXT_LINE[i]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "noisr", AISR.NOISR[i], "AID_ISR")$$END$ … … 152 148 153 149 $ ===================================================================== 154 $ kernel_cfg.h ̶¬150 $ kernel_cfg.hの生成 155 151 $ ===================================================================== 156 152 … … 202 198 203 199 $ ===================================================================== 204 $ kernel_cfg.c ̶¬200 $ kernel_cfg.cの生成 205 201 $ ===================================================================== 206 202 … … 216 212 217 213 $ 218 $ CN[hfBNeBui#includej214 $ インクルードディレクティブ(#include) 219 215 $ 220 216 /*$NL$ … … 226 222 227 223 $ 228 $ IuWFNgÌIDÔðÛ·éÏ224 $ オブジェクトのID番号を保持する変数 229 225 $ 230 226 $IF USE_EXTERNAL_ID$ … … 263 259 264 260 $ 265 $ ^XN261 $ タスク 266 262 $ 267 263 /*$NL$ … … 270 266 $NL$ 271 267 272 $ ÃIɶ¬³ê½^XNª1ÂÈã¶Ý·é±ÆÌ`FbN268 $ 静的に生成されたタスクが1個以上存在することのチェック 273 269 $IF !LENGTH(TSK.ID_LIST)$ 274 270 $ERROR$$FORMAT(_("no task is registered"))$$END$ 275 271 $END$ 276 272 277 $ ÃIɶ¬³ê½^XNÌ273 $ 静的に生成されたタスクの数 278 274 #define TNUM_STSKID $LENGTH(TSK.ID_LIST)$$NL$ 279 275 $NL$ 280 276 281 $ ^XNIDÔÌÅål277 $ タスクID番号の最大値 282 278 const ID _kernel_tmax_tskid = (TMIN_TSKID + TNUM_TSKID - 1);$NL$ 283 279 const ID _kernel_tmax_stskid = (TMIN_TSKID + TNUM_STSKID - 1);$NL$ 284 280 $NL$ 285 281 286 $ G[`FbN282 $ エラーチェック 287 283 $FOREACH tskid TSK.ID_LIST$ 288 $ // tskatr ªimTA_ACTnjÅÈ¢êiE_RSATRj284 $ // tskatrが([TA_ACT])でない場合(E_RSATR) 289 285 $IF (TSK.TSKATR[tskid] & ~(TA_ACT|TARGET_TSKATR)) != 0$ 290 286 $ERROR TSK.TEXT_LINE[tskid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "tskatr", TSK.TSKATR[tskid], tskid, "CRE_TSK")$$END$ 291 287 $END$ 292 288 293 $ // (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI) ÅÈ¢êiE_PARj289 $ // (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合(E_PAR) 294 290 $IF !(TMIN_TPRI <= TSK.ITSKPRI[tskid] && TSK.ITSKPRI[tskid] <= TMAX_TPRI)$ 295 291 $ERROR TSK.TEXT_LINE[tskid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "itskpri", TSK.ITSKPRI[tskid], tskid, "CRE_TSK")$$END$ 296 292 $END$ 297 293 298 $ // texatr ªiTA_NULLjÅÈ¢êiE_RSATRj294 $ // texatrが(TA_NULL)でない場合(E_RSATR) 299 295 $IF LENGTH(TSK.TEXATR[tskid]) && TSK.TEXATR[tskid] != 0$ 300 296 $ERROR DEF_TEX.TEXT_LINE[tskid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "texatr", TSK.TEXATR[tskid], tskid, "DEF_TEX")$$END$ … … 302 298 $END$ 303 299 304 $ X^bNÌæ̶¬Æ»êÉÖ·éG[`FbN300 $ スタック領域の生成とそれに関するエラーチェック 305 301 $FOREACH tskid TSK.ID_LIST$ 306 $ // stksz ª0Ⱥ©C^[Qbgè`ÌŬliTARGET_MIN_STKSZjæèà307 $ // ¬³¢êiE_PARj302 $ // stkszが0以下か,ターゲット定義の最小値(TARGET_MIN_STKSZ)よりも 303 $ // 小さい場合(E_PAR) 308 304 $IF TSK.STKSZ[tskid] <= 0 || (TARGET_MIN_STKSZ 309 305 && TSK.STKSZ[tskid] < TARGET_MIN_STKSZ)$ … … 311 307 $END$ 312 308 313 $ // stksz ªX^bNÌæÌTCYƵijµÈ¢êiE_PARj309 $ // stkszがスタック領域のサイズとして正しくない場合(E_PAR) 314 310 $IF !EQ(TSK.STK[tskid], "NULL") && CHECK_STKSZ_ALIGN 315 311 && (TSK.STKSZ[tskid] & (CHECK_STKSZ_ALIGN - 1))$ … … 328 324 $NL$ 329 325 330 $ ^XNú»ubN̶¬i^XNÍ1ÂÈã¶Ý·éj326 $ タスク初期化ブロックの生成(タスクは1個以上存在する) 331 327 const TINIB _kernel_tinib_table[TNUM_STSKID] = {$NL$ 332 328 $JOINEACH tskid TSK.ID_LIST ",\n"$ 333 $ // ^XN®«Cg£îñCN®ÔnCN®Dæx329 $ // タスク属性,拡張情報,起動番地,起動時優先度 334 330 $TAB${ 335 331 $SPC$($TSK.TSKATR[tskid]$), (intptr_t)($TSK.EXINF[tskid]$), 336 332 $SPC$((TASK)($TSK.TASK[tskid]$)), INT_PRIORITY($TSK.ITSKPRI[tskid]$), 337 333 338 $ // ^XNú»ReLXgubNCX^bNÌæ334 $ // タスク初期化コンテキストブロック,スタック領域 339 335 $IF USE_TSKINICTXB$ 340 336 $GENERATE_TSKINICTXB(tskid)$ … … 343 339 $END$ 344 340 345 $ // ^XNáO[`Ì®«ÆN®Ôn341 $ // タスク例外処理ルーチンの属性と起動番地 346 342 $SPC$($ALT(TSK.TEXATR[tskid],"TA_NULL")$), ($ALT(TSK.TEXRTN[tskid],"NULL")$) } 347 343 $END$$NL$ … … 349 345 $NL$ 350 346 351 $ ®I¶¬^XNpÌ^XNú»ubN̶¬347 $ 動的生成タスク用のタスク初期化ブロックの生成 352 348 $IF num_atskid > 0$ 353 349 TINIB _kernel_atinib_table[$num_atskid$];$NL$ … … 356 352 $END$$NL$ 357 353 358 $ ^XNÇubN̶¬354 $ タスク管理ブロックの生成 359 355 TCB _kernel_tcb_table[TNUM_TSKID];$NL$ 360 356 $NL$ 361 357 362 $ ^XN¶¬e[u̶¬358 $ タスク生成順序テーブルの生成 363 359 const ID _kernel_torder_table[TNUM_STSKID] = {$NL$ 364 360 $TAB$$JOINEACH tskid TSK.ORDER_LIST ", "$$tskid$$END$$NL$ … … 367 363 368 364 $ 369 $ Z}tH365 $ セマフォ 370 366 $ 371 367 /*$NL$ … … 374 370 $NL$ 375 371 376 $ ÃIɶ¬³ê½Z}tHÌ372 $ 静的に生成されたセマフォの数 377 373 #define TNUM_SSEMID $LENGTH(SEM.ID_LIST)$$NL$ 378 374 $NL$ 379 375 380 $ Z}tHIDÔÌÅål376 $ セマフォID番号の最大値 381 377 const ID _kernel_tmax_semid = (TMIN_SEMID + TNUM_SEMID - 1);$NL$ 382 378 const ID _kernel_tmax_ssemid = (TMIN_SEMID + TNUM_SSEMID - 1);$NL$ 383 379 $NL$ 384 380 385 $ Z}tHú»ubN̶¬381 $ セマフォ初期化ブロックの生成 386 382 $IF LENGTH(SEM.ID_LIST)$ 387 383 const SEMINIB _kernel_seminib_table[TNUM_SSEMID] = {$NL$ 388 384 $JOINEACH semid SEM.ID_LIST ",\n"$ 389 $ // sematr ªimTA_TPRInjÅÈ¢êiE_RSATRj385 $ // sematrが([TA_TPRI])でない場合(E_RSATR) 390 386 $IF (SEM.SEMATR[semid] & ~TA_TPRI) != 0$ 391 387 $ERROR SEM.TEXT_LINE[semid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "sematr", SEM.SEMATR[semid], semid, "CRE_SEM")$$END$ 392 388 $END$ 393 389 394 $ // (0 <= isemcnt && isemcnt <= maxsem) ÅÈ¢êiE_PARj390 $ // (0 <= isemcnt && isemcnt <= maxsem)でない場合(E_PAR) 395 391 $IF !(0 <= SEM.ISEMCNT[semid] && SEM.ISEMCNT[semid] <= SEM.MAXSEM[semid])$ 396 392 $ERROR SEM.TEXT_LINE[semid]$E_PAR: $FORMAT(_("too large %1% `%2%\' of `%3%\' in %4%"), "isemcnt", SEM.ISEMCNT[semid], semid, "CRE_SEM")$$END$ 397 393 $END$ 398 394 399 $ // (1 <= maxsem && maxsem <= TMAX_MAXSEM) ÅÈ¢êiE_PARj395 $ // (1 <= maxsem && maxsem <= TMAX_MAXSEM)でない場合(E_PAR) 400 396 $IF !(1 <= SEM.MAXSEM[semid] && SEM.MAXSEM[semid] <= TMAX_MAXSEM)$ 401 397 $ERROR SEM.TEXT_LINE[semid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "maxsem", SEM.MAXSEM[semid], semid, "CRE_SEM")$$END$ 402 398 $END$ 403 399 404 $ // Z}tHú»ubN400 $ // セマフォ初期化ブロック 405 401 $TAB${ ($SEM.SEMATR[semid]$), ($SEM.ISEMCNT[semid]$), ($SEM.MAXSEM[semid]$) } 406 402 $END$$NL$ … … 410 406 $END$$NL$ 411 407 412 $ ®I¶¬Z}tHpÌZ}tHú»ubN̶¬408 $ 動的生成セマフォ用のセマフォ初期化ブロックの生成 413 409 $IF num_asemid > 0$ 414 410 SEMINIB _kernel_aseminib_table[$num_asemid$];$NL$ … … 417 413 $END$$NL$ 418 414 419 $ Z}tHÇubN̶¬415 $ セマフォ管理ブロックの生成 420 416 $IF num_semid > 0$ 421 417 SEMCB _kernel_semcb_table[TNUM_SEMID];$NL$ … … 425 421 426 422 $ 427 $ CxgtO423 $ イベントフラグ 428 424 $ 429 425 /*$NL$ … … 432 428 $NL$ 433 429 434 $ ÃIɶ¬³ê½CxgtOÌ430 $ 静的に生成されたイベントフラグの数 435 431 #define TNUM_SFLGID $LENGTH(FLG.ID_LIST)$$NL$ 436 432 $NL$ 437 433 438 $ CxgtOIDÔÌÅål434 $ イベントフラグID番号の最大値 439 435 const ID _kernel_tmax_flgid = (TMIN_FLGID + TNUM_FLGID - 1);$NL$ 440 436 const ID _kernel_tmax_sflgid = (TMIN_FLGID + TNUM_SFLGID - 1);$NL$ 441 437 $NL$ 442 438 443 $ CxgtOú»ubN̶¬439 $ イベントフラグ初期化ブロックの生成 444 440 $IF LENGTH(FLG.ID_LIST)$ 445 441 const FLGINIB _kernel_flginib_table[TNUM_SFLGID] = {$NL$ 446 442 $JOINEACH flgid FLG.ID_LIST ",\n"$ 447 $ // flgatr ªimTA_TPRInbmTA_WMULnbmTA_CLRnjÅÈ¢êiE_RSATRj443 $ // flgatrが([TA_TPRI]|[TA_WMUL]|[TA_CLR])でない場合(E_RSATR) 448 444 $IF (FLG.FLGATR[flgid] & ~(TA_TPRI|TA_WMUL|TA_CLR)) != 0$ 449 445 $ERROR FLG.TEXT_LINE[flgid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "flgatr", FLG.FLGATR[flgid], flgid, "CRE_FLG")$$END$ 450 446 $END$ 451 447 452 $ // iflgptn ªFLGPTNÉi[Å«È¢êiE_PARj448 $ // iflgptnがFLGPTNに格納できない場合(E_PAR) 453 449 $IF (FLG.IFLGPTN[flgid] & ~((1 << TBIT_FLGPTN) - 1)) != 0$ 454 450 $ERROR FLG.TEXT_LINE[flgid]$E_PAR: $FORMAT(_("too large %1% `%2%\' of `%3%\' in %4%"), "iflgptn", FLG.IFLGPTN[flgid], flgid, "CRE_FLG")$$END$ 455 451 $END$ 456 452 457 $ // CxgtOú»ubN453 $ // イベントフラグ初期化ブロック 458 454 $TAB${ ($FLG.FLGATR[flgid]$), ($FLG.IFLGPTN[flgid]$) } 459 455 $END$$NL$ … … 463 459 $END$$NL$ 464 460 465 $ ®I¶¬CxgtOpÌCxgtOú»ubN̶¬461 $ 動的生成イベントフラグ用のイベントフラグ初期化ブロックの生成 466 462 $IF num_aflgid > 0$ 467 463 FLGINIB _kernel_aflginib_table[$num_aflgid$];$NL$ … … 470 466 $END$$NL$ 471 467 472 $ CxgtOÇubN̶¬468 $ イベントフラグ管理ブロックの生成 473 469 $IF num_flgid > 0$ 474 470 FLGCB _kernel_flgcb_table[TNUM_FLGID];$NL$ … … 478 474 479 475 $ 480 $ f[^L 481 [ 476 $ データキュー 482 477 $ 483 478 /*$NL$ … … 486 481 $NL$ 487 482 488 $ ÃIɶ¬³ê½f[^L 489 [Ì 483 $ 静的に生成されたデータキューの数 490 484 #define TNUM_SDTQID $LENGTH(DTQ.ID_LIST)$$NL$ 491 485 $NL$ 492 486 493 $ f[^L 494 [IDÔÌÅål 487 $ データキューID番号の最大値 495 488 const ID _kernel_tmax_dtqid = (TMIN_DTQID + TNUM_DTQID - 1);$NL$ 496 489 const ID _kernel_tmax_sdtqid = (TMIN_DTQID + TNUM_SDTQID - 1);$NL$ … … 499 492 $IF LENGTH(DTQ.ID_LIST)$ 500 493 $FOREACH dtqid DTQ.ID_LIST$ 501 $ // dtqatr ªimTA_TPRInjÅÈ¢êiE_RSATRj494 $ // dtqatrが([TA_TPRI])でない場合(E_RSATR) 502 495 $IF (DTQ.DTQATR[dtqid] & ~TA_TPRI) != 0$ 503 496 $ERROR DTQ.TEXT_LINE[dtqid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqatr", DTQ.DTQATR[dtqid], dtqid, "CRE_DTQ")$$END$ 504 497 $END$ 505 498 506 $ // dtqcnt ªÌêiE_PARj499 $ // dtqcntが負の場合(E_PAR) 507 500 $IF DTQ.DTQCNT[dtqid] < 0$ 508 501 $ERROR DTQ.TEXT_LINE[dtqid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqcnt", DTQ.DTQCNT[dtqid], dtqid, "CRE_DTQ")$$END$ 509 502 $END$ 510 503 511 $ // dtqmb ªNULLÅÈ¢êiE_NOSPTj504 $ // dtqmbがNULLでない場合(E_NOSPT) 512 505 $IF !EQ(DTQ.DTQMB[dtqid], "NULL")$ 513 506 $ERROR DTQ.TEXT_LINE[dtqid]$E_NOSPT: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "dtqmb", DTQ.DTQMB[dtqid], dtqid, "CRE_DTQ")$$END$ 514 507 $END$ 515 508 516 $ // f[^L 517 [ÇÌæ 509 $ // データキュー管理領域 518 510 $IF DTQ.DTQCNT[dtqid]$ 519 511 static DTQMB _kernel_dtqmb_$dtqid$[$DTQ.DTQCNT[dtqid]$];$NL$ … … 521 513 $END$ 522 514 523 $ // f[^L 524 [ú»ubN̶¬ 515 $ // データキュー初期化ブロックの生成 525 516 const DTQINIB _kernel_dtqinib_table[TNUM_SDTQID] = {$NL$ 526 517 $JOINEACH dtqid DTQ.ID_LIST ",\n"$ … … 532 523 $END$$NL$ 533 524 534 $ ®I¶¬f[^L 535 [pÌf[^L 536 [ú»ubN̶¬ 525 $ 動的生成データキュー用のデータキュー初期化ブロックの生成 537 526 $IF num_adtqid > 0$ 538 527 DTQINIB _kernel_adtqinib_table[$num_adtqid$];$NL$ … … 541 530 $END$$NL$ 542 531 543 $ f[^L 544 [ÇubN̶¬ 532 $ データキュー管理ブロックの生成 545 533 $IF num_dtqid > 0$ 546 534 DTQCB _kernel_dtqcb_table[TNUM_DTQID];$NL$ … … 550 538 551 539 $ 552 $ Dæxf[^L 553 [ 540 $ 優先度データキュー 554 541 $ 555 542 /*$NL$ … … 558 545 $NL$ 559 546 560 $ ÃIɶ¬³ê½Dæxf[^L 561 [Ì 547 $ 静的に生成された優先度データキューの数 562 548 #define TNUM_SPDQID $LENGTH(PDQ.ID_LIST)$$NL$ 563 549 $NL$ 564 550 565 $ Dæxf[^L 566 [IDÔÌÅål 551 $ 優先度データキューID番号の最大値 567 552 const ID _kernel_tmax_pdqid = (TMIN_PDQID + TNUM_PDQID - 1);$NL$ 568 553 const ID _kernel_tmax_spdqid = (TMIN_PDQID + TNUM_SPDQID - 1);$NL$ … … 571 556 $IF LENGTH(PDQ.ID_LIST)$ 572 557 $FOREACH pdqid PDQ.ID_LIST$ 573 $ // pdqatr ªimTA_TPRInjÅÈ¢êiE_RSATRj558 $ // pdqatrが([TA_TPRI])でない場合(E_RSATR) 574 559 $IF (PDQ.PDQATR[pdqid] & ~TA_TPRI) != 0$ 575 560 $ERROR PDQ.TEXT_LINE[pdqid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "pdqatr", PDQ.PDQATR[pdqid], pdqid, "CRE_PDQ")$$END$ 576 561 $END$ 577 562 578 $ // pdqcnt ªÌêiE_PARj563 $ // pdqcntが負の場合(E_PAR) 579 564 $IF PDQ.PDQCNT[pdqid] < 0$ 580 565 $ERROR PDQ.TEXT_LINE[pdqid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "pdqcnt", PDQ.PDQCNT[pdqid], pdqid, "CRE_PDQ")$$END$ 581 566 $END$ 582 567 583 $ // (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI) ÅÈ¢êiE_PARj568 $ // (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)でない場合(E_PAR) 584 569 $IF !(TMIN_DPRI <= PDQ.MAXDPRI[pdqid] && PDQ.MAXDPRI[pdqid] <= TMAX_DPRI)$ 585 570 $ERROR PDQ.TEXT_LINE[pdqid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "maxdpri", PDQ.MAXDPRI[pdqid], pdqid, "CRE_PDQ")$$END$ 586 571 $END$ 587 572 588 $ // pdqmb ªNULLÅÈ¢êiE_NOSPTj573 $ // pdqmbがNULLでない場合(E_NOSPT) 589 574 $IF !EQ(PDQ.PDQMB[pdqid], "NULL")$ 590 575 $ERROR PDQ.TEXT_LINE[pdqid]$E_NOSPT: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "pdqmb", PDQ.PDQMB[pdqid], pdqid, "CRE_PDQ")$$END$ 591 576 $END$ 592 577 593 $ // Dæxf[^L 594 [ÇÌæ 578 $ // 優先度データキュー管理領域 595 579 $IF PDQ.PDQCNT[pdqid]$ 596 580 static PDQMB _kernel_pdqmb_$pdqid$[$PDQ.PDQCNT[pdqid]$];$NL$ … … 598 582 $END$ 599 583 600 $ // Dæxf[^L 601 [ú»ubN̶¬ 584 $ // 優先度データキュー初期化ブロックの生成 602 585 const PDQINIB _kernel_pdqinib_table[TNUM_SPDQID] = {$NL$ 603 586 $JOINEACH pdqid PDQ.ID_LIST ",\n"$ … … 609 592 $END$$NL$ 610 593 611 $ ®I¶¬Dæxf[^L 612 [pÌDæxf[^L 613 [ú»ubN̶¬ 594 $ 動的生成優先度データキュー用の優先度データキュー初期化ブロックの生成 614 595 $IF num_apdqid > 0$ 615 596 PDQINIB _kernel_apdqinib_table[$num_apdqid$];$NL$ … … 618 599 $END$$NL$ 619 600 620 $ Dæxf[^L 621 [ÇubN̶¬ 601 $ 優先度データキュー管理ブロックの生成 622 602 $IF num_pdqid > 0$ 623 603 PDQCB _kernel_pdqcb_table[TNUM_PDQID];$NL$ … … 627 607 628 608 $ 629 $ [{bNX609 $ メールボックス 630 610 $ 631 611 /*$NL$ … … 634 614 $NL$ 635 615 636 $ ÃIɶ¬³ê½[{bNXÌ616 $ 静的に生成されたメールボックスの数 637 617 #define TNUM_SMBXID $LENGTH(MBX.ID_LIST)$$NL$ 638 618 $NL$ 639 619 640 $ [{bNXIDÔÌÅål620 $ メールボックスID番号の最大値 641 621 const ID _kernel_tmax_mbxid = (TMIN_MBXID + TNUM_MBXID - 1);$NL$ 642 622 const ID _kernel_tmax_smbxid = (TMIN_MBXID + TNUM_SMBXID - 1);$NL$ 643 623 $NL$ 644 624 645 $ [{bNXú»ubN̶¬625 $ メールボックス初期化ブロックの生成 646 626 $IF LENGTH(MBX.ID_LIST)$ 647 627 const MBXINIB _kernel_mbxinib_table[TNUM_SMBXID] = {$NL$ 648 628 $JOINEACH mbxid MBX.ID_LIST ",\n"$ 649 $ // mbxatr ªimTA_TPRInbmTA_MPRInjÅÈ¢êiE_RSATRj629 $ // mbxatrが([TA_TPRI]|[TA_MPRI])でない場合(E_RSATR) 650 630 $IF (MBX.MBXATR[mbxid] & ~(TA_TPRI|TA_MPRI)) != 0$ 651 631 $ERROR MBX.TEXT_LINE[mbxid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "mbxatr", MBX.MBXATR[mbxid], mbxid, "CRE_MBX")$$END$ 652 632 $END$ 653 633 654 $ // (TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI) ÅÈ¢êiE_PARj634 $ // (TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI)でない場合(E_PAR) 655 635 $IF !(TMIN_MPRI <= MBX.MAXMPRI[mbxid] && MBX.MAXMPRI[mbxid] <= TMAX_MPRI)$ 656 636 $ERROR MBX.TEXT_LINE[mbxid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "maxmpri", MBX.MAXMPRI[mbxid], mbxid, "CRE_MBX")$$END$ 657 637 $END$ 658 638 659 $ // mprihd ªNULLÅÈ¢êiE_NOSPTj639 $ // mprihdがNULLでない場合(E_NOSPT) 660 640 $IF !EQ(MBX.MPRIHD[mbxid], "NULL")$ 661 641 $ERROR MBX.TEXT_LINE[mbxid]$E_NOSPT: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "mprihd", MBX.MPRIHD[mbxid], mbxid, "CRE_MBX")$$END$ 662 642 $END$ 663 643 664 $ // [{bNXú»ubN644 $ // メールボックス初期化ブロック 665 645 $TAB${ ($MBX.MBXATR[mbxid]$), ($MBX.MAXMPRI[mbxid]$) } 666 646 $END$$NL$ … … 670 650 $END$$NL$ 671 651 672 $ ®I¶¬[{bNXpÌ[{bNXú»ubN̶¬652 $ 動的生成メールボックス用のメールボックス初期化ブロックの生成 673 653 $IF num_ambxid > 0$ 674 654 MBXINIB _kernel_ambxinib_table[$num_ambxid$];$NL$ … … 677 657 $END$$NL$ 678 658 679 $ [{bNXÇubN̶¬659 $ メールボックス管理ブロックの生成 680 660 $IF num_mbxid > 0$ 681 661 MBXCB _kernel_mbxcb_table[TNUM_MBXID];$NL$ … … 685 665 686 666 $ 687 $ Åè·v[667 $ 固定長メモリプール 688 668 $ 689 669 /*$NL$ … … 692 672 $NL$ 693 673 694 $ ÃIɶ¬³ê½Åè·v[Ì674 $ 静的に生成された固定長メモリプールの数 695 675 #define TNUM_SMPFID $LENGTH(MPF.ID_LIST)$$NL$ 696 676 $NL$ 697 677 698 $ Åè·v[IDÔÌÅål678 $ 固定長メモリプールID番号の最大値 699 679 const ID _kernel_tmax_mpfid = (TMIN_MPFID + TNUM_MPFID - 1);$NL$ 700 680 const ID _kernel_tmax_smpfid = (TMIN_MPFID + TNUM_SMPFID - 1);$NL$ … … 703 683 $IF LENGTH(MPF.ID_LIST)$ 704 684 $FOREACH mpfid MPF.ID_LIST$ 705 $ // mpfatr ªimTA_TPRInjÅÈ¢êiE_RSATRj685 $ // mpfatrが([TA_TPRI])でない場合(E_RSATR) 706 686 $IF (MPF.MPFATR[mpfid] & ~TA_TPRI) != 0$ 707 687 $ERROR MPF.TEXT_LINE[mpfid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "mpfatr", MPF.MPFATR[mpfid], mpfid, "CRE_MPF")$$END$ 708 688 $END$ 709 689 710 $ // blkcnt ª0ȺÌêiE_PARj690 $ // blkcntが0以下の場合(E_PAR) 711 691 $IF MPF.BLKCNT[mpfid] <= 0$ 712 692 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "blkcnt", MPF.BLKCNT[mpfid], mpfid, "CRE_MPF")$$END$ 713 693 $END$ 714 694 715 $ // blksz ª0ȺÌêiE_PARj695 $ // blkszが0以下の場合(E_PAR) 716 696 $IF MPF.BLKSZ[mpfid] <= 0$ 717 697 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "blksz", MPF.BLKSZ[mpfid], mpfid, "CRE_MPF")$$END$ 718 698 $END$ 719 699 720 $ // Åè·v[Ìæ700 $ // 固定長メモリプール領域 721 701 $IF EQ(MPF.MPF[mpfid], "NULL")$ 722 702 static MPF_T _kernel_mpf_$mpfid$[($MPF.BLKCNT[mpfid]$) * COUNT_MPF_T($MPF.BLKSZ[mpfid]$)];$NL$ 723 703 $END$ 724 704 725 $ // mpfmb ªNULLÅÈ¢êiE_NOSPTj705 $ // mpfmbがNULLでない場合(E_NOSPT) 726 706 $IF !EQ(MPF.MPFMB[mpfid], "NULL")$ 727 707 $ERROR MPF.TEXT_LINE[mpfid]$E_NOSPT: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "mpfmb", MPF.MPFMB[mpfid], mpfid, "CRE_MPF")$$END$ 728 708 $END$ 729 709 730 $ // Åè·v[ÇÌæ710 $ // 固定長メモリプール管理領域 731 711 static MPFMB _kernel_mpfmb_$mpfid$[$MPF.BLKCNT[mpfid]$];$NL$ 732 712 $END$ 733 713 734 $ // Åè·v[ú»ubN̶¬714 $ // 固定長メモリプール初期化ブロックの生成 735 715 const MPFINIB _kernel_mpfinib_table[TNUM_SMPFID] = {$NL$ 736 716 $JOINEACH mpfid MPF.ID_LIST ",\n"$ … … 742 722 $END$$NL$ 743 723 744 $ ®I¶¬Åè·v[pÌÅè·v[ú»ubN̶¬724 $ 動的生成固定長メモリプール用の固定長メモリプール初期化ブロックの生成 745 725 $IF num_ampfid > 0$ 746 726 MPFINIB _kernel_ampfinib_table[$num_ampfid$];$NL$ … … 749 729 $END$$NL$ 750 730 751 $ Åè·v[ÇubN̶¬731 $ 固定長メモリプール管理ブロックの生成 752 732 $IF num_mpfid > 0$ 753 733 MPFCB _kernel_mpfcb_table[TNUM_MPFID];$NL$ … … 757 737 758 738 $ 759 $ üúnh739 $ 周期ハンドラ 760 740 $ 761 741 /*$NL$ … … 764 744 $NL$ 765 745 766 $ ÃIɶ¬³ê½üúnhÌ746 $ 静的に生成された周期ハンドラの数 767 747 #define TNUM_SCYCID $LENGTH(CYC.ID_LIST)$$NL$ 768 748 $NL$ 769 749 770 $ üúnhIDÔÌÅål750 $ 周期ハンドラID番号の最大値 771 751 const ID _kernel_tmax_cycid = (TMIN_CYCID + TNUM_CYCID - 1);$NL$ 772 752 const ID _kernel_tmax_scycid = (TMIN_CYCID + TNUM_SCYCID - 1);$NL$ 773 753 $NL$ 774 754 775 $ üúnhú»e[u̶¬755 $ 周期ハンドラ初期化テーブルの生成 776 756 $IF LENGTH(CYC.ID_LIST)$ 777 757 const CYCINIB _kernel_cycinib_table[TNUM_SCYCID] = {$NL$ 778 758 $JOINEACH cycid CYC.ID_LIST ",\n"$ 779 $ // cycatr ªimTA_STAnjÅÈ¢êiE_RSATRj759 $ // cycatrが([TA_STA])でない場合(E_RSATR) 780 760 $IF (CYC.CYCATR[cycid] & ~TA_STA) != 0$ 781 761 $ERROR CYC.TEXT_LINE[cycid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cycatr", CYC.CYCATR[cycid], cycid, "CRE_CYC")$$END$ 782 762 $END$ 783 763 784 $ // (0 < cyctim && cyctim <= TMAX_RELTIM) ÅÈ¢êiE_PARj764 $ // (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR) 785 765 $IF !(0 < CYC.CYCTIM[cycid] && CYC.CYCTIM[cycid] <= TMAX_RELTIM)$ 786 766 $ERROR CYC.TEXT_LINE[cycid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cyctim", CYC.CYCTIM[cycid], cycid, "CRE_CYC")$$END$ 787 767 $END$ 788 768 789 $ // (0 <= cycphs && cycphs <= TMAX_RELTIM) ÅÈ¢êiE_PARj769 $ // (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR) 790 770 $IF !(0 <= CYC.CYCPHS[cycid] && CYC.CYCPHS[cycid] <= TMAX_RELTIM)$ 791 771 $ERROR CYC.TEXT_LINE[cycid]$E_PAR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "cycphs", CYC.CYCPHS[cycid], cycid, "CRE_CYC")$$END$ 792 772 $END$ 793 773 794 $ // xFcycatrÉTA_STAªÝè³êÄ¢ÄC(cycphs == 0)Ìê774 $ // 警告:cycatrにTA_STAが設定されていて,(cycphs == 0)の場合 795 775 $IF (CYC.CYCATR[cycid] & TA_STA) != 0 && CYC.CYCPHS[cycid] == 0$ 796 776 $WARNING CYC.TEXT_LINE[cycid]$$FORMAT(_("%1% is not recommended when %2% is set to %3% in %4%"), "cycphs==0", "TA_STA", "cycatr", "CRE_CYC")$$END$ 797 777 $END$ 798 778 799 $ // üúnhú»ubN779 $ // 周期ハンドラ初期化ブロック 800 780 $TAB${ ($CYC.CYCATR[cycid]$), (intptr_t)($CYC.EXINF[cycid]$), ($CYC.CYCHDR[cycid]$), ($CYC.CYCTIM[cycid]$), ($CYC.CYCPHS[cycid]$) } 801 781 $END$$NL$ … … 805 785 $END$$NL$ 806 786 807 $ ®I¶¬üúnhpÌüúnhú»ubN̶¬787 $ 動的生成周期ハンドラ用の周期ハンドラ初期化ブロックの生成 808 788 $IF num_acycid > 0$ 809 789 CYCINIB _kernel_acycinib_table[$num_acycid$];$NL$ … … 812 792 $END$$NL$ 813 793 814 $ üúnhÇubN̶¬794 $ 周期ハンドラ管理ブロックの生成 815 795 $IF num_cycid > 0$ 816 796 CYCCB _kernel_cyccb_table[TNUM_CYCID];$NL$ … … 820 800 821 801 $ 822 $ A[nh802 $ アラームハンドラ 823 803 $ 824 804 /*$NL$ … … 827 807 $NL$ 828 808 829 $ ÃIɶ¬³ê½A[nhÌ809 $ 静的に生成されたアラームハンドラの数 830 810 #define TNUM_SALMID $LENGTH(ALM.ID_LIST)$$NL$ 831 811 $NL$ 832 812 833 $ A[nhIDÔÌÅål813 $ アラームハンドラID番号の最大値 834 814 const ID _kernel_tmax_almid = (TMIN_ALMID + TNUM_ALMID - 1);$NL$ 835 815 const ID _kernel_tmax_salmid = (TMIN_ALMID + TNUM_SALMID - 1);$NL$ 836 816 $NL$ 837 817 838 $ A[nhú»ubN̶¬818 $ アラームハンドラ初期化ブロックの生成 839 819 $IF LENGTH(ALM.ID_LIST)$ 840 820 const ALMINIB _kernel_alminib_table[TNUM_SALMID] = {$NL$ 841 821 $JOINEACH almid ALM.ID_LIST ",\n"$ 842 $ // almatr ªiTA_NULLjÅÈ¢êiE_RSATRj822 $ // almatrが(TA_NULL)でない場合(E_RSATR) 843 823 $IF ALM.ALMATR[almid] != 0$ 844 824 $ERROR ALM.TEXT_LINE[almid]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "almatr", ALM.ALMATR[almid], almid, "CRE_ALM")$$END$ 845 825 $END$ 846 826 847 $ // A[nhú»ubN827 $ // アラームハンドラ初期化ブロック 848 828 $TAB${ ($ALM.ALMATR[almid]$), (intptr_t)($ALM.EXINF[almid]$), ($ALM.ALMHDR[almid]$) } 849 829 $END$$NL$ … … 853 833 $END$$NL$ 854 834 855 $ ®I¶¬A[nhpÌA[nhú»ubN̶¬835 $ 動的生成アラームハンドラ用のアラームハンドラ初期化ブロックの生成 856 836 $IF num_aalmid > 0$ 857 837 ALMINIB _kernel_aalminib_table[$num_aalmid$];$NL$ … … 860 840 $END$$NL$ 861 841 862 $ A[nhÇubN̶¬842 $ アラームハンドラ管理ブロックの生成 863 843 $IF num_almid > 0$ 864 844 ALMCB _kernel_almcb_table[TNUM_ALMID];$NL$ … … 868 848 869 849 $ 870 $ ÝÇ@\850 $ 割込み管理機能 871 851 $ 872 852 /*$NL$ … … 875 855 $NL$ 876 856 877 $ ÝÔÆÝnhÔÌÏ·e[uÌì¬857 $ 割込み番号と割込みハンドラ番号の変換テーブルの作成 878 858 $IF LENGTH(INTNO_ATTISR_VALID) != LENGTH(INHNO_ATTISR_VALID)$ 879 859 $ERROR$length of `INTNO_ATTISR_VALID' is different from length of `INHNO_ATTISR_VALID'$END$ … … 887 867 $END$ 888 868 889 $ ÝvCÉÖ·éG[`FbN869 $ 割込み要求ラインに関するエラーチェック 890 870 $i = 0$ 891 871 $FOREACH intno INT.ORDER_LIST$ 892 $ // intno ªCFG_INTÉηéÝÔƵijµÈ¢êiE_PARj872 $ // intnoがCFG_INTに対する割込み番号として正しくない場合(E_PAR) 893 873 $IF !LENGTH(FIND(INTNO_CFGINT_VALID, INT.INTNO[intno]))$ 894 874 $ERROR INT.TEXT_LINE[intno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intno", INT.INTNO[intno], "CFG_INT")$$END$ 895 875 $END$ 896 876 897 $ // intno ªCFG_INTÉæÁÄÝèÏÝÌêiE_OBJj877 $ // intnoがCFG_INTによって設定済みの場合(E_OBJ) 898 878 $j = 0$ 899 879 $FOREACH intno2 INT.ORDER_LIST$ … … 904 884 $END$ 905 885 906 $ // intatr ªimTA_ENAINTnbmTA_EDGEnjÅÈ¢êiE_RSATRj886 $ // intatrが([TA_ENAINT]|[TA_EDGE])でない場合(E_RSATR) 907 887 $IF (INT.INTATR[intno] & ~(TA_ENAINT|TA_EDGE|TARGET_INTATR)) != 0$ 908 888 $ERROR INT.TEXT_LINE[intno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "intatr", INT.INTATR[intno], "intno", INT.INTNO[intno], "CFG_INT")$$END$ 909 889 $END$ 910 890 911 $ // intpri ªCFG_INTÉηéÝDæxƵijµÈ¢êiE_PARj891 $ // intpriがCFG_INTに対する割込み優先度として正しくない場合(E_PAR) 912 892 $IF !LENGTH(FIND(INTPRI_CFGINT_VALID, INT.INTPRI[intno]))$ 913 893 $ERROR INT.TEXT_LINE[intno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intpri", INT.INTPRI[intno], "CFG_INT")$$END$ 914 894 $END$ 915 895 916 $ // J[lÇÉÅè³êÄ¢éintnoÉεÄCintpriÉTMIN_INTPRI917 $ // æèଳ¢lªwè³ê½êiE_OBJj896 $ // カーネル管理に固定されているintnoに対して,intpriにTMIN_INTPRI 897 $ // よりも小さい値が指定された場合(E_OBJ) 918 898 $IF LENGTH(FIND(INTNO_FIX_KERNEL, intno))$ 919 899 $IF INT.INTPRI[intno] < TMIN_INTPRI$ … … 922 902 $END$ 923 903 924 $ // J[lÇOÉÅè³êÄ¢éintnoÉεÄCintpriÉTMIN_INTPRI925 $ // æèଳ¢lªwè³êÈ©Á½êiE_OBJj904 $ // カーネル管理外に固定されているintnoに対して,intpriにTMIN_INTPRI 905 $ // よりも小さい値が指定されなかった場合(E_OBJ) 926 906 $IF LENGTH(FIND(INTNO_FIX_NONKERNEL, intno))$ 927 907 $IF INT.INTPRI[intno] >= TMIN_INTPRI$ … … 932 912 $END$ 933 913 934 $ ÝnhÉÖ·éG[`FbN914 $ 割込みハンドラに関するエラーチェック 935 915 $i = 0$ 936 916 $FOREACH inhno INH.ORDER_LIST$ 937 $ // inhno ªDEF_INHÉηéÝnhÔƵijµÈ¢êiE_PARj917 $ // inhnoがDEF_INHに対する割込みハンドラ番号として正しくない場合(E_PAR) 938 918 $IF !LENGTH(FIND(INHNO_DEFINH_VALID, INH.INHNO[inhno]))$ 939 919 $ERROR INH.TEXT_LINE[inhno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "inhno", INH.INHNO[inhno], "DEF_INH")$$END$ 940 920 $END$ 941 921 942 $ // inhno ªDEF_INHÉæÁÄÝèÏÝÌêiE_OBJj922 $ // inhnoがDEF_INHによって設定済みの場合(E_OBJ) 943 923 $j = 0$ 944 924 $FOREACH inhno2 INH.ORDER_LIST$ … … 949 929 $END$ 950 930 951 $ // inhatr ªiTA_NULLjÅÈ¢êiE_RSATRj931 $ // inhatrが(TA_NULL)でない場合(E_RSATR) 952 932 $IF (INH.INHATR[inhno] & ~TARGET_INHATR) != 0$ 953 933 $ERROR INH.TEXT_LINE[inhno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "inhatr", INH.INHATR[inhno], "inhno", INH.INHNO[inhno], "DEF_INH")$$END$ 954 934 $END$ 955 935 956 $ // J[lÇÉÅè³êÄ¢éinhnoÉεÄCinhatrÉTA_NONKERNEL957 $ // @ªwè³êÄ¢éêiE_RSATRj936 $ // カーネル管理に固定されているinhnoに対して,inhatrにTA_NONKERNEL 937 $ // が指定されている場合(E_RSATR) 958 938 $IF LENGTH(FIND(INHNO_FIX_KERNEL, inhno))$ 959 939 $IF (INH.INHATR[inhno] & TA_NONKERNEL) != 0$ … … 962 942 $END$ 963 943 964 $ // J[lÇOÉÅè³êÄ¢éinhnoÉεÄCinhatrÉTA_NONKERNEL965 $ // ªwè³êĢȢêiE_RSATRj944 $ // カーネル管理外に固定されているinhnoに対して,inhatrにTA_NONKERNEL 945 $ // が指定されていない場合(E_RSATR) 966 946 $IF LENGTH(FIND(INHNO_FIX_NONKERNEL, inhno))$ 967 947 $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$ … … 972 952 $IF LENGTH(INTNO[INH.INHNO[inhno]])$ 973 953 $intno = INTNO[INH.INHNO[inhno]]$ 974 $ // inhno ÉηéintnoÉηéCFG_INTªÈ¢êiE_OBJj954 $ // inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ) 975 955 $IF !LENGTH(INT.INTNO[intno])$ 976 956 $ERROR INH.TEXT_LINE[inhno]$E_OBJ: $FORMAT(_("%1% `%2%\' corresponding to %3% `%4%\' is not configured with %5%"), "intno", INT.INTNO[intno], "inhno", INH.INHNO[inhno], "CFG_INT")$$END$ 977 957 $ELSE$ 978 958 $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$ 979 $ // inhatr ÉTA_NONKERNELªwè³êĨç¸CinhnoÉÎ980 $ // ·éintnoÉεÄCFG_INTÅÝè³ê½ÝDæxª981 $ // TMIN_INTPRI æèଳ¢êiE_OBJj959 $ // inhatrにTA_NONKERNELが指定されておらず,inhnoに対応 960 $ // するintnoに対してCFG_INTで設定された割込み優先度が 961 $ // TMIN_INTPRIよりも小さい場合(E_OBJ) 982 962 $IF INT.INTPRI[intno] < TMIN_INTPRI$ 983 963 $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is higher than %5%"), "intpri", INT.INTPRI[intno], "inhno", INH.INHNO[inhno], "TMIN_INTPRI")$$END$ 984 964 $END$ 985 965 $ELSE$ 986 $ // inhatr ÉTA_NONKERNELªwè³êĨèCinhnoÉÎ987 $ // ·éintnoÉεÄCFG_INTÅÝè³ê½ÝDæxª988 $ // TMIN_INTPRI ÈãÅ éêiE_OBJj966 $ // inhatrにTA_NONKERNELが指定されており,inhnoに対応 967 $ // するintnoに対してCFG_INTで設定された割込み優先度が 968 $ // TMIN_INTPRI以上である場合(E_OBJ) 989 969 $IF INT.INTPRI[intno] >= TMIN_INTPRI$ 990 970 $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is lower than or equal to %5%"), "intpri", INT.INTPRI[intno], "inhno", INH.INHNO[inhno], "TMIN_INTPRI")$$END$ … … 996 976 $END$ 997 977 998 $ ÝT[rX[`iISRjÉÖ·éG[`FbN978 $ 割込みサービスルーチン(ISR)に関するエラーチェック 999 979 $FOREACH order ISR.ORDER_LIST$ 1000 $ // isratr ªiTA_NULLjÅÈ¢êiE_RSATRj980 $ // isratrが(TA_NULL)でない場合(E_RSATR) 1001 981 $IF (ISR.ISRATR[order] & ~TARGET_ISRATR) != 0$ 1002 982 $ERROR ISR.TEXT_LINE[order]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "isratr", ISR.ISRATR[order], "ATT_ISR")$$END$ 1003 983 $END$ 1004 984 1005 $ // intno ªATT_ISRÉηéÝÔƵijµÈ¢êiE_PARj985 $ // intnoがATT_ISRに対する割込み番号として正しくない場合(E_PAR) 1006 986 $IF !LENGTH(FIND(INTNO_ATTISR_VALID, ISR.INTNO[order]))$ 1007 987 $ERROR ISR.TEXT_LINE[order]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "intno", ISR.INTNO[order], "ATT_ISR")$$END$ 1008 988 $END$ 1009 989 1010 $ // (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI) ÅÈ¢êiE_PARj990 $ // (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR) 1011 991 $IF !(TMIN_ISRPRI <= ISR.ISRPRI[order] && ISR.ISRPRI[order] <= TMAX_ISRPRI)$ 1012 992 $ERROR ISR.TEXT_LINE[order]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "isrpri", ISR.ISRPRI[order], "ATT_ISR")$$END$ … … 1017 997 $inhno = INHNO[intno]$ 1018 998 1019 $ // ÝÔintnoÉεÄo^³ê½ISRÌXgÌì¬999 $ // 割込み番号intnoに対して登録されたISRのリストの作成 1020 1000 $isr_order_list = {}$ 1021 1001 $FOREACH order ISR.ORDER_LIST$ … … 1026 1006 $END$ 1027 1007 1028 $ // ÝÔintnoÉεÄo^³ê½ISRª¶Ý·éê1008 $ // 割込み番号intnoに対して登録されたISRが存在する場合 1029 1009 $IF LENGTH(isr_order_list) > 0$ 1030 $ // intno ÉηéinhnoÉεÄDEF_INHª éêiE_OBJj1010 $ // intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ) 1031 1011 $IF LENGTH(INH.INHNO[inhno])$ 1032 1012 $ERROR ISR.TEXT_LINE[order_for_error]$E_OBJ: $FORMAT(_("%1% `%2%\' in %3% is duplicated with %4% `%5%\'"), "intno", ISR.INTNO[order_for_error], "ATT_ISR", "inhno", INH.INHNO[inhno])$$END$ 1033 1013 $END$ 1034 1014 1035 $ // intno ÉηéCFG_INTªÈ¢êiE_OBJj1015 $ // intnoに対するCFG_INTがない場合(E_OBJ) 1036 1016 $IF !LENGTH(INT.INTNO[intno])$ 1037 1017 $ERROR ISR.TEXT_LINE[order_for_error]$E_OBJ: $FORMAT(_("%1% `%2%\' is not configured with %3%"), "intno", ISR.INTNO[order_for_error], "CFG_INT")$$END$ 1038 1018 $ELSE$ 1039 $ // intno ÉεÄCFG_INTÅÝè³ê½ÝDæxªTMIN_INTPRI1040 $ // æèଳ¢êiE_OBJj1019 $ // intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRI 1020 $ // よりも小さい場合(E_OBJ) 1041 1021 $IF INT.INTPRI[intno] < TMIN_INTPRI$ 1042 1022 $ERROR INT.TEXT_LINE[intno]$E_OBJ: $FORMAT(_("%1% `%2%\' configured for %3% `%4%\' is higher than %5%"), "intpri", INT.INTPRI[intno], "intno", ISR.INTNO[order_for_error], "TMIN_INTPRI")$$END$ … … 1046 1026 $END$ 1047 1027 1048 $ ÝT[rX[`iISRjÇÌf[^\¢1028 $ 割込みサービスルーチン(ISR)管理のデータ構造 1049 1029 $intno_isr_list = {}$ 1050 1030 $FOREACH intno INTNO_ATTISR_VALID$ … … 1082 1062 $END$$NL$ 1083 1063 1084 $ ÝT[rX[`iISRjÄoµÌ½ßÌÝnh̶¬1064 $ 割込みサービスルーチン(ISR)呼出しのための割込みハンドラの生成 1085 1065 $FOREACH intno INTNO_ISR$ 1086 1066 $inhno = INHNO[intno]$ … … 1092 1072 $INH.ORDER_LIST = APPEND(INH.ORDER_LIST, inhno)$ 1093 1073 1094 $ // ISR pÌÝnh1074 $ // ISR用の割込みハンドラ 1095 1075 void$NL$ 1096 1076 _kernel_inthdr_$intno$(void)$NL$ … … 1103 1083 $END$ 1104 1084 1105 $ ÝT[rX[`Ì1085 $ 割込みサービスルーチンの数 1106 1086 #define TNUM_SISR $LENGTH(ISR.ORDER_LIST)$$NL$ 1107 1087 #define TNUM_ISR $LENGTH(ISR.ORDER_LIST) + num_aisrid$$NL$ 1108 1088 $NL$ 1109 1089 1110 $ ÝT[rX[`IDÔÌÅål1090 $ 割込みサービスルーチンID番号の最大値 1111 1091 const ID _kernel_tmax_isrid = (TMIN_ISRID + TNUM_ISRID - 1);$NL$ 1112 1092 const uint_t _kernel_tnum_sisr = TNUM_SISR;$NL$ 1113 1093 $NL$ 1114 1094 1115 $ ÝT[rX[`ú»ubN̶¬1095 $ 割込みサービスルーチン初期化ブロックの生成 1116 1096 $IF LENGTH(ISR.ORDER_LIST)$ 1117 1097 const ISRINIB _kernel_sisrinib_table[TNUM_SISR] = {$NL$ … … 1125 1105 $NL$ 1126 1106 1127 $ ®I¶¬ÝT[rX[`pÌÝT[rX[`ú»ub1128 $ N̶¬1107 $ 動的生成割込みサービスルーチン用の割込みサービスルーチン初期化ブロッ 1108 $ クの生成 1129 1109 $IF num_aisrid > 0$ 1130 1110 ISRINIB _kernel_aisrinib_table[$num_aisrid$];$NL$ … … 1134 1114 $NL$ 1135 1115 1136 $ ÝT[rX[`ÇubN̶¬1116 $ 割込みサービスルーチン管理ブロックの生成 1137 1117 $IF num_isr > 0$ 1138 1118 ISRCB _kernel_isrcb_table[TNUM_ISR];$NL$ … … 1143 1123 1144 1124 $ 1145 $ ÝÇ@\̽ßÌWIÈú»îñ̶¬1146 $ 1147 $ ÝnhÌú»ÉKvÈîñ1125 $ 割込み管理機能のための標準的な初期化情報の生成 1126 $ 1127 $ 割込みハンドラの初期化に必要な情報 1148 1128 $IF !OMIT_INITIALIZE_INTERRUPT || ALT(USE_INHINIB_TABLE,0)$ 1149 1129 1150 $ Ýnh1130 $ 割込みハンドラ数 1151 1131 #define TNUM_INHNO $LENGTH(INH.ORDER_LIST)$$NL$ 1152 1132 const uint_t _kernel_tnum_inhno = TNUM_INHNO;$NL$ … … 1159 1139 $NL$ 1160 1140 1161 $ Ýnhú»e[u1141 $ 割込みハンドラ初期化テーブル 1162 1142 $IF LENGTH(INH.ORDER_LIST)$ 1163 1143 const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {$NL$ … … 1175 1155 $END$ 1176 1156 1177 $ ÝvCÌú»ÉKvÈîñ1157 $ 割込み要求ラインの初期化に必要な情報 1178 1158 $IF !OMIT_INITIALIZE_INTERRUPT || ALT(USE_INTINIB_TABLE,0)$ 1179 1159 1180 $ ÝvC1160 $ 割込み要求ライン数 1181 1161 #define TNUM_INTNO $LENGTH(INT.ORDER_LIST)$$NL$ 1182 1162 const uint_t _kernel_tnum_intno = TNUM_INTNO;$NL$ 1183 1163 $NL$ 1184 1164 1185 $ ÝvCú»e[u1165 $ 割込み要求ライン初期化テーブル 1186 1166 $IF LENGTH(INT.ORDER_LIST)$ 1187 1167 const INTINIB _kernel_intinib_table[TNUM_INTNO] = {$NL$ … … 1196 1176 1197 1177 $ 1198 $ CPU áOÇ@\1178 $ CPU例外管理機能 1199 1179 $ 1200 1180 /*$NL$ … … 1203 1183 $NL$ 1204 1184 1205 $ CPU áOnhÉÖ·éG[`FbN1185 $ CPU例外ハンドラに関するエラーチェック 1206 1186 $i = 0$ 1207 1187 $FOREACH excno EXC.ORDER_LIST$ 1208 $ // excno ªDEF_EXCÉηéCPUáOnhÔƵijµÈ¢êiE_PARj1188 $ // excnoがDEF_EXCに対するCPU例外ハンドラ番号として正しくない場合(E_PAR) 1209 1189 $IF !LENGTH(FIND(EXCNO_DEFEXC_VALID, EXC.EXCNO[excno]))$ 1210 1190 $ERROR EXC.TEXT_LINE[excno]$E_PAR: $FORMAT(_("illegal %1% `%2%\' in %3%"), "excno", EXC.EXCNO[excno], "DEF_EXC")$$END$ 1211 1191 $END$ 1212 1192 1213 $ // excno ªDEF_EXCÉæÁÄÝèÏÝÌêiE_OBJj1193 $ // excnoがDEF_EXCによって設定済みの場合(E_OBJ) 1214 1194 $j = 0$ 1215 1195 $FOREACH excno2 EXC.ORDER_LIST$ … … 1220 1200 $END$ 1221 1201 1222 $ // excatr ªiTA_NULLjÅÈ¢êiE_RSATRj1202 $ // excatrが(TA_NULL)でない場合(E_RSATR) 1223 1203 $IF (EXC.EXCATR[excno] & ~TARGET_EXCATR) != 0$ 1224 1204 $ERROR EXC.TEXT_LINE[excno]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "excatr", EXC.EXCATR[excno], "excno", EXC.EXCNO[excno], "DEF_EXC")$$END$ … … 1227 1207 $END$ 1228 1208 1229 $ CPU áOnh̽ßÌWIÈú»îñ̶¬1209 $ CPU例外ハンドラのための標準的な初期化情報の生成 1230 1210 $IF !OMIT_INITIALIZE_EXCEPTION$ 1231 1211 1232 $ CPU áOnh1212 $ CPU例外ハンドラ数 1233 1213 #define TNUM_EXCNO $LENGTH(EXC.ORDER_LIST)$$NL$ 1234 1214 const uint_t _kernel_tnum_excno = TNUM_EXCNO;$NL$ … … 1239 1219 $NL$ 1240 1220 1241 $ CPU áOnhú»e[u1221 $ CPU例外ハンドラ初期化テーブル 1242 1222 $IF LENGTH(EXC.ORDER_LIST)$ 1243 1223 const EXCINIB _kernel_excinib_table[TNUM_EXCNO] = {$NL$ … … 1252 1232 1253 1233 $ 1254 $ ñ^XNReLXgpÌX^bNÌæ1234 $ 非タスクコンテキスト用のスタック領域 1255 1235 $ 1256 1236 /*$NL$ … … 1260 1240 1261 1241 $IF !LENGTH(ICS.ORDER_LIST)$ 1262 $ // DEF_ICS ªÈ¢êÌftHglÌÝè1242 $ // DEF_ICSがない場合のデフォルト値の設定 1263 1243 #ifdef DEFAULT_ISTK$NL$ 1264 1244 $NL$ … … 1275 1255 $ELSE$ 1276 1256 1277 $ // ÃIAPIuDEF_ICSvª¡ éiE_OBJj1257 $ // 静的API「DEF_ICS」が複数ある(E_OBJ) 1278 1258 $IF LENGTH(ICS.ORDER_LIST) > 1$ 1279 1259 $ERROR$E_OBJ: $FORMAT(_("too many %1%"), "DEF_ICS")$$END$ 1280 1260 $END$ 1281 1261 1282 $ // istksz ª0Ⱥ©C^[Qbgè`ÌŬliTARGET_MIN_ISTKSZjæèà1283 $ // ¬³¢êiE_PARj1262 $ // istkszが0以下か,ターゲット定義の最小値(TARGET_MIN_ISTKSZ)よりも 1263 $ // 小さい場合(E_PAR) 1284 1264 $IF ICS.ISTKSZ[1] <= 0 || (TARGET_MIN_ISTKSZ 1285 1265 && ICS.ISTKSZ[1] < TARGET_MIN_ISTKSZ)$ … … 1287 1267 $END$ 1288 1268 1289 $ // istksz ªX^bNÌæÌTCYƵijµÈ¢êiE_PARj1269 $ // istkszがスタック領域のサイズとして正しくない場合(E_PAR) 1290 1270 $IF !EQ(ICS.ISTK[1], "NULL") && CHECK_STKSZ_ALIGN 1291 1271 && (ICS.ISTKSZ[1] & (CHECK_STKSZ_ALIGN - 1))$ … … 1294 1274 1295 1275 $IF EQ(ICS.ISTK[1], "NULL")$ 1296 $ // X^bNÌæÌ©®t¯1276 $ // スタック領域の自動割付け 1297 1277 static STK_T _kernel_istack[COUNT_STK_T($ICS.ISTKSZ[1]$)];$NL$ 1298 1278 #define TOPPERS_ISTKSZ ROUND_STK_T($ICS.ISTKSZ[1]$)$NL$ … … 1305 1285 $NL$ 1306 1286 1307 $ ñ^XNReLXgpÌX^bNÌæ1287 $ 非タスクコンテキスト用のスタック領域 1308 1288 const SIZE _kernel_istksz = TOPPERS_ISTKSZ;$NL$ 1309 1289 STK_T *const _kernel_istk = TOPPERS_ISTK;$NL$ … … 1315 1295 1316 1296 $ 1317 $ J[lªèt¯éÌæ1297 $ カーネルが割り付けるメモリ領域 1318 1298 $ 1319 1299 /*$NL$ … … 1323 1303 1324 1304 $IF !LENGTH(KMM.ORDER_LIST)$ 1325 $ // DEF_KMM ªÈ¢êÌftHglÌÝè1305 $ // DEF_KMMがない場合のデフォルト値の設定 1326 1306 #define TOPPERS_KMMSZ 0$NL$ 1327 1307 #define TOPPERS_KMM NULL$NL$ 1328 1308 $ELSE$ 1329 $ // ÃIAPIuDEF_KMMvª¡ éiE_OBJj1309 $ // 静的API「DEF_KMM」が複数ある(E_OBJ) 1330 1310 $IF LENGTH(KMM.ORDER_LIST) > 1$ 1331 1311 $ERROR$E_OBJ: $FORMAT(_("too many %1%"), "DEF_KMM")$$END$ 1332 1312 $END$ 1333 1313 1334 $ // kmmsz ª0ȺÌêiE_PARj1314 $ // kmmszが0以下の場合(E_PAR) 1335 1315 $IF KMM.KMMSZ[1] <= 0$ 1336 1316 $ERROR KMM.TEXT_LINE[1]$E_PAR: $FORMAT(_("%1% `%2%\' is zero in %3%"), "kmmsz", KMM.KMMSZ[1], "DEF_KMM")$$END$ 1337 1317 $END$ 1338 1318 1339 $ // kmmsz ªJ[lªèt¯éÌæÌTCYƵijµÈ¢êiE_PARj1319 $ // kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合(E_PAR) 1340 1320 $IF !EQ(KMM.KMM[1], "NULL") && CHECK_MB_ALIGN 1341 1321 && (KMM.KMMSZ[1] & (CHECK_MB_ALIGN - 1))$ … … 1344 1324 1345 1325 $IF EQ(KMM.KMM[1], "NULL")$ 1346 $ // J[lªèt¯éÌæÌ©®t¯1326 $ // カーネルが割り付けるメモリ領域の自動割付け 1347 1327 static MB_T _kernel_memory[TOPPERS_COUNT_SZ($KMM.KMMSZ[1]$, sizeof(MB_T))];$NL$ 1348 1328 #define TOPPERS_KMMSZ TOPPERS_ROUND_SZ($KMM.KMMSZ[1]$, sizeof(MB_T))$NL$ … … 1355 1335 $NL$ 1356 1336 1357 $ J[lªèt¯éÌæ1337 $ カーネルが割り付けるメモリ領域 1358 1338 const SIZE _kernel_kmmsz = TOPPERS_KMMSZ;$NL$ 1359 1339 MB_T *const _kernel_kmm = TOPPERS_KMM;$NL$ … … 1361 1341 1362 1342 $ 1363 $ ^CCxgÇ1343 $ タイムイベント管理 1364 1344 $ 1365 1345 /*$NL$ … … 1371 1351 1372 1352 $ 1373 $ eW 1374 [Ìú»Ö 1353 $ 各モジュールの初期化関数 1375 1354 $ 1376 1355 /*$NL$ … … 1397 1376 1398 1377 $ 1399 $ ú»[`ÌÀsÖ1378 $ 初期化ルーチンの実行関数 1400 1379 $ 1401 1380 /*$NL$ … … 1407 1386 {$NL$ 1408 1387 $FOREACH order INI.ORDER_LIST$ 1409 $ // iniatr ªiTA_NULLjÅÈ¢êiE_RSATRj1388 $ // iniatrが(TA_NULL)でない場合(E_RSATR) 1410 1389 $IF INI.INIATR[order] != 0$ 1411 1390 $ERROR INI.TEXT_LINE[order]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "iniatr", INI.INIATR[order], "inirtn", INI.INIRTN[order], "ATT_INI")$$END$ … … 1417 1396 1418 1397 $ 1419 $ I¹[`ÌÀsÖ1398 $ 終了処理ルーチンの実行関数 1420 1399 $ 1421 1400 /*$NL$ … … 1427 1406 {$NL$ 1428 1407 $FOREACH rorder TER.RORDER_LIST$ 1429 $ // teratr ªiTA_NULLjÅÈ¢êiE_RSATRj1408 $ // teratrが(TA_NULL)でない場合(E_RSATR) 1430 1409 $IF TER.TERATR[rorder] != 0$ 1431 1410 $ERROR TER.TEXT_LINE[rorder]$E_RSATR: $FORMAT(_("illegal %1% `%2%\' of %3% `%4%\' in %5%"), "teratr", TER.TERATR[rorder], "terrtn", TER.TERRTN[rorder], "ATT_TER")$$END$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_api.csv
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_check.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 8 8 $ Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 $ 10 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 $ XR[hÉÜÜêÄ¢é±ÆD 16 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 $ Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 $ ̳ÛØKèðfÚ·é±ÆD 22 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 $ ÆD 25 $ (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 $ ñ·é±ÆD 31 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 $ ÆÓ·é±ÆD 10 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 $ スコード中に含まれていること. 16 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 $ の無保証規定を掲載すること. 20 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 $ と. 23 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 $ 報告すること. 27 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 $ 免責すること. 36 32 $ 37 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 $ ÌÓCðíÈ¢D33 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 $ の責任を負わない. 42 38 $ 43 39 $ @(#) $Id$ … … 46 42 47 43 $ 48 $ f[^ZNVÌLMA©çVMAÖÌRs[44 $ データセクションのLMAからVMAへのコピー 49 45 $ 50 46 $FOREACH lma LMA.ORDER_LIST$ … … 64 60 65 61 $ 66 $ ÖÌæªÔnÌ`FbN62 $ 関数の先頭番地のチェック 67 63 $ 68 64 $IF CHECK_FUNC_ALIGN || CHECK_FUNC_NONNULL$ 69 $ // ^XNÆ^XNáO[`ÌæªÔnÌ`FbN65 $ // タスクとタスク例外処理ルーチンの先頭番地のチェック 70 66 $tinib = SYMBOL("_kernel_tinib_table")$ 71 67 $FOREACH tskid TSK.ID_LIST$ … … 90 86 $END$ 91 87 92 $ // üúnhÌæªÔnÌ`FbN88 $ // 周期ハンドラの先頭番地のチェック 93 89 $cycinib = SYMBOL("_kernel_cycinib_table")$ 94 90 $FOREACH cycid CYC.ID_LIST$ … … 107 103 $END$ 108 104 109 $ // A[nhÌæªÔnÌ`FbN105 $ // アラームハンドラの先頭番地のチェック 110 106 $alminib = SYMBOL("_kernel_alminib_table")$ 111 107 $FOREACH almid ALM.ID_LIST$ … … 124 120 $END$ 125 121 126 $ // ÝT[rX[`ÌæªÔnÌ`FbN122 $ // 割込みサービスルーチンの先頭番地のチェック 127 123 $isrinib = SYMBOL("_kernel_sisrinib_table")$ 128 124 $FOREACH order ISR.ORDER_LIST$ … … 143 139 144 140 $ 145 $ X^bNÌæÌæªÔnÌ`FbN141 $ スタック領域の先頭番地のチェック 146 142 $ 147 143 $IF CHECK_STACK_ALIGN || CHECK_STACK_NONNULL$ 148 $ // ^XNÌX^bNÌæÌæªÔnÌ`FbN144 $ // タスクのスタック領域の先頭番地のチェック 149 145 $tinib = SYMBOL("_kernel_tinib_table")$ 150 146 $FOREACH tskid TSK.ID_LIST$ … … 167 163 $END$ 168 164 169 $ // ñ^XNReLXgpÌX^bNÌæÌæªÔnÌ`FbN165 $ // 非タスクコンテキスト用のスタック領域の先頭番地のチェック 170 166 $istk = PEEK(SYMBOL("_kernel_istk"), sizeof_void_ptr)$ 171 167 $IF CHECK_STACK_ALIGN && (istk & (CHECK_STACK_ALIGN - 1)) != 0$ … … 182 178 183 179 $ 184 $ Åè·v[ÌæÌæªÔnÌ`FbN180 $ 固定長メモリプール領域の先頭番地のチェック 185 181 $ 186 182 $IF CHECK_MPF_ALIGN || CHECK_MPF_NONNULL$ 187 $ // Åè·v[ÌæÌæªÔnÌ`FbN183 $ // 固定長メモリプール領域の先頭番地のチェック 188 184 $mpfinib = SYMBOL("_kernel_mpfinib_table")$ 189 185 $FOREACH mpfid MPF.ID_LIST$ … … 204 200 205 201 $ 206 $ J[lªèt¯éÌæÌæªÔnÌ`FbN202 $ カーネルが割り付けるメモリ領域の先頭番地のチェック 207 203 $ 208 204 $IF CHECK_MB_ALIGN$ 209 $ // J[lªèt¯éÌæÌæªÔnÌ`FbN205 $ // カーネルが割り付けるメモリ領域の先頭番地のチェック 210 206 $kmm = PEEK(SYMBOL("_kernel_kmm"), sizeof_void_ptr)$ 211 207 $IF CHECK_MB_ALIGN && (kmm & (CHECK_MB_ALIGN - 1)) != 0$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_def.csv
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_impl.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * TOPPERS/ASP J[làü¯Wwb_t@C49 * 50 * ±Ìwb_t@CÍCJ[lð\¬·évOÌ\[Xt@C51 * ÅK¸CN[h·é׫Wwb_t@CÅ éD52 * 53 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é54 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨D±êÉæèC}Nè`ÈOð55 * æ¤ÉÈÁÄ¢éD44 * TOPPERS/ASPカーネル内部向け標準ヘッダファイル 45 * 46 * このヘッダファイルは,カーネルを構成するプログラムのソースファイル 47 * で必ずインクルードするべき標準ヘッダファイルである. 48 * 49 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 50 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 51 * 除くようになっている. 56 52 */ 57 53 … … 60 56 61 57 /* 62 * J[lÌà¯Ê¼Ìl[58 * カーネルの内部識別名のリネーム 63 59 */ 64 60 #include "kernel_rename.h" 65 61 66 62 /* 67 * AvP[VƤÊÌwb_t@C63 * アプリケーションと共通のヘッダファイル 68 64 */ 69 65 #include <kernel.h> 70 66 71 67 /* 72 * VXeO@\̽ßÌè`68 * システムログ機能のための定義 73 69 */ 74 70 #include <t_syslog.h> 75 71 76 72 /* 77 * ^LXgðs¤}NÌè`73 * 型キャストを行うマクロの定義 78 74 */ 79 75 #ifndef CAST … … 82 78 83 79 /* 84 * ^[Qbg˶îñÌè`80 * ターゲット依存情報の定義 85 81 */ 86 82 #include "target_config.h" 87 83 88 84 /* 89 * ·×ÄÌÖðRpC·é½ßÌè`85 * すべての関数をコンパイルするための定義 90 86 */ 91 87 #ifdef ALLFUNC … … 94 90 95 91 /* 96 * rbgtB[hÅ̳µ®^97 * 98 * 8 rbgȺÌÌrbgtB[hÅC³µ®lðÛµ½¢ê99 * Ép¢é׫f[^^DANSI CÅÍCrbgtB[hÌf[^^ÉÍ100 * int Æunsigned intµ©³êÈ¢½ßCftHgÌè`Íunsigned101 * int ƵĢéªC^[Qbg¨æÑc[˶ÅCunsigned charܽÍ102 * unsigned short Éè`µ½ûªø¦ªÇ¢êª éD92 * ビットフィールドでの符号無し整数型 93 * 94 * 8ビット以下の幅のビットフィールドで,符号無し整数値を保持したい場合 95 * に用いるべきデータ型.ANSI Cでは,ビットフィールドのデータ型には 96 * intとunsigned intしか許されないため,デフォルトの定義はunsigned 97 * intとしているが,ターゲットおよびツール依存で,unsigned charまたは 98 * unsigned shortに定義した方が効率が良い場合がある. 103 99 */ 104 100 #ifndef BIT_FIELD_UINT … … 107 103 108 104 /* 109 * rbgtB[hÅÌu[^110 * 111 * 1 rbgÌrbgtB[hÅCu[lðÛµ½¢êÉp¢é׫112 * f[^^DftHgÅÍBIT_FIELD_UINTƯêÉè`µÄ¢éªCu[113 * lðÛ·é±Æ𾦷é½ßÉÊ̼ÌƵĢéD105 * ビットフィールドでのブール型 106 * 107 * 1ビット幅のビットフィールドで,ブール値を保持したい場合に用いるべき 108 * データ型.デフォルトではBIT_FIELD_UINTと同一に定義しているが,ブー 109 * ル値を保持することを明示するために別の名称としている. 114 110 */ 115 111 #ifndef BIT_FIELD_BOOL … … 118 114 119 115 /* 120 * IuWFNgIDÌŬlÌè` 121 */ 122 #define TMIN_TSKID 1 /* ^XNIDÌŬl */ 123 #define TMIN_SEMID 1 /* Z}tHIDÌŬl */ 124 #define TMIN_FLGID 1 /* tOIDÌŬl */ 125 #define TMIN_DTQID 1 /* f[^L 126 [IDÌŬl */ 127 #define TMIN_PDQID 1 /* Dæxf[^L 128 [IDÌŬl */ 129 #define TMIN_MBXID 1 /* [{bNXIDÌŬl */ 130 #define TMIN_MPFID 1 /* Åè·v[IDÌŬl */ 131 #define TMIN_CYCID 1 /* üúnhIDÌŬl */ 132 #define TMIN_ALMID 1 /* A[nhIDÌŬl */ 133 #define TMIN_ISRID 1 /* ÝT[rX[`IDÌŬl */ 134 135 /* 136 * DæxÌiKÌè` 116 * オブジェクトIDの最小値の定義 117 */ 118 #define TMIN_TSKID 1 /* タスクIDの最小値 */ 119 #define TMIN_SEMID 1 /* セマフォIDの最小値 */ 120 #define TMIN_FLGID 1 /* フラグIDの最小値 */ 121 #define TMIN_DTQID 1 /* データキューIDの最小値 */ 122 #define TMIN_PDQID 1 /* 優先度データキューIDの最小値 */ 123 #define TMIN_MBXID 1 /* メールボックスIDの最小値 */ 124 #define TMIN_MPFID 1 /* 固定長メモリプールIDの最小値 */ 125 #define TMIN_CYCID 1 /* 周期ハンドラIDの最小値 */ 126 #define TMIN_ALMID 1 /* アラームハンドラIDの最小値 */ 127 #define TMIN_ISRID 1 /* 割込みサービスルーチンIDの最小値 */ 128 129 /* 130 * 優先度の段階数の定義 137 131 */ 138 132 #define TNUM_TPRI (TMAX_TPRI - TMIN_TPRI + 1) … … 141 135 142 136 /* 143 * J[làÅgp·é®«Ìè`144 */ 145 #define TA_NOEXS ((ATR)(-1)) /* ¢o^óÔ*/137 * カーネル内部で使用する属性の定義 138 */ 139 #define TA_NOEXS ((ATR)(-1)) /* 未登録状態 */ 146 140 147 141 #ifndef TA_MEMALLOC 148 #define TA_MEMALLOC UINT_C(0x8000) /* ÌæðJ[lÅmÛ*/142 #define TA_MEMALLOC UINT_C(0x8000) /* メモリ領域をカーネルで確保 */ 149 143 #endif /* TA_MEMALLOC */ 150 144 #ifndef TA_MBALLOC 151 #define TA_MBALLOC UINT_C(0x4000) /* ÇÌæðJ[lÅmÛ*/145 #define TA_MBALLOC UINT_C(0x4000) /* 管理領域をカーネルで確保 */ 152 146 #endif /* TA_MBALLOC */ 153 147 154 148 /* 155 * ^[Qbgè`ÌG[`FbN}NÌftHglÌè`149 * ターゲット定義のエラーチェックマクロのデフォルト値の定義 156 150 */ 157 151 #ifndef TARGET_TSKATR 158 #define TARGET_TSKATR 0U /* ^[Qbgè`Ì^XN®«*/152 #define TARGET_TSKATR 0U /* ターゲット定義のタスク属性 */ 159 153 #endif /* TARGET_TSKATR */ 160 154 161 155 #ifndef TARGET_ISRATR 162 #define TARGET_ISRATR 0U /* ^[Qbgè`ÌISR®«*/156 #define TARGET_ISRATR 0U /* ターゲット定義のISR属性 */ 163 157 #endif /* TARGET_ISRATR */ 164 158 165 159 /* 166 * wb_t@Cð½È¢W 167 [ÌÖEÏÌé¾ 160 * ヘッダファイルを持たないモジュールの関数・変数の宣言 168 161 */ 169 162 #ifndef TOPPERS_MACRO_ONLY 170 163 171 164 /* 172 * eW 173 [Ìú»ikernel_cfg.cj 165 * 各モジュールの初期化(kernel_cfg.c) 174 166 */ 175 167 extern void initialize_object(void); 176 168 177 169 /* 178 * ú»[`ÌÀsikernel_cfg.cj170 * 初期化ルーチンの実行(kernel_cfg.c) 179 171 */ 180 172 extern void call_inirtn(void); 181 173 182 174 /* 183 * I¹[`ÌÀsikernel_cfg.cj175 * 終了処理ルーチンの実行(kernel_cfg.c) 184 176 */ 185 177 extern void call_terrtn(void); 186 178 187 179 /* 188 * ñ^XNReLXgpÌX^bNÌæikernel_cfg.cj189 */ 190 extern const SIZE istksz; /* X^bNÌæÌTCYiÛß½lj*/191 extern STK_T *const istk; /* X^bNÌæÌæªÔn*/180 * 非タスクコンテキスト用のスタック領域(kernel_cfg.c) 181 */ 182 extern const SIZE istksz; /* スタック領域のサイズ(丸めた値) */ 183 extern STK_T *const istk; /* スタック領域の先頭番地 */ 192 184 #ifdef TOPPERS_ISTKPT 193 extern STK_T *const istkpt; /* X^bN|C^Ìúl*/185 extern STK_T *const istkpt; /* スタックポインタの初期値 */ 194 186 #endif /* TOPPERS_ISTKPT */ 195 187 196 188 /* 197 * J[lªèt¯éÌæikernel_cfg.cj198 */ 199 extern const SIZE kmmsz; /* J[lªèt¯éÌæÌTCY*/200 extern MB_T *const kmm; /* J[lªèt¯éÌæÌæªÔn*/201 202 /* 203 * J[l®ìóÔtOistartup.cj189 * カーネルが割り付けるメモリ領域(kernel_cfg.c) 190 */ 191 extern const SIZE kmmsz; /* カーネルが割り付けるメモリ領域のサイズ */ 192 extern MB_T *const kmm; /* カーネルが割り付けるメモリ領域の先頭番地 */ 193 194 /* 195 * カーネル動作状態フラグ(startup.c) 204 196 */ 205 197 extern bool_t kerflg; 206 198 207 199 /* 208 * J[lÌN®istartup.cj200 * カーネルの起動(startup.c) 209 201 */ 210 202 extern void sta_ker(void); 211 203 212 204 /* 213 * J[lÌI¹istartup.cj205 * カーネルの終了処理(startup.c) 214 206 */ 215 207 extern void exit_kernel(void); 216 208 217 209 /* 218 * J[lÌèt¯éÌæÌÇistartup.cj210 * カーネルの割り付けるメモリ領域の管理(startup.c) 219 211 */ 220 212 extern void initialize_kmm(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_int.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * kernel_cfg.c i¨æÑcfg1_out.cjpwb_t@C44 * kernel_cfg.c(およびcfg1_out.c)用ヘッダファイル 49 45 */ 50 46 … … 53 49 54 50 /* 55 * J[lWwb_t@C51 * カーネル標準ヘッダファイル 56 52 */ 57 53 #include "kernel_impl.h" 58 54 59 55 /* 60 * J[lÌewb_t@C56 * カーネルの各ヘッダファイル 61 57 */ 62 58 #include "task.h" … … 74 70 75 71 /* 76 * l[µ½V{ð³Éß·½ßÌwb_t@C72 * リネームしたシンボルを元に戻すためのヘッダファイル 77 73 */ 78 74 #include "kernel_unrename.h" -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_rename.def
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_rename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/kernel_unrename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/mailbox.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * [{bNX@\44 * メールボックス機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 59 55 */ 60 56 #ifndef LOG_ACRE_MBX_ENTER … … 123 119 124 120 /* 125 * [{bNXÌ121 * メールボックスの数 126 122 */ 127 123 #define tnum_mbx ((uint_t)(tmax_mbxid - TMIN_MBXID + 1)) … … 129 125 130 126 /* 131 * [{bNXID©ç[{bNXÇubNðæèo·½ßÌ}N127 * メールボックスIDからメールボックス管理ブロックを取り出すためのマクロ 132 128 */ 133 129 #define INDEX_MBX(mbxid) ((uint_t)((mbxid) - TMIN_MBXID)) … … 137 133 138 134 /* 139 * gpµÄ¢È¢[{bNXÇubNÌXg135 * 使用していないメールボックス管理ブロックのリスト 140 136 */ 141 137 QUEUE free_mbxcb; 142 138 143 139 /* 144 * [{bNX@\Ìú»140 * メールボックス機能の初期化 145 141 */ 146 142 void … … 170 166 171 167 /* 172 * bZ[WDæxÌæoµ168 * メッセージ優先度の取出し 173 169 */ 174 170 #define MSGPRI(pk_msg) (((T_MSG_PRI *)(pk_msg))->msgpri) 175 171 176 172 /* 177 * DæxbZ[WL 178 [ÖÌ}ü 173 * 優先度順メッセージキューへの挿入 179 174 */ 180 175 Inline void … … 194 189 195 190 /* 196 * [{bNX̶¬191 * メールボックスの生成 197 192 */ 198 193 #ifdef TOPPERS_acre_mbx … … 235 230 236 231 /* 237 * [{bNXÌí232 * メールボックスの削除 238 233 */ 239 234 #ifdef TOPPERS_del_mbx … … 279 274 280 275 /* 281 * [{bNXÖÌM276 * メールボックスへの送信 282 277 */ 283 278 #ifdef TOPPERS_snd_mbx … … 337 332 338 333 /* 339 * [{bNX©çÌóM334 * メールボックスからの受信 340 335 */ 341 336 #ifdef TOPPERS_rcv_mbx … … 381 376 382 377 /* 383 * [{bNX©çÌóMi|[Oj378 * メールボックスからの受信(ポーリング) 384 379 */ 385 380 #ifdef TOPPERS_prcv_mbx … … 418 413 419 414 /* 420 * [{bNX©çÌóMi^CAEg èj415 * メールボックスからの受信(タイムアウトあり) 421 416 */ 422 417 #ifdef TOPPERS_trcv_mbx … … 468 463 469 464 /* 470 * [{bNXÌÄú»465 * メールボックスの再初期化 471 466 */ 472 467 #ifdef TOPPERS_ini_mbx … … 506 501 507 502 /* 508 * [{bNXÌóÔQÆ503 * メールボックスの状態参照 509 504 */ 510 505 #ifdef TOPPERS_ref_mbx -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/mailbox.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * [{bNX@\44 * メールボックス機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * [{bNXú»ubN53 * メールボックス初期化ブロック 58 54 * 59 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ60 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC61 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD55 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 56 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 57 * 最初のフィールドが共通になっている. 62 58 */ 63 59 typedef struct mailbox_initialization_block { 64 ATR mbxatr; /* [{bNX®«*/65 PRI maxmpri; /* bZ[WDæxÌÅål*/60 ATR mbxatr; /* メールボックス属性 */ 61 PRI maxmpri; /* メッセージ優先度の最大値 */ 66 62 } MBXINIB; 67 63 68 64 /* 69 * [{bNXÇubN65 * メールボックス管理ブロック 70 66 * 71 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj72 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ73 * tB[hª¤ÊÉÈÁÄ¢éD67 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 68 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 69 * フィールドが共通になっている. 74 70 * 75 * bZ[WL 76 [ªbZ[WÌDæxÌêÉÍCpk_lastÍgíÈ 77 * ¢DܽCbZ[WL 78 [ªóÌêipk_headªNULLÌêjÉàC 79 * pk_lastͳøÅ éD 71 * メッセージキューがメッセージの優先度順の場合には,pk_lastは使わな 72 * い.また,メッセージキューが空の場合(pk_headがNULLの場合)にも, 73 * pk_lastは無効である. 80 74 */ 81 75 typedef struct mailbox_control_block { 82 QUEUE wait_queue; /* [{bNXÒ¿L 83 [ */ 84 const MBXINIB *p_mbxinib; /* ú»ubNÖÌ|C^ */ 85 T_MSG *pk_head; /* æªÌbZ[W */ 86 T_MSG *pk_last; /* öÌbZ[W */ 76 QUEUE wait_queue; /* メールボックス待ちキュー */ 77 const MBXINIB *p_mbxinib; /* 初期化ブロックへのポインタ */ 78 T_MSG *pk_head; /* 先頭のメッセージ */ 79 T_MSG *pk_last; /* 末尾のメッセージ */ 87 80 } MBXCB; 88 81 89 82 /* 90 * [{bNXÒ¿îñubNÌè`83 * メールボックス待ち情報ブロックの定義 91 84 * 92 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ93 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC94 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD85 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 86 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 87 * 最初の2つのフィールドが共通になっている. 95 88 */ 96 89 typedef struct mailbox_waiting_information { 97 WINFO winfo; /* WÌÒ¿îñubN*/98 MBXCB *p_mbxcb; /* ÒÁÄ¢é[{bNXÌÇubN*/99 T_MSG *pk_msg; /* óMµ½bZ[W*/90 WINFO winfo; /* 標準の待ち情報ブロック */ 91 MBXCB *p_mbxcb; /* 待っているメールボックスの管理ブロック */ 92 T_MSG *pk_msg; /* 受信したメッセージ */ 100 93 } WINFO_MBX; 101 94 102 95 /* 103 * gpµÄ¢È¢[{bNXÇubNÌXg96 * 使用していないメールボックス管理ブロックのリスト 104 97 */ 105 98 extern QUEUE free_mbxcb; 106 99 107 100 /* 108 * [{bNXIDÌÅålikernel_cfg.cj101 * メールボックスIDの最大値(kernel_cfg.c) 109 102 */ 110 103 extern const ID tmax_mbxid; … … 112 105 113 106 /* 114 * [{bNXú»ubNÌGAikernel_cfg.cj107 * メールボックス初期化ブロックのエリア(kernel_cfg.c) 115 108 */ 116 109 extern const MBXINIB mbxinib_table[]; … … 118 111 119 112 /* 120 * [{bNXÇubNÌGAikernel_cfg.cj113 * メールボックス管理ブロックのエリア(kernel_cfg.c) 121 114 */ 122 115 extern MBXCB mbxcb_table[]; 123 116 124 117 /* 125 * [{bNXÇubN©ç[{bNXIDðæèo·½ßÌ}N118 * メールボックス管理ブロックからメールボックスIDを取り出すためのマクロ 126 119 */ 127 120 #define MBXID(p_mbxcb) ((ID)(((p_mbxcb) - mbxcb_table) + TMIN_MBXID)) 128 121 129 122 /* 130 * [{bNX@\Ìú»123 * メールボックス機能の初期化 131 124 */ 132 125 extern void initialize_mailbox(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/mempfix.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Åè·v[@\44 * 固定長メモリプール機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 59 55 */ 60 56 #ifndef LOG_ACRE_MPF_ENTER … … 123 119 124 120 /* 125 * Åè·v[Ì121 * 固定長メモリプールの数 126 122 */ 127 123 #define tnum_mpf ((uint_t)(tmax_mpfid - TMIN_MPFID + 1)) … … 129 125 130 126 /* 131 * Åè·v[ID©çÅè·v[ÇubNðæèo·½132 * ßÌ}N127 * 固定長メモリプールIDから固定長メモリプール管理ブロックを取り出すた 128 * めのマクロ 133 129 */ 134 130 #define INDEX_MPF(mpfid) ((uint_t)((mpfid) - TMIN_MPFID)) … … 136 132 137 133 /* 138 * ÁêÈCfbNXlÌè`139 */ 140 #define INDEX_NULL (~0U) /* ó«ubNXgÌÅã*/141 #define INDEX_ALLOC (~1U) /* ÄÏÝÌubN*/134 * 特殊なインデックス値の定義 135 */ 136 #define INDEX_NULL (~0U) /* 空きブロックリストの最後 */ 137 #define INDEX_ALLOC (~1U) /* 割当て済みのブロック */ 142 138 143 139 #ifdef TOPPERS_mpfini 144 140 145 141 /* 146 * gpµÄ¢È¢Åè·v[ÇubNÌXg142 * 使用していない固定長メモリプール管理ブロックのリスト 147 143 */ 148 144 QUEUE free_mpfcb; 149 145 150 146 /* 151 * Åè·v[@\Ìú»147 * 固定長メモリプール機能の初期化 152 148 */ 153 149 void … … 179 175 180 176 /* 181 * Åè·v[©çubNðl¾177 * 固定長メモリプールからブロックを獲得 182 178 */ 183 179 #ifdef TOPPERS_mpfget … … 205 201 206 202 /* 207 * Åè·v[̶¬203 * 固定長メモリプールの生成 208 204 */ 209 205 #ifdef TOPPERS_acre_mpf … … 284 280 285 281 /* 286 * Åè·v[Ìí282 * 固定長メモリプールの削除 287 283 */ 288 284 #ifdef TOPPERS_del_mpf … … 334 330 335 331 /* 336 * Åè·ubNÌl¾332 * 固定長メモリブロックの獲得 337 333 */ 338 334 #ifdef TOPPERS_get_mpf … … 377 373 378 374 /* 379 * Åè·ubNÌl¾i|[Oj375 * 固定長メモリブロックの獲得(ポーリング) 380 376 */ 381 377 #ifdef TOPPERS_pget_mpf … … 413 409 414 410 /* 415 * Åè·ubNÌl¾i^CAEg èj411 * 固定長メモリブロックの獲得(タイムアウトあり) 416 412 */ 417 413 #ifdef TOPPERS_tget_mpf … … 462 458 463 459 /* 464 * Åè·ubNÌÔp460 * 固定長メモリブロックの返却 465 461 */ 466 462 #ifdef TOPPERS_rel_mpf … … 519 515 520 516 /* 521 * Åè·v[ÌÄú»517 * 固定長メモリプールの再初期化 522 518 */ 523 519 #ifdef TOPPERS_ini_mpf … … 559 555 560 556 /* 561 * Åè·v[ÌóÔQÆ557 * 固定長メモリプールの状態参照 562 558 */ 563 559 #ifdef TOPPERS_ref_mpf -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/mempfix.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Åè·v[@\44 * 固定長メモリプール機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * Åè·ubNÇubN53 * 固定長メモリブロック管理ブロック 58 54 * 59 * next tB[hÉÍCubNªÄÏÝÌêÍINDEX_ALLOCðC60 * ¢ÄÌêÍÌ¢ÄubNÌCfbNXÔði[·éD61 * ÅãÌ¢ÄubNÌêÉÍCINDEX_NULLði[·éD55 * nextフィールドには,メモリブロックが割当て済みの場合はINDEX_ALLOCを, 56 * 未割当ての場合は次の未割当てブロックのインデックス番号を格納する. 57 * 最後の未割当てブロックの場合には,INDEX_NULLを格納する. 62 58 */ 63 59 typedef struct fixed_memoryblock_management_block { 64 uint_t next; /* Ì¢ÄubN*/60 uint_t next; /* 次の未割当てブロック */ 65 61 } MPFMB; 66 62 67 63 /* 68 * Åè·v[ú»ubN64 * 固定長メモリプール初期化ブロック 69 65 * 70 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ71 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC72 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD66 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 67 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 68 * 最初のフィールドが共通になっている. 73 69 */ 74 70 typedef struct fixed_memorypool_initialization_block { 75 ATR mpfatr; /* Åè·v[®«*/76 uint_t blkcnt; /* ubN*/77 uint_t blksz; /* ubNÌTCYiÛß½lj*/78 void *mpf; /* Åè·v[ÌæÌæªÔn*/79 MPFMB *p_mpfmb; /* Åè·v[ÇÌæÌæªÔn*/71 ATR mpfatr; /* 固定長メモリプール属性 */ 72 uint_t blkcnt; /* メモリブロック数 */ 73 uint_t blksz; /* メモリブロックのサイズ(丸めた値) */ 74 void *mpf; /* 固定長メモリプール領域の先頭番地 */ 75 MPFMB *p_mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 80 76 } MPFINIB; 81 77 82 78 /* 83 * Åè·v[ÇubN79 * 固定長メモリプール管理ブロック 84 80 * 85 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj86 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ87 * tB[hª¤ÊÉÈÁÄ¢éD81 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 82 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 83 * フィールドが共通になっている. 88 84 */ 89 85 typedef struct fixed_memorypool_control_block { 90 QUEUE wait_queue; /* Åè·v[Ò¿L 91 [ */ 92 const MPFINIB *p_mpfinib; /* ú»ubNÖÌ|C^ */ 93 uint_t fblkcnt; /* ¢ÄubN */ 94 uint_t unused; /* ¢gpubNÌæª */ 95 uint_t freelist; /* ¢ÄubNÌXg */ 86 QUEUE wait_queue; /* 固定長メモリプール待ちキュー */ 87 const MPFINIB *p_mpfinib; /* 初期化ブロックへのポインタ */ 88 uint_t fblkcnt; /* 未割当てブロック数 */ 89 uint_t unused; /* 未使用ブロックの先頭 */ 90 uint_t freelist; /* 未割当てブロックのリスト */ 96 91 } MPFCB; 97 92 98 93 /* 99 * Åè·v[Ò¿îñubNÌè`94 * 固定長メモリプール待ち情報ブロックの定義 100 95 * 101 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ102 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC103 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD96 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 97 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 98 * 最初の2つのフィールドが共通になっている. 104 99 */ 105 100 typedef struct fixed_memorypool_waiting_information { 106 WINFO winfo; /* WÌÒ¿îñubN*/107 MPFCB *p_mpfcb; /* ÒÁÄ¢éÅè·v[ÌÇubN*/108 void *blk; /* l¾µ½ubN*/101 WINFO winfo; /* 標準の待ち情報ブロック */ 102 MPFCB *p_mpfcb; /* 待っている固定長メモリプールの管理ブロック*/ 103 void *blk; /* 獲得したメモリブロック */ 109 104 } WINFO_MPF; 110 105 111 106 /* 112 * gpµÄ¢È¢Åè·v[ÇubNÌXg107 * 使用していない固定長メモリプール管理ブロックのリスト 113 108 */ 114 109 extern QUEUE free_mpfcb; 115 110 116 111 /* 117 * Åè·v[IDÌÅålikernel_cfg.cj112 * 固定長メモリプールIDの最大値(kernel_cfg.c) 118 113 */ 119 114 extern const ID tmax_mpfid; … … 121 116 122 117 /* 123 * Åè·v[ú»ubNÌGAikernel_cfg.cj118 * 固定長メモリプール初期化ブロックのエリア(kernel_cfg.c) 124 119 */ 125 120 extern const MPFINIB mpfinib_table[]; … … 127 122 128 123 /* 129 * Åè·v[ÇubNÌGAikernel_cfg.cj124 * 固定長メモリプール管理ブロックのエリア(kernel_cfg.c) 130 125 */ 131 126 extern MPFCB mpfcb_table[]; 132 127 133 128 /* 134 * Åè·v[ÇubN©çÅè·v[IDðæèo·½135 * ßÌ}N129 * 固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた 130 * めのマクロ 136 131 */ 137 132 #define MPFID(p_mpfcb) ((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID)) 138 133 139 134 /* 140 * Åè·v[@\Ìú»135 * 固定長メモリプール機能の初期化 141 136 */ 142 137 extern void initialize_mempfix(void); 143 138 144 139 /* 145 * Åè·v[©çubNðl¾140 * 固定長メモリプールからブロックを獲得 146 141 */ 147 142 extern void get_mpf_block(MPFCB *p_mpfcb, void **p_blk); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/pridataq.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Dæxf[^L 49 [@\ 44 * 優先度データキュー機能 50 45 */ 51 46 … … 57 52 58 53 /* 59 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 60 55 */ 61 56 #ifndef LOG_ACRE_PDQ_ENTER … … 148 143 149 144 /* 150 * Dæxf[^L 151 [Ì 145 * 優先度データキューの数 152 146 */ 153 147 #define tnum_pdq ((uint_t)(tmax_pdqid - TMIN_PDQID + 1)) … … 155 149 156 150 /* 157 * Dæxf[^L 158 [ID©çDæxf[^L 159 [ÇubNðæèo·½ 160 * ßÌ}N 151 * 優先度データキューIDから優先度データキュー管理ブロックを取り出すた 152 * めのマクロ 161 153 */ 162 154 #define INDEX_PDQ(pdqid) ((uint_t)((pdqid) - TMIN_PDQID)) … … 166 158 167 159 /* 168 * gpµÄ¢È¢Dæxf[^L 169 [ÇubNÌXg 160 * 使用していない優先度データキュー管理ブロックのリスト 170 161 */ 171 162 QUEUE free_pdqcb; 172 163 173 164 /* 174 * Dæxf[^L 175 [@\Ìú» 165 * 優先度データキュー機能の初期化 176 166 */ 177 167 void … … 205 195 206 196 /* 207 * Dæxf[^L 208 [ÇÌæÖÌf[^Ìi[ 197 * 優先度データキュー管理領域へのデータの格納 209 198 */ 210 199 #ifdef TOPPERS_pdqenq … … 243 232 244 233 /* 245 * Dæxf[^L 246 [ÇÌæ©çÌf[^Ìæoµ 234 * 優先度データキュー管理領域からのデータの取出し 247 235 */ 248 236 #ifdef TOPPERS_pdqdeq … … 267 255 268 256 /* 269 * Dæxf[^L 270 [ÖÌf[^M 257 * 優先度データキューへのデータ送信 271 258 */ 272 259 #ifdef TOPPERS_pdqsnd … … 297 284 298 285 /* 299 * Dæxf[^L 300 [©çÌf[^óM 286 * 優先度データキューからのデータ受信 301 287 */ 302 288 #ifdef TOPPERS_pdqrcv … … 339 325 340 326 /* 341 * Dæxf[^L 342 [̶¬ 327 * 優先度データキューの生成 343 328 */ 344 329 #ifdef TOPPERS_acre_pdq … … 402 387 403 388 /* 404 * Dæxf[^L 405 [Ìí 389 * 優先度データキューの削除 406 390 */ 407 391 #ifdef TOPPERS_del_pdq … … 453 437 454 438 /* 455 * Dæxf[^L 456 [ÖÌM 439 * 優先度データキューへの送信 457 440 */ 458 441 #ifdef TOPPERS_snd_pdq … … 503 486 504 487 /* 505 * Dæxf[^L 506 [ÖÌMi|[Oj 488 * 優先度データキューへの送信(ポーリング) 507 489 */ 508 490 #ifdef TOPPERS_psnd_pdq … … 547 529 548 530 /* 549 * Dæxf[^L 550 [ÖÌMi|[OCñ^XNReLXgpj 531 * 優先度データキューへの送信(ポーリング,非タスクコンテキスト用) 551 532 */ 552 533 #ifdef TOPPERS_ipsnd_pdq … … 591 572 592 573 /* 593 * Dæxf[^L 594 [ÖÌMi^CAEg èj 574 * 優先度データキューへの送信(タイムアウトあり) 595 575 */ 596 576 #ifdef TOPPERS_tsnd_pdq … … 647 627 648 628 /* 649 * Dæxf[^L 650 [©çÌóM 629 * 優先度データキューからの受信 651 630 */ 652 631 #ifdef TOPPERS_rcv_pdq … … 698 677 699 678 /* 700 * Dæxf[^L 701 [©çÌóMi|[Oj 679 * 優先度データキューからの受信(ポーリング) 702 680 */ 703 681 #ifdef TOPPERS_prcv_pdq … … 738 716 739 717 /* 740 * Dæxf[^L 741 [©çÌóMi^CAEg èj 718 * 優先度データキューからの受信(タイムアウトあり) 742 719 */ 743 720 #ifdef TOPPERS_trcv_pdq … … 794 771 795 772 /* 796 * Dæxf[^L 797 [ÌÄú» 773 * 優先度データキューの再初期化 798 774 */ 799 775 #ifdef TOPPERS_ini_pdq … … 839 815 840 816 /* 841 * Dæxf[^L 842 [ÌóÔQÆ 817 * 優先度データキューの状態参照 843 818 */ 844 819 #ifdef TOPPERS_ref_pdq -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/pridataq.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Dæxf[^L 49 [@\ 44 * 優先度データキュー機能 50 45 */ 51 46 … … 56 51 57 52 /* 58 * Dæxf[^ÇubN53 * 優先度データ管理ブロック 59 54 */ 60 55 typedef struct pridata_management_block PDQMB; 61 56 62 57 struct pridata_management_block { 63 PDQMB *p_next; /* Ìf[^*/64 intptr_t data; /* f[^{Ì*/65 PRI datapri; /* f[^Dæx*/58 PDQMB *p_next; /* 次のデータ */ 59 intptr_t data; /* データ本体 */ 60 PRI datapri; /* データ優先度 */ 66 61 }; 67 62 68 63 /* 69 * Dæxf[^L 70 [ú»ubN 64 * 優先度データキュー初期化ブロック 71 65 * 72 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ73 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC74 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD66 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 67 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 68 * 最初のフィールドが共通になっている. 75 69 */ 76 70 typedef struct pridataq_initialization_block { 77 ATR pdqatr; /* Dæxf[^L 78 [®« */ 79 uint_t pdqcnt; /* Dæxf[^L 80 [ÌeÊ */ 81 PRI maxdpri; /* f[^DæxÌÅål */ 82 PDQMB *p_pdqmb; /* Dæxf[^L 83 [ÇÌæÌæªÔn */ 71 ATR pdqatr; /* 優先度データキュー属性 */ 72 uint_t pdqcnt; /* 優先度データキューの容量 */ 73 PRI maxdpri; /* データ優先度の最大値 */ 74 PDQMB *p_pdqmb; /* 優先度データキュー管理領域の先頭番地 */ 84 75 } PDQINIB; 85 76 86 77 /* 87 * Dæxf[^L 88 [ÇubN 78 * 優先度データキュー管理ブロック 89 79 * 90 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj91 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ92 * tB[hª¤ÊÉÈÁÄ¢éD80 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 81 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 82 * フィールドが共通になっている. 93 83 */ 94 84 typedef struct pridataq_control_block { 95 QUEUE swait_queue; /* Dæxf[^L 96 [MÒ¿L 97 [ */ 98 const PDQINIB *p_pdqinib; /* ú»ubNÖÌ|C^ */ 99 QUEUE rwait_queue; /* Dæxf[^L 100 [óMÒ¿L 101 [ */ 102 uint_t count; /* Dæxf[^L 103 [Ìf[^Ì */ 104 PDQMB *p_head; /* ÅÌf[^ */ 105 uint_t unused; /* ¢gpf[^ÇubNÌæª */ 106 PDQMB *p_freelist; /* ¢Äf[^ÇubNÌXg */ 85 QUEUE swait_queue; /* 優先度データキュー送信待ちキュー */ 86 const PDQINIB *p_pdqinib; /* 初期化ブロックへのポインタ */ 87 QUEUE rwait_queue; /* 優先度データキュー受信待ちキュー */ 88 uint_t count; /* 優先度データキュー中のデータの数 */ 89 PDQMB *p_head; /* 最初のデータ */ 90 uint_t unused; /* 未使用データ管理ブロックの先頭 */ 91 PDQMB *p_freelist; /* 未割当てデータ管理ブロックのリスト */ 107 92 } PDQCB; 108 93 109 94 /* 110 * Dæxf[^L 111 [Ò¿îñubNÌè` 95 * 優先度データキュー待ち情報ブロックの定義 112 96 * 113 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ 114 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC 115 * ÅÌ2ÂÌtB[hª¤ÊÉÈÁÄ¢éD 116 * Dæxf[^L 117 [ÖÌMÒ¿ÆDæxf[^L 118 [©çÌóMÒ¿ÅC 119 * ¯¶Ò¿îñubNðg¤D 97 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 98 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 99 * 最初の2つのフィールドが共通になっている. 100 * 優先度データキューへの送信待ちと優先度データキューからの受信待ちで, 101 * 同じ待ち情報ブロックを使う. 120 102 */ 121 103 typedef struct pridataq_waiting_information { 122 WINFO winfo; /* WÌÒ¿îñubN */ 123 PDQCB *p_pdqcb; /* ÒÁÄ¢éDæxf[^L 124 [ÌÇubN*/ 125 intptr_t data; /* óMf[^ */ 126 PRI datapri; /* f[^Dæx */ 104 WINFO winfo; /* 標準の待ち情報ブロック */ 105 PDQCB *p_pdqcb; /* 待っている優先度データキューの管理ブロック*/ 106 intptr_t data; /* 送受信データ */ 107 PRI datapri; /* データ優先度 */ 127 108 } WINFO_PDQ; 128 109 129 110 /* 130 * gpµÄ¢È¢Dæxf[^L 131 [ÇubNÌXg 111 * 使用していない優先度データキュー管理ブロックのリスト 132 112 */ 133 113 extern QUEUE free_pdqcb; 134 114 135 115 /* 136 * Dæxf[^L 137 [IDÌÅålikernel_cfg.cj 116 * 優先度データキューIDの最大値(kernel_cfg.c) 138 117 */ 139 118 extern const ID tmax_pdqid; … … 141 120 142 121 /* 143 * Dæxf[^L 144 [ú»ubNÌGAikernel_cfg.cj 122 * 優先度データキュー初期化ブロックのエリア(kernel_cfg.c) 145 123 */ 146 124 extern const PDQINIB pdqinib_table[]; … … 148 126 149 127 /* 150 * Dæxf[^L 151 [ÇubNÌGAikernel_cfg.cj 128 * 優先度データキュー管理ブロックのエリア(kernel_cfg.c) 152 129 */ 153 130 extern PDQCB pdqcb_table[]; 154 131 155 132 /* 156 * Dæxf[^L 157 [ÇubN©çDæxf[^L 158 [IDðæèo·½ 159 * ßÌ}N 133 * 優先度データキュー管理ブロックから優先度データキューIDを取り出すた 134 * めのマクロ 160 135 */ 161 136 #define PDQID(p_pdqcb) ((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID)) 162 137 163 138 /* 164 * Dæxf[^L 165 [@\Ìú» 139 * 優先度データキュー機能の初期化 166 140 */ 167 141 extern void initialize_pridataq(void); 168 142 169 143 /* 170 * Dæxf[^L 171 [ÇÌæÖÌf[^Ìi[ 144 * 優先度データキュー管理領域へのデータの格納 172 145 */ 173 146 extern void enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri); 174 147 175 148 /* 176 * Dæxf[^L 177 [ÇÌæ©çÌf[^Ìæoµ 149 * 優先度データキュー管理領域からのデータの取出し 178 150 */ 179 151 extern void dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri); 180 152 181 153 /* 182 * Dæxf[^L 183 [ÖÌf[^M 154 * 優先度データキューへのデータ送信 184 155 */ 185 156 extern bool_t send_pridata(PDQCB *p_pdqcb, intptr_t data, … … 187 158 188 159 /* 189 * Dæxf[^L 190 [©çÌf[^óM 160 * 優先度データキューからのデータ受信 191 161 */ 192 162 extern bool_t receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data, -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/semaphore.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Z}tH@\44 * セマフォ機能 49 45 */ 50 46 … … 56 52 57 53 /* 58 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 59 55 */ 60 56 #ifndef LOG_ACRE_SEM_ENTER … … 131 127 132 128 /* 133 * Z}tHÌ129 * セマフォの数 134 130 */ 135 131 #define tnum_sem ((uint_t)(tmax_semid - TMIN_SEMID + 1)) … … 137 133 138 134 /* 139 * Z}tHID©çZ}tHÇubNðæèo·½ßÌ}N135 * セマフォIDからセマフォ管理ブロックを取り出すためのマクロ 140 136 */ 141 137 #define INDEX_SEM(semid) ((uint_t)((semid) - TMIN_SEMID)) … … 145 141 146 142 /* 147 * gpµÄ¢È¢Z}tHÇubNÌXg143 * 使用していないセマフォ管理ブロックのリスト 148 144 */ 149 145 QUEUE free_semcb; 150 146 151 147 /* 152 * Z}tH@\Ìú»148 * セマフォ機能の初期化 153 149 */ 154 150 void … … 178 174 179 175 /* 180 * Z}tH̶¬176 * セマフォの生成 181 177 */ 182 178 #ifdef TOPPERS_acre_sem … … 220 216 221 217 /* 222 * Z}tHÌí218 * セマフォの削除 223 219 */ 224 220 #ifdef TOPPERS_del_sem … … 264 260 265 261 /* 266 * Z}tH¹ÌÔp262 * セマフォ資源の返却 267 263 */ 268 264 #ifdef TOPPERS_sig_sem … … 308 304 309 305 /* 310 * Z}tH¹ÌÔpiñ^XNReLXgpj306 * セマフォ資源の返却(非タスクコンテキスト用) 311 307 */ 312 308 #ifdef TOPPERS_isig_sem … … 352 348 353 349 /* 354 * Z}tH¹Ìl¾350 * セマフォ資源の獲得 355 351 */ 356 352 #ifdef TOPPERS_wai_sem … … 392 388 393 389 /* 394 * Z}tH¹Ìl¾i|[Oj390 * セマフォ資源の獲得(ポーリング) 395 391 */ 396 392 #ifdef TOPPERS_pol_sem … … 428 424 429 425 /* 430 * Z}tH¹Ìl¾i^CAEg èj426 * セマフォ資源の獲得(タイムアウトあり) 431 427 */ 432 428 #ifdef TOPPERS_twai_sem … … 474 470 475 471 /* 476 * Z}tHÌÄú»472 * セマフォの再初期化 477 473 */ 478 474 #ifdef TOPPERS_ini_sem … … 512 508 513 509 /* 514 * Z}tHÌóÔQÆ510 * セマフォの状態参照 515 511 */ 516 512 #ifdef TOPPERS_ref_sem -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/semaphore.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Z}tH@\44 * セマフォ機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * Z}tHú»ubN53 * セマフォ初期化ブロック 58 54 * 59 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌú»ubN̤ʪ60 * iWOBJINIBjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC61 * ÅÌtB[hª¤ÊÉÈÁÄ¢éD55 * この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分 56 * (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので, 57 * 最初のフィールドが共通になっている. 62 58 */ 63 59 typedef struct semaphore_initialization_block { 64 ATR sematr; /* Z}tH®«*/65 uint_t isemcnt; /* Z}tH̹Ìúl*/66 uint_t maxsem; /* Z}tHÌÅå¹*/60 ATR sematr; /* セマフォ属性 */ 61 uint_t isemcnt; /* セマフォの資源数の初期値 */ 62 uint_t maxsem; /* セマフォの最大資源数 */ 67 63 } SEMINIB; 68 64 69 65 /* 70 * Z}tHÇubN66 * セマフォ管理ブロック 71 67 * 72 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÇubN̤ʪiWOBJCBj73 * ðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅCÅÌ2ÂÌ74 * tB[hª¤ÊÉÈÁÄ¢éD68 * この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB) 69 * を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの 70 * フィールドが共通になっている. 75 71 */ 76 72 typedef struct semaphore_control_block { 77 QUEUE wait_queue; /* Z}tHÒ¿L 78 [ */ 79 const SEMINIB *p_seminib; /* ú»ubNÖÌ|C^ */ 80 uint_t semcnt; /* Z}tH»ÝJEgl */ 73 QUEUE wait_queue; /* セマフォ待ちキュー */ 74 const SEMINIB *p_seminib; /* 初期化ブロックへのポインタ */ 75 uint_t semcnt; /* セマフォ現在カウント値 */ 81 76 } SEMCB; 82 77 83 78 /* 84 * Z}tHÒ¿îñubNÌè`79 * セマフォ待ち情報ブロックの定義 85 80 * 86 * ±Ì\¢ÌÍC¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ87 * iWINFO_WOBJjðg£iIuWFNgwü¾êÌp³Éjµ½àÌÅC88 * ·×ÄÌtB[hª¤ÊÉÈÁÄ¢éD81 * この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分 82 * (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので, 83 * すべてのフィールドが共通になっている. 89 84 */ 90 85 typedef struct semaphore_waiting_information { 91 WINFO winfo; /* WÌÒ¿îñubN*/92 SEMCB *p_semcb; /* ÒÁÄ¢éZ}tHÌÇubN*/86 WINFO winfo; /* 標準の待ち情報ブロック */ 87 SEMCB *p_semcb; /* 待っているセマフォの管理ブロック */ 93 88 } WINFO_SEM; 94 89 95 90 /* 96 * gpµÄ¢È¢Z}tHÇubNÌXg91 * 使用していないセマフォ管理ブロックのリスト 97 92 */ 98 93 extern QUEUE free_semcb; 99 94 100 95 /* 101 * Z}tHIDÌÅålikernel_cfg.cj96 * セマフォIDの最大値(kernel_cfg.c) 102 97 */ 103 98 extern const ID tmax_semid; … … 105 100 106 101 /* 107 * Z}tHú»ubNÌGAikernel_cfg.cj102 * セマフォ初期化ブロックのエリア(kernel_cfg.c) 108 103 */ 109 104 extern const SEMINIB seminib_table[]; … … 111 106 112 107 /* 113 * Z}tHÇubNÌGAikernel_cfg.cj108 * セマフォ管理ブロックのエリア(kernel_cfg.c) 114 109 */ 115 110 extern SEMCB semcb_table[]; 116 111 117 112 /* 118 * Z}tHÇubN©çZ}tHIDðæèo·½ßÌ}N113 * セマフォ管理ブロックからセマフォIDを取り出すためのマクロ 119 114 */ 120 115 #define SEMID(p_semcb) ((ID)(((p_semcb) - semcb_table) + TMIN_SEMID)) 121 116 122 117 /* 123 * Z}tH@\Ìú»118 * セマフォ機能の初期化 124 119 */ 125 120 extern void initialize_semaphore(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/startup.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * J[lÌú»ÆI¹44 * カーネルの初期化と終了処理 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_KER_ENTER … … 75 71 76 72 /* 77 * J[l®ìóÔtO73 * カーネル動作状態フラグ 78 74 * 79 * X^[gAbv[`ÅCfalsei0jÉú»³êé±ÆðúÒµÄ80 * ¢éD75 * スタートアップルーチンで,false(=0)に初期化されることを期待して 76 * いる. 81 77 */ 82 78 bool_t kerflg = false; 83 79 84 80 /* 85 * J[lÌN®81 * カーネルの起動 86 82 */ 87 83 void … … 89 85 { 90 86 /* 91 * ^[Qbg˶Ìú»87 * ターゲット依存の初期化 92 88 */ 93 89 target_initialize(); 94 90 95 91 /* 96 * eW 97 [Ìú» 92 * 各モジュールの初期化 98 93 * 99 * ^CCxgÇW 100 [ͼÌW 101 [æèæÉú» 102 * ·éKvª éD 94 * タイムイベント管理モジュールは他のモジュールより先に初期化 95 * する必要がある. 103 96 */ 104 97 initialize_kmm(); … … 107 100 108 101 /* 109 * ú»[`ÌÀs102 * 初期化ルーチンの実行 110 103 */ 111 104 call_inirtn(); 112 105 113 106 /* 114 * J[l®ìÌJn107 * カーネル動作の開始 115 108 */ 116 109 kerflg = true; … … 123 116 124 117 /* 125 * J[lÌI¹118 * カーネルの終了 126 119 */ 127 120 #ifdef TOPPERS_ext_ker … … 135 128 136 129 /* 137 * ÝbNóÔÉÚs130 * 割込みロック状態に移行 138 131 */ 139 132 SIL_LOC_INT(); 140 133 141 134 /* 142 * J[l®ìÌI¹135 * カーネル動作の終了 143 136 */ 144 137 LOG_KER_LEAVE(); … … 146 139 147 140 /* 148 * J[lÌI¹ÌÄoµ141 * カーネルの終了処理の呼出し 149 142 * 150 * ñ^XNReLXgÉØè·¦ÄCexit_kernelðÄÑo·D143 * 非タスクコンテキストに切り換えて,exit_kernelを呼び出す. 151 144 */ 152 145 call_exit_kernel(); 153 146 154 147 /* 155 * RpCÌxÎôi±±Öé±ÆÍȢ͸j148 * コンパイラの警告対策(ここへ来ることはないはず) 156 149 */ 157 150 SIL_UNL_INT(); … … 161 154 162 155 /* 163 * J[lÌI¹156 * カーネルの終了処理 164 157 */ 165 158 void … … 167 160 { 168 161 /* 169 * I¹[`ÌÀs162 * 終了処理ルーチンの実行 170 163 */ 171 164 call_terrtn(); 172 165 173 166 /* 174 * ^[Qbg˶ÌI¹167 * ターゲット依存の終了処理 175 168 */ 176 169 target_exit(); … … 181 174 182 175 /* 183 * J[lÌèt¯éÌæÌÇ176 * カーネルの割り付けるメモリ領域の管理 184 177 * 185 * Ìæð檩çÉèÄCðú³ê½ÌæðÄpµÈ 186 * ¢ÇW 187 [D 178 * メモリ領域を先頭から順に割り当て,解放されたメモリ領域を再利用しな 179 * いメモリ管理モジュール. 188 180 */ 189 181 #ifdef TOPPERS_kermem -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/sys_manage.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VXeóÔÇ@\44 * システム状態管理機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_ROT_RDQ_ENTER … … 177 173 178 174 /* 179 * ^XNÌDæÊÌñ]175 * タスクの優先順位の回転 180 176 */ 181 177 #ifdef TOPPERS_rot_rdq … … 207 203 208 204 /* 209 * ^XNÌDæÊÌñ]iñ^XNReLXgpj205 * タスクの優先順位の回転(非タスクコンテキスト用) 210 206 */ 211 207 #ifdef TOPPERS_irot_rdq … … 235 231 236 232 /* 237 * ÀsóÔÌ^XNIDÌQÆ233 * 実行状態のタスクIDの参照 238 234 */ 239 235 #ifdef TOPPERS_get_tid … … 260 256 261 257 /* 262 * ÀsóÔÌ^XNIDÌQÆiñ^XNReLXgpj258 * 実行状態のタスクIDの参照(非タスクコンテキスト用) 263 259 */ 264 260 #ifdef TOPPERS_iget_tid … … 285 281 286 282 /* 287 * CPU bNóÔÖÌÚs283 * CPUロック状態への移行 288 284 */ 289 285 #ifdef TOPPERS_loc_cpu … … 310 306 311 307 /* 312 * CPU bNóÔÖÌÚsiñ^XNReLXgpj308 * CPUロック状態への移行(非タスクコンテキスト用) 313 309 */ 314 310 #ifdef TOPPERS_iloc_cpu … … 335 331 336 332 /* 337 * CPU bNóÔÌð333 * CPUロック状態の解除 338 334 * 339 * CPU bNÍCfBXpb`ªKvÆÈéT[rXR[ðÄÑo·±340 * ÆÍÅ«È¢½ßCCPUbNóÔÌðÉfBXpb`ðN®·é341 * KvÍÈ¢D335 * CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ 336 * とはできないため,CPUロック状態の解除時にディスパッチャを起動する 337 * 必要はない. 342 338 */ 343 339 #ifdef TOPPERS_unl_cpu … … 364 360 365 361 /* 366 * CPU bNóÔÌðiñ^XNReLXgpj362 * CPUロック状態の解除(非タスクコンテキスト用) 367 363 * 368 * CPU bNÍCfBXpb`ªKvÆÈéT[rXR[ðÄÑo·±369 * ÆÍÅ«È¢½ßCCPUbNóÔÌðÉfBXpb`ÌN®ðv370 * ·éKvÍÈ¢D364 * CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ 365 * とはできないため,CPUロック状態の解除時にディスパッチャの起動を要 366 * 求する必要はない. 371 367 */ 372 368 #ifdef TOPPERS_iunl_cpu … … 393 389 394 390 /* 395 * fBXpb`ÌÖ~391 * ディスパッチの禁止 396 392 */ 397 393 #ifdef TOPPERS_dis_dsp … … 419 415 420 416 /* 421 * fBXpb`ÌÂ417 * ディスパッチの許可 422 418 */ 423 419 #ifdef TOPPERS_ena_dsp … … 450 446 451 447 /* 452 * ReLXgÌQÆ448 * コンテキストの参照 453 449 */ 454 450 #ifdef TOPPERS_sns_ctx … … 468 464 469 465 /* 470 * CPU bNóÔÌQÆ466 * CPUロック状態の参照 471 467 */ 472 468 #ifdef TOPPERS_sns_loc … … 486 482 487 483 /* 488 * fBXpb`Ö~óÔÌQÆ484 * ディスパッチ禁止状態の参照 489 485 */ 490 486 #ifdef TOPPERS_sns_dsp … … 504 500 505 501 /* 506 * fBXpb`Û¯óÔÌQÆ502 * ディスパッチ保留状態の参照 507 503 */ 508 504 #ifdef TOPPERS_sns_dpn … … 522 518 523 519 /* 524 * J[lñ®ìóÔÌQÆ520 * カーネル非動作状態の参照 525 521 */ 526 522 #ifdef TOPPERS_sns_ker -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * ^XNÇW 49 [ 44 * タスク管理モジュール 50 45 */ 51 46 … … 55 50 56 51 /* 57 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 58 53 */ 59 54 #ifndef LOG_TEX_ENTER … … 68 63 69 64 /* 70 * ÀsóÔÌ^XN65 * 実行状態のタスク 71 66 */ 72 67 TCB *p_runtsk; 73 68 74 69 /* 75 * ÅDæÊÌ^XN70 * 最高優先順位のタスク 76 71 */ 77 72 TCB *p_schedtsk; 78 73 79 74 /* 80 * ^XNfBXpb`^^XNáO[`N®vtO75 * タスクディスパッチ/タスク例外処理ルーチン起動要求フラグ 81 76 */ 82 77 bool_t reqflg; 83 78 84 79 /* 85 * ÝDæx}XNSðóÔ80 * 割込み優先度マスク全解除状態 86 81 */ 87 82 bool_t ipmflg; 88 83 89 84 /* 90 * fBXpb`Ö~óÔ85 * ディスパッチ禁止状態 91 86 */ 92 87 bool_t disdsp; 93 88 94 89 /* 95 * ^XNfBXpb`Â\óÔ90 * タスクディスパッチ可能状態 96 91 */ 97 92 bool_t dspflg; 98 93 99 94 /* 100 * fBL 101 [ 95 * レディキュー 102 96 */ 103 97 QUEUE ready_queue[TNUM_TPRI]; 104 98 105 99 /* 106 * fBL 107 [T[`̽ßÌrbg}bv 100 * レディキューサーチのためのビットマップ 108 101 */ 109 102 uint16_t ready_primap; 110 103 111 104 /* 112 * gpµÄ¢È¢TCBÌXg105 * 使用していないTCBのリスト 113 106 */ 114 107 QUEUE free_tcb; 115 108 116 109 /* 117 * ^XNÇW 118 [Ìú» 110 * タスク管理モジュールの初期化 119 111 */ 120 112 void … … 160 152 161 153 /* 162 * rbg}bvT[`Ö163 * 164 * bitmap àÌ1ÌrbgÌàCÅàºÊiEjÌàÌðT[`µC»Ìrb165 * gÔðÔ·DrbgÔÍCźÊrbgð0Æ·éDbitmapÉ0ðwè166 * µÄÍÈçÈ¢D±ÌÖÅÍCbitmapª16rbgÅ é±Æð¼èµC167 * uint16_t ^ƵĢéD168 * 169 * rbgT[`½ßðÂvZbTÅÍCrbgT[`½ßðg¤æ¤É170 * «¼µ½ûªø¦ªÇ¢êª éD±Ìæ¤ÈêÉÍC^[Qbg171 * ˶ÅrbgT[`½ßðgÁ½bitmap_searchðè`µC172 * OMIT_BITMAP_SEARCH ð}Nè`·êÎæ¢DܽCrbgT[`½ßÌ173 * T[`ûüªtÈÇÌRÅDæxÆrbgÆÌÎðÏXµ½¢êÉ174 * ÍCPRIMAP_BITð}Nè`·êÎæ¢D175 * 176 * ܽCCuÉffsª éÈçCÌæ¤Éè`µÄCuÖð177 * gÁ½ûªø¦ªÇ¢Â\«à éD154 * ビットマップサーチ関数 155 * 156 * bitmap内の1のビットの内,最も下位(右)のものをサーチし,そのビッ 157 * ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定 158 * してはならない.この関数では,bitmapが16ビットであることを仮定し, 159 * uint16_t型としている. 160 * 161 * ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように 162 * 書き直した方が効率が良い場合がある.このような場合には,ターゲット 163 * 依存部でビットサーチ命令を使ったbitmap_searchを定義し, 164 * OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の 165 * サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に 166 * は,PRIMAP_BITをマクロ定義すればよい. 167 * 168 * また,ライブラリにffsがあるなら,次のように定義してライブラリ関数を 169 * 使った方が効率が良い可能性もある. 178 170 * #define bitmap_search(bitmap) (ffs(bitmap) - 1) 179 171 */ … … 207 199 208 200 /* 209 * Dæxrbg}bvªó©Ì`FbN201 * 優先度ビットマップが空かのチェック 210 202 */ 211 203 Inline bool_t … … 216 208 217 209 /* 218 * Dæxrbg}bvÌT[`210 * 優先度ビットマップのサーチ 219 211 */ 220 212 Inline uint_t … … 225 217 226 218 /* 227 * Dæxrbg}bvÌZbg219 * 優先度ビットマップのセット 228 220 */ 229 221 Inline void … … 234 226 235 227 /* 236 * Dæxrbg}bvÌNA228 * 優先度ビットマップのクリア 237 229 */ 238 230 Inline void … … 243 235 244 236 /* 245 * ÅDæÊ^XNÌT[`237 * 最高優先順位タスクのサーチ 246 238 */ 247 239 #ifdef TOPPERS_tsksched … … 259 251 260 252 /* 261 * ÀsÅ«éóÔÖÌJÚ262 * 263 * ÅDæÊÌ^XNðXV·éÌÍCÀsÅ«é^XNªÈ©Á½ê264 * ÆCp_tcbÌDæxªÅDæÊÌ^XNÌDæxæèà¢êÅ265 * éD253 * 実行できる状態への遷移 254 * 255 * 最高優先順位のタスクを更新するのは,実行できるタスクがなかった場合 256 * と,p_tcbの優先度が最高優先順位のタスクの優先度よりも高い場合であ 257 * る. 266 258 */ 267 259 #ifdef TOPPERS_tskrun … … 285 277 286 278 /* 287 * ÀsÅ«éóÔ©ç¼ÌóÔÖÌJÚ 288 * 289 * ÅDæÊÌ^XNðXV·éÌÍCp_tcbªÅDæÊÌ^XNÅ 290 * Á½êÅ éDp_tcbƯ¶DæxÌ^XNª¼É éêÍCp_tcb 291 * ÌÌ^XNªÅDæÊÉÈéD»¤ÅÈ¢êÍCfBL 292 [ð 293 * T[`·éKvª éD 279 * 実行できる状態から他の状態への遷移 280 * 281 * 最高優先順位のタスクを更新するのは,p_tcbが最高優先順位のタスクで 282 * あった場合である.p_tcbと同じ優先度のタスクが他にある場合は,p_tcb 283 * の次のタスクが最高優先順位になる.そうでない場合は,レディキューを 284 * サーチする必要がある. 294 285 */ 295 286 #ifdef TOPPERS_tsknrun … … 321 312 322 313 /* 323 * x~óÔÖÌJÚ314 * 休止状態への遷移 324 315 */ 325 316 #ifdef TOPPERS_tskdmt … … 339 330 340 331 /* 341 * x~óÔ©çÀsÅ«éóÔÖÌJÚ332 * 休止状態から実行できる状態への遷移 342 333 */ 343 334 #ifdef TOPPERS_tskact … … 355 346 356 347 /* 357 * ^XNÌDæxÌÏX 358 * 359 * ^XNªÀsÅ«éóÔÌêÉÍCfBL 360 [ÌÅÌÊuðÏX· 361 * éDIuWFNgÌÒ¿L 362 [ÌÅÒ¿óÔÉÈÁÄ¢éêÉÍCÒ 363 * ¿L 364 [ÌÅÌÊuðÏX·éD 365 * 366 * ÅDæÊÌ^XNðXV·éÌÍC(1) p_tcbªÅDæÊÌ^X 367 * NÅ ÁÄC»ÌDæx𺰽êC(2) p_tcbªÅDæÊÌ^X 368 * NÅÍÈCÏXãÌDæxªÅDæÊÌ^XNÌDæxæèࢠ369 * êÅ éD(1)ÌêÉÍCfBL 370 [ðT[`·éKvª éD 348 * タスクの優先度の変更 349 * 350 * タスクが実行できる状態の場合には,レディキューの中での位置を変更す 351 * る.オブジェクトの待ちキューの中で待ち状態になっている場合には,待 352 * ちキューの中での位置を変更する. 353 * 354 * 最高優先順位のタスクを更新するのは,(1) p_tcbが最高優先順位のタス 355 * クであって,その優先度を下げた場合,(2) p_tcbが最高優先順位のタス 356 * クではなく,変更後の優先度が最高優先順位のタスクの優先度よりも高い 357 * 場合である.(1)の場合には,レディキューをサーチする必要がある. 371 358 */ 372 359 #ifdef TOPPERS_tskpri … … 382 369 if (TSTAT_RUNNABLE(p_tcb->tstat)) { 383 370 /* 384 * ^XNªÀsÅ«éóÔÌê371 * タスクが実行できる状態の場合 385 372 */ 386 373 queue_delete(&(p_tcb->task_queue)); … … 407 394 if (TSTAT_WAIT_WOBJCB(p_tcb->tstat)) { 408 395 /* 409 * ^XNªC¯úEÊMIuWFNgÌÇubNÌ¤Ê 410 * ªiWOBJCBjÌÒ¿L 411 [ÉÂȪêÄ¢éê 396 * タスクが,同期・通信オブジェクトの管理ブロックの共通部 397 * 分(WOBJCB)の待ちキューにつながれている場合 412 398 */ 413 399 wobj_change_priority(((WINFO_WOBJ *)(p_tcb->p_winfo))->p_wobjcb, … … 421 407 422 408 /* 423 * fBL 424 [Ìñ] 425 * 426 * ÅDæÊÌ^XNðXV·éÌÍCÅDæÊÌ^XNª^XNL 427 * 428 [ÌöÉÚ®µ½êÅ éD 409 * レディキューの回転 410 * 411 * 最高優先順位のタスクを更新するのは,最高優先順位のタスクがタスクキ 412 * ューの末尾に移動した場合である. 429 413 */ 430 414 #ifdef TOPPERS_tskrot … … 450 434 451 435 /* 452 * ^XNáO[`ÌÄoµ453 * 454 * ASP J[lÅÍC^XNáO[`àÅCPUbNóÔÉJÚµC455 * ³ÌóÔÉß³¸É^[µ½êCJ[lª³ÌóÔÉß·D436 * タスク例外処理ルーチンの呼出し 437 * 438 * ASPカーネルでは,タスク例外処理ルーチン内でCPUロック状態に遷移し, 439 * 元の状態に戻さずにリターンした場合,カーネルが元の状態に戻す. 456 440 */ 457 441 #ifdef TOPPERS_tsktex … … 486 470 if (p_runtsk != p_schedtsk && dspflg) { 487 471 /* 488 * ±±ÅdispatchðÄÑo·ÍCÝÄAÄoµÉÈÁÄ489 * ¢éªCdispatchðÄÔOÉp_runtsk->enatexðfalseɵÄ490 * ¨¯ÎxáªÈ¢D»ÌRÉ¢ÄÍCuTOPPERS/ASP J[491 * l ÝvvðQÆ̱ÆD472 * ここでdispatchを呼び出す処理は,相互再帰呼出しになって 473 * いるが,dispatchを呼ぶ前にp_runtsk->enatexをfalseにして 474 * おけば支障がない.その理由については,「TOPPERS/ASP カー 475 * ネル 設計メモ」を参照のこと. 492 476 */ 493 477 dispatch(); … … 498 482 499 483 /* 500 * ^XNáO[`ÌN®484 * タスク例外処理ルーチンの起動 501 485 */ 502 486 #ifndef OMIT_CALLTEX -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * ^XNÇW 49 [ 44 * タスク管理モジュール 50 45 */ 51 46 … … 57 52 58 53 /* 59 * g[XO}NÌftHgè`54 * トレースログマクロのデフォルト定義 60 55 */ 61 56 #ifndef LOG_TSKSTAT … … 64 59 65 60 /* 66 * ^XNDæxÌà\»EO\»Ï·}N61 * タスク優先度の内部表現・外部表現変換マクロ 67 62 */ 68 63 #define INT_PRIORITY(x) ((uint_t)((x) - TMIN_TPRI)) … … 70 65 71 66 /* 72 * ^XNóÔÌà\» 73 * 74 * TCBÌ^XNóÔÅÍCÀsóÔiRUNNINGjÆÀsÂ\óÔiREADYj 75 * ÍæʵȢD¼óÔð̵ÄCÀsÅ«éóÔiRUNNABLEjÆÄÔD 76 * ñdÒ¿óÔÍC(TS_WAITING | TS_SUSPENDED)Å\·DTS_WAIT_???ÍÒ 77 * ¿vöð\µCÒ¿óÔiñdÒ¿óÔðÜÞjÌêÉÌÝÝè·éD 78 */ 79 #define TS_DORMANT 0x00U /* x~óÔ */ 80 #define TS_RUNNABLE 0x01U /* ÀsÅ«éóÔ */ 81 #define TS_WAITING 0x02U /* Ò¿óÔ */ 82 #define TS_SUSPENDED 0x04U /* §Ò¿óÔ */ 83 84 #define TS_WAIT_DLY (0x00U << 3) /* ÔoßÒ¿ */ 85 #define TS_WAIT_SLP (0x01U << 3) /* N°Ò¿ */ 86 #define TS_WAIT_RDTQ (0x02U << 3) /* f[^L 87 [©çÌóMÒ¿ */ 88 #define TS_WAIT_RPDQ (0x03U << 3) /* Dæxf[^L 89 [©çÌóMÒ¿ */ 90 #define TS_WAIT_SEM (0x04U << 3) /* Z}tH¹Ìl¾Ò¿ */ 91 #define TS_WAIT_FLG (0x05U << 3) /* CxgtOÒ¿ */ 92 #define TS_WAIT_SDTQ (0x06U << 3) /* f[^L 93 [ÖÌMÒ¿ */ 94 #define TS_WAIT_SPDQ (0x07U << 3) /* Dæxf[^L 95 [ÖÌMÒ¿ */ 96 #define TS_WAIT_MBX (0x08U << 3) /* [{bNX©çÌóMÒ¿ */ 97 #define TS_WAIT_MPF (0x09U << 3) /* Åè·ubNÌl¾Ò¿ */ 98 99 /* 100 * ^XNóÔ»Ê}N 101 * 102 * TSTAT_DORMANTÍ^XNªx~óÔÅ é©Ç¤©ðCTSTAT_RUNNABLEÍ 103 * ^XNªÀsÅ«éóÔÅ é©Ç¤©ð»Ê·éDTSTAT_WAITINGÍÒ 104 * ¿óÔÆñdÒ¿óÔÌ¢¸ê©Å é©Ç¤©ðCTSTAT_SUSPENDEDÍ 105 * §Ò¿óÔÆñdÒ¿óÔÌ¢¸ê©Å é©Ç¤©ð»Ê·éD 67 * タスク状態の内部表現 68 * 69 * TCB中のタスク状態では,実行状態(RUNNING)と実行可能状態(READY) 70 * は区別しない.両状態を総称して,実行できる状態(RUNNABLE)と呼ぶ. 71 * 二重待ち状態は,(TS_WAITING | TS_SUSPENDED)で表す.TS_WAIT_???は待 72 * ち要因を表し,待ち状態(二重待ち状態を含む)の場合にのみ設定する. 73 */ 74 #define TS_DORMANT 0x00U /* 休止状態 */ 75 #define TS_RUNNABLE 0x01U /* 実行できる状態 */ 76 #define TS_WAITING 0x02U /* 待ち状態 */ 77 #define TS_SUSPENDED 0x04U /* 強制待ち状態 */ 78 79 #define TS_WAIT_DLY (0x00U << 3) /* 時間経過待ち */ 80 #define TS_WAIT_SLP (0x01U << 3) /* 起床待ち */ 81 #define TS_WAIT_RDTQ (0x02U << 3) /* データキューからの受信待ち */ 82 #define TS_WAIT_RPDQ (0x03U << 3) /* 優先度データキューからの受信待ち */ 83 #define TS_WAIT_SEM (0x04U << 3) /* セマフォ資源の獲得待ち */ 84 #define TS_WAIT_FLG (0x05U << 3) /* イベントフラグ待ち */ 85 #define TS_WAIT_SDTQ (0x06U << 3) /* データキューへの送信待ち */ 86 #define TS_WAIT_SPDQ (0x07U << 3) /* 優先度データキューへの送信待ち */ 87 #define TS_WAIT_MBX (0x08U << 3) /* メールボックスからの受信待ち */ 88 #define TS_WAIT_MPF (0x09U << 3) /* 固定長メモリブロックの獲得待ち */ 89 90 /* 91 * タスク状態判別マクロ 92 * 93 * TSTAT_DORMANTはタスクが休止状態であるかどうかを,TSTAT_RUNNABLEは 94 * タスクが実行できる状態であるかどうかを判別する.TSTAT_WAITINGは待 95 * ち状態と二重待ち状態のいずれかであるかどうかを,TSTAT_SUSPENDEDは 96 * 強制待ち状態と二重待ち状態のいずれかであるかどうかを判別する. 106 97 */ 107 98 #define TSTAT_DORMANT(tstat) ((tstat) == TS_DORMANT) … … 111 102 112 103 /* 113 * ^XNÒ¿vö»Ê}N 114 * 115 * TSTAT_WAIT_SLPÍ^XNªN°Ò¿Å é©Ç¤©ðCTSTAT_WAIT_WOBJ 116 * Í^XNª¯úEÊMIuWFNgÉηéÒ¿Å é©i¾¢·¦éÆC 117 * ¯úÊMIuWFNgÌÒ¿L 118 [ÉÂȪêÄ¢é©jǤ©ð»Ê· 119 * éDܽCTSTAT_WAIT_WOBJCBÍ^XNª¯úEÊMIuWFNgÌÇ 120 * ubN̤ʪiWOBJCBjÌÒ¿L 121 [ÉÂȪêÄ¢é©Ç¤©ð 122 * »Ê·éD 123 * 124 * TSTAT_WAIT_SLPÍCCÓÌ^XNóÔÌ©çC^XNªN°Ò¿Å é 125 * ±Æð»ÊÅ«éD·Èí¿CTSTAT_WAITINGÉæèÒ¿óÔÅ é±Æð 126 * »Ê¹¸ÉCTSTAT_SLP¾¯ðp¢ÄN°Ò¿óÔÅ é±Æð»ÊÅ«éD 127 * ±êðø¦IÉÀ»·é½ßÉCTS_WAIT_SLPÌlðC(0x00U << 3)ÅÍÈ 128 * (0x01U << 3)ƵĢéD»Ì½ßC^XNªÔoßÒ¿óÔÅ é 129 * ±Æð»Ê·é½ßÌTSTAT_WAIT_DLYðCTSTAT_WAIT_SLPƯlÌû@Å 130 * À»·é±ÆÍÅ«È¢D 131 */ 132 #define TS_WAIT_MASK (0x0fU << 3) /* Ò¿vöÌæoµ}XN */ 104 * タスク待ち要因判別マクロ 105 * 106 * TSTAT_WAIT_SLPはタスクが起床待ちであるかどうかを,TSTAT_WAIT_WOBJ 107 * はタスクが同期・通信オブジェクトに対する待ちであるか(言い換えると, 108 * 同期通信オブジェクトの待ちキューにつながれているか)どうかを判別す 109 * る.また,TSTAT_WAIT_WOBJCBはタスクが同期・通信オブジェクトの管理 110 * ブロックの共通部分(WOBJCB)の待ちキューにつながれているかどうかを 111 * 判別する. 112 * 113 * TSTAT_WAIT_SLPは,任意のタスク状態の中から,タスクが起床待ちである 114 * ことを判別できる.すなわち,TSTAT_WAITINGにより待ち状態であることを 115 * 判別せずに,TSTAT_SLPだけを用いて起床待ち状態であることを判別できる. 116 * これを効率的に実現するために,TS_WAIT_SLPの値を,(0x00U << 3)ではな 117 * く(0x01U << 3)としている.そのため,タスクが時間経過待ち状態である 118 * ことを判別するためのTSTAT_WAIT_DLYを,TSTAT_WAIT_SLPと同様の方法で 119 * 実現することはできない. 120 */ 121 #define TS_WAIT_MASK (0x0fU << 3) /* 待ち要因の取出しマスク */ 133 122 134 123 #define TSTAT_WAIT_SLP(tstat) (((tstat) & TS_WAIT_MASK) == TS_WAIT_SLP) … … 137 126 138 127 /* 139 * Ò¿îñubNiWINFOjÌè` 140 * 141 * ^XNªÒ¿óÔÌÔÍCTCB¨æÑ»Ìp_winfoÅw³êéWINFOðÌ 142 * æ¤ÉÝèµÈ¯êÎÈçÈ¢D 143 * 144 * (a) TCBÌ^XNóÔðÒ¿óÔiTS_WAITINGjÉ·éD»ÌÛÉCÒ¿ 145 * vöiTS_WAIT_???jàÝè·éD 146 * 147 * (b) ^CAEgðÄ·é½ßÉC^CCxgubNðo^·éD 148 * o^·é^CCxgubNÍCÒ¿ÉüéT[rXR[Ö 149 * Ì[JÏƵÄmÛµC»êÖÌ|C^ðWINFOÌp_tmevtbÉL 150 * ¯·éD^CAEgÌĪKvÈ¢êiivÒ¿ÌêjÉÍC 151 * p_tmevtbðNULLÉ·éD 152 * 153 * ¯úEÊMIuWFNgÉηéÒ¿óÔÌêÉÍCWÌWINFOÉ 154 * p_wobjcbtB[hðÇÁµ½\¢ÌiWINFO_WOBJCwait.hÅè`jðg 155 * ¤DܽCȺÌ(c)`(e)ÌÝèðs¤Kvª éD¯úEÊMIuWF 156 * NgÉÖWµÈ¢Ò¿iN°Ò¿CÔoßÒ¿jÌêÉÍC(c)`(e) 157 * ÍKvÈ¢D 158 * 159 * (c) TCBðÒ¿ÎÛ̯úEÊMIuWFNgÌÒ¿L 160 [ÉÂÈ®DÒ 161 * ¿L 162 [ÉÂÈ®½ßÉCtask_queueðg¤D 163 * 164 * (d) Ò¿ÎÛ̯úEÊMIuWFNgÌÇubNÖÌ|C^ðC 165 * WINFO_WOBJÌp_wobjcbÉL¯·éD 166 * 167 * (e) Ò¿ÎÛ̯úEÊMIuWFNgÉ˶µÄL¯·é±ÆªKvÈ 168 * îñª éêÉÍCWINFO_WOBJÉKvÈîñ̽ßÌtB[hðÇÁ 169 * µ½\¢Ìðè`µCWINFO_WOBJÌãíèÉp¢éD 170 * 171 * Ò¿óÔðð·éÛÉÍCÒ¿ðµ½^XNÉηéÔlðWINFOÌ 172 * wercdÉÝè·éDwercdªKvÈÌÍÒ¿ðÈ~Å éÌÉεÄC 173 * p_tmevtbÍÒ¿ðãÍKvÈ¢½ßCßñ̽ßɤpÌðgÁ 174 * Ä¢éD»Ì½ßCwercdÖG[R[hðÝè·éÌÍC^CCxg 175 * ubNðo^ðµ½ãɵȯêÎÈçÈ¢D 128 * 待ち情報ブロック(WINFO)の定義 129 * 130 * タスクが待ち状態の間は,TCBおよびそのp_winfoで指されるWINFOを次の 131 * ように設定しなければならない. 132 * 133 * (a) TCBのタスク状態を待ち状態(TS_WAITING)にする.その際に,待ち 134 * 要因(TS_WAIT_???)も設定する. 135 * 136 * (b) タイムアウトを監視するために,タイムイベントブロックを登録する. 137 * 登録するタイムイベントブロックは,待ちに入るサービスコール処理関数 138 * のローカル変数として確保し,それへのポインタをWINFOのp_tmevtbに記 139 * 憶する.タイムアウトの監視が必要ない場合(永久待ちの場合)には, 140 * p_tmevtbをNULLにする. 141 * 142 * 同期・通信オブジェクトに対する待ち状態の場合には,標準のWINFOに 143 * p_wobjcbフィールドを追加した構造体(WINFO_WOBJ,wait.hで定義)を使 144 * う.また,以下の(c)〜(e)の設定を行う必要がある.同期・通信オブジェ 145 * クトに関係しない待ち(起床待ち,時間経過待ち)の場合には,(c)〜(e) 146 * は必要ない. 147 * 148 * (c) TCBを待ち対象の同期・通信オブジェクトの待ちキューにつなぐ.待 149 * ちキューにつなぐために,task_queueを使う. 150 * 151 * (d) 待ち対象の同期・通信オブジェクトの管理ブロックへのポインタを, 152 * WINFO_WOBJのp_wobjcbに記憶する. 153 * 154 * (e) 待ち対象の同期・通信オブジェクトに依存して記憶することが必要な 155 * 情報がある場合には,WINFO_WOBJに必要な情報のためのフィールドを追加 156 * した構造体を定義し,WINFO_WOBJの代わりに用いる. 157 * 158 * 待ち状態を解除する際には,待ち解除したタスクに対する返値をWINFOの 159 * wercdに設定する.wercdが必要なのは待ち解除以降であるのに対して, 160 * p_tmevtbは待ち解除後は必要ないため,メモリ節約のために共用体を使っ 161 * ている.そのため,wercdへエラーコードを設定するのは,タイムイベント 162 * ブロックを登録解除した後にしなければならない. 176 163 */ 177 164 typedef union waiting_information { 178 ER wercd; /* Ò¿ðÌG[R[h*/179 TMEVTB *p_tmevtb; /* Ò¿óÔpÌ^CCxgubN*/165 ER wercd; /* 待ち解除時のエラーコード */ 166 TMEVTB *p_tmevtb; /* 待ち状態用のタイムイベントブロック */ 180 167 } WINFO; 181 168 182 169 /* 183 * ^XNú»ubN184 * 185 * ^XNÉÖ·éîñðClªÏíçÈ¢½ßÉROMÉu¯éªi^XN186 * ú»ubNjÆClªÏ»·é½ßÉRAMÉu©È¯êÎÈçÈ¢187 * ªi^XNÇubNCTCBjɪ£µCTCBàÉηé^XNú»188 * ubNðw·|C^ðüêéD^XNú»ubNàÉηé189 * TCB ðw·|C^ðüêéû@ÌûªCRAMÌßñÌÏ_©çÍ]ܵ¢190 * ªCÀsø¦ª«Èé½ßÉÌpµÄ¢È¢D¼ÌIuWFNgÉ¢191 * Äà¯lɵ¤D192 * 193 * ^XNú»ubNÉÍCDEF_TEXÅè`³êé^XNáO[`194 * ÉÖ·éîñàÜÞD170 * タスク初期化ブロック 171 * 172 * タスクに関する情報を,値が変わらないためにROMに置ける部分(タスク 173 * 初期化ブロック)と,値が変化するためにRAMに置かなければならない部 174 * 分(タスク管理ブロック,TCB)に分離し,TCB内に対応するタスク初期化 175 * ブロックを指すポインタを入れる.タスク初期化ブロック内に対応する 176 * TCBを指すポインタを入れる方法の方が,RAMの節約の観点からは望ましい 177 * が,実行効率が悪くなるために採用していない.他のオブジェクトについ 178 * ても同様に扱う. 179 * 180 * タスク初期化ブロックには,DEF_TEXで定義されるタスク例外処理ルーチ 181 * ンに関する情報も含む. 195 182 */ 196 183 typedef struct task_initialization_block { 197 ATR tskatr; /* ^XN®«*/198 intptr_t exinf; /* ^XNÌg£îñ*/199 TASK task; /* ^XNÌN®Ôn*/200 uint_t ipriority; /* ^XNÌN®Dæxià\»j*/184 ATR tskatr; /* タスク属性 */ 185 intptr_t exinf; /* タスクの拡張情報 */ 186 TASK task; /* タスクの起動番地 */ 187 uint_t ipriority; /* タスクの起動時優先度(内部表現) */ 201 188 202 189 #ifdef USE_TSKINICTXB 203 TSKINICTXB tskinictxb; /* ^XNú»ReLXgubN*/190 TSKINICTXB tskinictxb; /* タスク初期化コンテキストブロック */ 204 191 #else /* USE_TSKINICTXB */ 205 SIZE stksz; /* X^bNÌæÌTCYiÛß½lj*/206 void *stk; /* X^bNÌæÌæªÔn*/192 SIZE stksz; /* スタック領域のサイズ(丸めた値) */ 193 void *stk; /* スタック領域の先頭番地 */ 207 194 #endif /* USE_TSKINICTXB */ 208 195 209 ATR texatr; /* ^XNáO[`®«*/210 TEXRTN texrtn; /* ^XNáO[`ÌN®Ôn*/196 ATR texatr; /* タスク例外処理ルーチン属性 */ 197 TEXRTN texrtn; /* タスク例外処理ルーチンの起動番地 */ 211 198 } TINIB; 212 199 213 200 /* 214 * TCB ÌtB[hÌrbgÌè`215 * 216 * vZbTÉæÁÄÍCTCBÌtB[hÌrbgÅgpÊÆ217 * «\ªg[hItÉÈé½ßC^[Qbg˶ÉtB[hÌrbg218 * ðÏX·é±ÆðµÄ¢éD201 * TCB中のフィールドのビット幅の定義 202 * 203 * プロセッサによっては,TCB中のフィールドのビット幅でメモリ使用量と 204 * 性能がトレードオフになるため,ターゲット依存にフィールドのビット幅 205 * を変更することを許している. 219 206 */ 220 207 #ifndef TBIT_TCB_PRIORITY 221 #define TBIT_TCB_PRIORITY 8 /* priority tB[hÌrbg*/208 #define TBIT_TCB_PRIORITY 8 /* priorityフィールドのビット幅 */ 222 209 #endif /* TBIT_TCB_PRIORITY */ 223 210 224 211 /* 225 * ^XNÇubNiTCBj 226 * 227 * ASPJ[lÅÍC^XNÌN®vL 228 [COÌÅåliTMAX_ACTCNTj 229 * ÆN°vL 230 [COÌÅåliTMAX_WUPCNTjÍ1ÉÅè³êÄ¢é 231 * ½ßCL 232 [CO³êÄ¢é©Ç¤©Ì^UlÅ\»·é±ÆªÅ«éD 233 * ܽC§Ò¿vlXgÌÅåliTMAX_SUSCNTjª1ÉÅè³êÄ¢ 234 * éÌÅC§Ò¿vlXgisuscntjÍKvÈ¢D 235 * 236 * TCB̢©ÌtB[hÍCÁèÌ^XNóÔÅÌÝLøÈlðÛµC 237 * »êÈOÌêÍlªÛسêÈ¢iæÁÄCQƵÄÍÈçÈ¢jDe 238 * tB[hªLøÈlðÛ·éðÍÌÊèD 239 * 240 * Eú»ãÍíÉLøF 241 * p_tinibCtstatCactque 242 * Ex~óÔÈOÅLøix~óÔÅÍúlÉÈÁÄ¢éjF 243 * priorityCwupqueCenatexCtexptn 244 * EÒ¿óÔiñdÒ¿óÔðÜÞjÅLøF 212 * タスク管理ブロック(TCB) 213 * 214 * ASPカーネルでは,タスクの起動要求キューイング数の最大値(TMAX_ACTCNT) 215 * と起床要求キューイング数の最大値(TMAX_WUPCNT)は1に固定されている 216 * ため,キューイングされているかどうかの真偽値で表現することができる. 217 * また,強制待ち要求ネスト数の最大値(TMAX_SUSCNT)が1に固定されてい 218 * るので,強制待ち要求ネスト数(suscnt)は必要ない. 219 * 220 * TCBのいくつかのフィールドは,特定のタスク状態でのみ有効な値を保持し, 221 * それ以外の場合は値が保証されない(よって,参照してはならない).各 222 * フィールドが有効な値を保持する条件は次の通り. 223 * 224 * ・初期化後は常に有効: 225 * p_tinib,tstat,actque 226 * ・休止状態以外で有効(休止状態では初期値になっている): 227 * priority,wupque,enatex,texptn 228 * ・待ち状態(二重待ち状態を含む)で有効: 245 229 * p_winfo 246 * EÀsÅ«éóÔƯúEÊMIuWFNgÉηéÒ¿óÔÅLøF230 * ・実行できる状態と同期・通信オブジェクトに対する待ち状態で有効: 247 231 * task_queue 248 * EÀsÂ\óÔCÒ¿óÔC§Ò¿óÔCñdÒ¿óÔÅLøF232 * ・実行可能状態,待ち状態,強制待ち状態,二重待ち状態で有効: 249 233 * tskctxb 250 234 */ 251 235 typedef struct task_control_block { 252 QUEUE task_queue; /* ^XNL 253 [ */ 254 const TINIB *p_tinib; /* ú»ubNÖÌ|C^ */ 236 QUEUE task_queue; /* タスクキュー */ 237 const TINIB *p_tinib; /* 初期化ブロックへのポインタ */ 255 238 256 239 #ifdef UINT8_MAX 257 uint8_t tstat; /* ^XNóÔià\»j*/240 uint8_t tstat; /* タスク状態(内部表現)*/ 258 241 #else /* UINT8_MAX */ 259 BIT_FIELD_UINT tstat : 8; /* ^XNóÔià\»j*/242 BIT_FIELD_UINT tstat : 8; /* タスク状態(内部表現)*/ 260 243 #endif /* UINT8_MAX */ 261 244 #if defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) 262 uint8_t priority; /* »ÝÌDæxià\»j*/245 uint8_t priority; /* 現在の優先度(内部表現)*/ 263 246 #else /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */ 264 247 BIT_FIELD_UINT priority : TBIT_TCB_PRIORITY; 265 /* »ÝÌDæxià\»j*/248 /* 現在の優先度(内部表現)*/ 266 249 #endif /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */ 267 BIT_FIELD_BOOL actque : 1; /* N®vL 268 [CO */ 269 BIT_FIELD_BOOL wupque : 1; /* N°vL 270 [CO */ 271 BIT_FIELD_BOOL enatex : 1; /* ^XNáOÂóÔ */ 272 273 TEXPTN texptn; /* Û¯áOvö */ 274 WINFO *p_winfo; /* Ò¿îñubNÖÌ|C^ */ 275 TSKCTXB tskctxb; /* ^XNReLXgubN */ 250 BIT_FIELD_BOOL actque : 1; /* 起動要求キューイング */ 251 BIT_FIELD_BOOL wupque : 1; /* 起床要求キューイング */ 252 BIT_FIELD_BOOL enatex : 1; /* タスク例外処理許可状態 */ 253 254 TEXPTN texptn; /* 保留例外要因 */ 255 WINFO *p_winfo; /* 待ち情報ブロックへのポインタ */ 256 TSKCTXB tskctxb; /* タスクコンテキストブロック */ 276 257 } TCB; 277 258 278 259 /* 279 * ÀsóÔÌ^XN280 * 281 * ÀsóÔÌ^XNivZbTªReLXgðÁÄ¢é^XNjÌ282 * TCB ðw·|C^DÀsóÔÌ^XNªÈ¢êÍNULLÉ·éD283 * 284 * T[rXR[ÌÅC©^XNiT[rXR[ðÄÑoµ½^X285 * NjÉÖ·éîñðQÆ·éêÍp_runtskðg¤Dp_runtskð«·¦286 * éÌÍCfBXpb`iÆú»jÌÝÅ éD260 * 実行状態のタスク 261 * 262 * 実行状態のタスク(=プロセッサがコンテキストを持っているタスク)の 263 * TCBを指すポインタ.実行状態のタスクがない場合はNULLにする. 264 * 265 * サービスコールの処理中で,自タスク(サービスコールを呼び出したタス 266 * ク)に関する情報を参照する場合はp_runtskを使う.p_runtskを書き換え 267 * るのは,ディスパッチャ(と初期化処理)のみである. 287 268 */ 288 269 extern TCB *p_runtsk; 289 270 290 271 /* 291 * ÅDæÊÌ^XN292 * 293 * ÀsÅ«é^XNÌÅÅDæÊÌ^XNÌTCBðw·|C^DÀ294 * sÅ«é^XNªÈ¢êÍNULLÉ·éD295 * 296 * fBXpb`Ö~óÔÈÇCfBXpb`ªÛ¯³êÄ¢éÔÍp_runtsk297 * ÆêvµÄ¢éÆÍÀçÈ¢D272 * 最高優先順位のタスク 273 * 274 * 実行できるタスクの中で最高優先順位のタスクのTCBを指すポインタ.実 275 * 行できるタスクがない場合はNULLにする. 276 * 277 * ディスパッチ禁止状態など,ディスパッチが保留されている間はp_runtsk 278 * と一致しているとは限らない. 298 279 */ 299 280 extern TCB *p_schedtsk; 300 281 301 282 /* 302 * fBXpb`^^XNáO[`N®vtO303 * 304 * Ýnh^CPUáOnhÌoûÉCfBXpb`ܽÍ305 * ^XNáO[`ÌN®ðv·é±Æð¦·tOD283 * ディスパッチ/タスク例外処理ルーチン起動要求フラグ 284 * 285 * 割込みハンドラ/CPU例外ハンドラの出口処理に,ディスパッチまたは 286 * タスク例外処理ルーチンの起動を要求することを示すフラグ. 306 287 */ 307 288 extern bool_t reqflg; 308 289 309 290 /* 310 * ÝDæx}XNSðóÔ311 * 312 * ÝDæx}XNSðóÔÅ é±Æð¦·tOD291 * 割込み優先度マスク全解除状態 292 * 293 * 割込み優先度マスク全解除状態であることを示すフラグ. 313 294 */ 314 295 extern bool_t ipmflg; 315 296 316 297 /* 317 * fBXpb`Ö~óÔ318 * 319 * fBXpb`Ö~óÔÅ é±Æð¦·tOD298 * ディスパッチ禁止状態 299 * 300 * ディスパッチ禁止状態であることを示すフラグ. 320 301 */ 321 302 extern bool_t disdsp; 322 303 323 304 /* 324 * ^XNfBXpb`Â\óÔ325 * 326 * ÝDæx}XNSðóÔÅ èCfBXpb`ÂóÔÅ éifB327 * Xpb`Ö~óÔÅÈ¢j±Æð¦·tOD305 * タスクディスパッチ可能状態 306 * 307 * 割込み優先度マスク全解除状態であり,ディスパッチ許可状態である(ディ 308 * スパッチ禁止状態でない)ことを示すフラグ. 328 309 */ 329 310 extern bool_t dspflg; 330 311 331 312 /* 332 * fBL 333 [ 334 * 335 * fBL 336 [ÍCÀsÅ«éóÔÌ^XNðÇ·é½ßÌL 337 [Å éD 338 * ÀsóÔÌ^XNàǵĢé½ßCfBiÀsÂ\jL 339 [Æ¢¤ 340 * ¼ÌͳmÅÍÈ¢ªCfBL 341 [Æ¢¤¼Ìªè 342 µÄ¢é½ßC± 343 * ̼ÌÅÄÔ±ÆÉ·éD 344 * 345 * fBL 346 [ÍCDæx²ÆÌ^XNL 347 [Å\¬³êÄ¢éD^XNÌ 348 * TCBÍCY·éDæxÌL 349 [Éo^³êéD 313 * レディキュー 314 * 315 * レディキューは,実行できる状態のタスクを管理するためのキューである. 316 * 実行状態のタスクも管理しているため,レディ(実行可能)キューという 317 * 名称は正確ではないが,レディキューという名称が定着しているため,こ 318 * の名称で呼ぶことにする. 319 * 320 * レディキューは,優先度ごとのタスクキューで構成されている.タスクの 321 * TCBは,該当する優先度のキューに登録される. 350 322 */ 351 323 extern QUEUE ready_queue[TNUM_TPRI]; 352 324 353 325 /* 354 * fBL 355 [T[`̽ßÌrbg}bv 356 * 357 * fBL 358 [ÌT[`ðø¦æs¤½ßÉCDæx²ÆÌ^XNL 359 [ 360 * É^XNªüÁÄ¢é©Ç¤©ð¦·rbg}bvðpӵĢéDrb 361 * g}bvðg¤±ÆÅCANZXÌñð¸ç·±ÆªÅ«éªC 362 * rbgì½ßª[ÀµÄ¢È¢vZbTÅCDæxÌiKªÈ¢ 363 * êÉÍCrbg}bvìÌI[o[wbh̽ßÉCtÉø¦ª¿ 364 * éÂ\«à éD 365 * 366 * Dæxª16iKÅ é±Æð¼èµÄ¢é½ßCuint16_t^ƵĢéD 326 * レディキューサーチのためのビットマップ 327 * 328 * レディキューのサーチを効率よく行うために,優先度ごとのタスクキュー 329 * にタスクが入っているかどうかを示すビットマップを用意している.ビッ 330 * トマップを使うことで,メモリアクセスの回数を減らすことができるが, 331 * ビット操作命令が充実していないプロセッサで,優先度の段階数が少ない 332 * 場合には,ビットマップ操作のオーバーヘッドのために,逆に効率が落ち 333 * る可能性もある. 334 * 335 * 優先度が16段階であることを仮定しているため,uint16_t型としている. 367 336 */ 368 337 extern uint16_t ready_primap; 369 338 370 339 /* 371 * gpµÄ¢È¢TCBÌXg340 * 使用していないTCBのリスト 372 341 */ 373 342 extern QUEUE free_tcb; 374 343 375 344 /* 376 * ^XNIDÌÅålikernel_cfg.cj345 * タスクIDの最大値(kernel_cfg.c) 377 346 */ 378 347 extern const ID tmax_tskid; … … 380 349 381 350 /* 382 * ^XNú»ubNÌGAikernel_cfg.cj351 * タスク初期化ブロックのエリア(kernel_cfg.c) 383 352 */ 384 353 extern const TINIB tinib_table[]; … … 386 355 387 356 /* 388 * ^XN¶¬e[uikernel_cfg.cj357 * タスク生成順序テーブル(kernel_cfg.c) 389 358 */ 390 359 extern const ID torder_table[]; 391 360 392 361 /* 393 * TCB ÌGAikernel_cfg.cj362 * TCBのエリア(kernel_cfg.c) 394 363 */ 395 364 extern TCB tcb_table[]; 396 365 397 366 /* 398 * ^XNÌ367 * タスクの数 399 368 */ 400 369 #define tnum_tsk ((uint_t)(tmax_tskid - TMIN_TSKID + 1)) … … 402 371 403 372 /* 404 * ^XNID©çTCBðæèo·½ßÌ}N373 * タスクIDからTCBを取り出すためのマクロ 405 374 */ 406 375 #define INDEX_TSK(tskid) ((uint_t)((tskid) - TMIN_TSKID)) … … 409 378 410 379 /* 411 * TCB ©ç^XNIDðæèo·½ßÌ}N380 * TCBからタスクIDを取り出すためのマクロ 412 381 */ 413 382 #define TSKID(p_tcb) ((ID)(((p_tcb) - tcb_table) + TMIN_TSKID)) 414 383 415 384 /* 416 * ^XNÇW 417 [Ìú» 385 * タスク管理モジュールの初期化 418 386 */ 419 387 extern void initialize_task(void); 420 388 421 389 /* 422 * ÅDæÊ^XNÌT[` 423 * 424 * fBL 425 [ÌÅDæÊÌ^XNðT[`µC»ÌTCBÖÌ|C^ 426 * ðÔ·DfBL 427 [ªóÌêÉÍC±ÌÖðÄÑoµÄÍÈçÈ¢D 390 * 最高優先順位タスクのサーチ 391 * 392 * レディキュー中の最高優先順位のタスクをサーチし,そのTCBへのポインタ 393 * を返す.レディキューが空の場合には,この関数を呼び出してはならない. 428 394 */ 429 395 extern TCB *search_schedtsk(void); 430 396 431 397 /* 432 * ÀsÅ«éóÔÖÌJÚ 433 * 434 * p_tcbÅwè³êé^XNðfBL 435 [É}ü·éDfBL 436 [É}ü 437 * µ½^XNÌDæxªCÅDæÊÌ^XNÌDæxæèà¢êÍC 438 * ÅDæÊÌ^XNðXVµCfBXpb`ÂóÔÅ êÎtrueðÔ 439 * ·D»¤ÅÈ¢êÍfalseðÔ·D 398 * 実行できる状態への遷移 399 * 400 * p_tcbで指定されるタスクをレディキューに挿入する.レディキューに挿入 401 * したタスクの優先度が,最高優先順位のタスクの優先度よりも高い場合は, 402 * 最高優先順位のタスクを更新し,ディスパッチ許可状態であればtrueを返 403 * す.そうでない場合はfalseを返す. 440 404 */ 441 405 extern bool_t make_runnable(TCB *p_tcb); 442 406 443 407 /* 444 * ÀsÅ«éóÔ©ç¼ÌóÔÖÌJÚ 445 * 446 * p_tcbÅwè³êé^XNðfBL 447 [©çí·éDp_tcbÅwèµ½ 448 * ^XNªÅDæÊÌ^XNÅ Á½êÉÍCÅDæÊÌ^XN 449 * ðÝèµÈ¨µCfBXpb`ÂóÔÅ êÎtrueðÔ·D»¤ÅÈ¢ 450 * êÍfalseðÔ·D^XNÌóÔÍXVµÈ¢D 408 * 実行できる状態から他の状態への遷移 409 * 410 * p_tcbで指定されるタスクをレディキューから削除する.p_tcbで指定した 411 * タスクが最高優先順位のタスクであった場合には,最高優先順位のタスク 412 * を設定しなおし,ディスパッチ許可状態であればtrueを返す.そうでない 413 * 場合はfalseを返す.タスクの状態は更新しない. 451 414 */ 452 415 extern bool_t make_non_runnable(TCB *p_tcb); 453 416 454 417 /* 455 * x~óÔÖÌJÚ456 * 457 * p_tcb Åwè³êé^XNÌóÔðx~óÔÆ·éDܽC^XNÌN®458 * Éú»·×«ÏÌú»ÆC^XNN®Ì½ßÌReLXgðÝ459 * è·éD418 * 休止状態への遷移 419 * 420 * p_tcbで指定されるタスクの状態を休止状態とする.また,タスクの起動 421 * 時に初期化すべき変数の初期化と,タスク起動のためのコンテキストを設 422 * 定する. 460 423 */ 461 424 extern void make_dormant(TCB *p_tcb); 462 425 463 426 /* 464 * x~óÔ©çÀsÅ«éóÔÖÌJÚ465 * 466 * p_tcb Åwè³êé^XNÌóÔðx~óÔ©çÀsÅ«éóÔÆ·éD467 * ÀsÅ«éóÔÉJÚµ½^XNÖÌfBXpb`ªKvÈêÍtrueC468 * »¤ÅÈ¢êÍfalseðÔ·D427 * 休止状態から実行できる状態への遷移 428 * 429 * p_tcbで指定されるタスクの状態を休止状態から実行できる状態とする. 430 * 実行できる状態に遷移したタスクへのディスパッチが必要な場合はtrue, 431 * そうでない場合はfalseを返す. 469 432 */ 470 433 extern bool_t make_active(TCB *p_tcb); 471 434 472 435 /* 473 * ^XNÌDæxÌÏX474 * 475 * p_tcb Åwè³êé^XNÌDæxðnewpriià\»jÉÏX·éDܽC476 * KvÈêÉÍÅDæÊÌ^XNðXVµCfBXpb`ÂóÔÅ477 * êÎtrueðÔ·D»¤ÅÈ¢êÍfalseðÔ·D436 * タスクの優先度の変更 437 * 438 * p_tcbで指定されるタスクの優先度をnewpri(内部表現)に変更する.また, 439 * 必要な場合には最高優先順位のタスクを更新し,ディスパッチ許可状態で 440 * あればtrueを返す.そうでない場合はfalseを返す. 478 441 */ 479 442 extern bool_t change_priority(TCB *p_tcb, uint_t newpri); 480 443 481 444 /* 482 * fBL 483 [Ìñ] 484 * 485 * fBL 486 [ÌCpriÅwè³êéDæxÌ^XNL 487 [ðñ]³¹éD 488 * ܽCKvÈêÉÍÅDæÊÌ^XNðÏXµCfBXpb`ªÛ 489 * ¯³êĢȯêÎtrueðÔ·D»¤ÅÈ¢êÍfalseðÔ·D 445 * レディキューの回転 446 * 447 * レディキュー中の,priで指定される優先度のタスクキューを回転させる. 448 * また,必要な場合には最高優先順位のタスクを変更し,ディスパッチが保 449 * 留されていなければtrueを返す.そうでない場合はfalseを返す. 490 450 */ 491 451 extern bool_t rotate_ready_queue(uint_t pri); 492 452 493 453 /* 494 * ^XNáO[`ÌÄoµ495 * 496 * ^XNáO[`ðÄÑo·DÄÑo·OÉCÀsóÔÌ^XNÌ497 * Û¯áOvöðNAµC^XNáOÖ~óÔɵCCPUbNðð498 * ·éD499 * 500 * ^XNáO[`©çßéÆCܸCPUbNóÔÉßµC»ÌÔ501 * ÉÛ¯áOvöª0ÅÈÈÁÄ¢êÎCÄÑ^XNáO[`ð502 * ÄÑo·DÛ¯áOvöª0ÌêÉÍCáOÂóÔɵÄÖ©503 * ç^[·éD504 * 505 * ±ÌÖÍCÀsóÔÌ^XNªC^XNáOÂóÔienatexª506 * true jÅCÛ¯áOvöª0ÅÈ¢itexptnª0ÅÈ¢jêÉÄÑo·±507 * ÆðzèµÄ¢éD±ÌÖÍCCPUbNóÔÅÄÑo³È¯êÎÈç508 * È¢D454 * タスク例外処理ルーチンの呼出し 455 * 456 * タスク例外処理ルーチンを呼び出す.呼び出す前に,実行状態のタスクの 457 * 保留例外要因をクリアし,タスク例外処理禁止状態にし,CPUロックを解 458 * 除する. 459 * 460 * タスク例外処理ルーチンから戻ると,まずCPUロック状態に戻し,その間 461 * に保留例外要因が0でなくなっていれば,再びタスク例外処理ルーチンを 462 * 呼び出す.保留例外要因が0の場合には,例外処理許可状態にして関数か 463 * らリターンする. 464 * 465 * この関数は,実行状態のタスクが,タスク例外処理許可状態(enatexが 466 * true)で,保留例外要因が0でない(texptnが0でない)場合に呼び出すこ 467 * とを想定している.この関数は,CPUロック状態で呼び出さなければなら 468 * ない. 509 469 */ 510 470 extern void call_texrtn(void); 511 471 512 472 /* 513 * ^XNáO[`ÌN®514 * 515 * ÀsóÔÌ^XNª^XNáO[`ÌN®ðð½µÄ¢êÎC516 * ^XNáO[`ðÄÑo·DCPUáO[`ðÄÑo·517 * ÍCêIÉCPUbNðð·éD518 * 519 * ±ÌÖÍCfBXpb`âÝnh^CPUáOnhÌoû520 * ©çÄÑo³êé±ÆðzèµÄ¢éD±ÌÖÍCCPUbNóÔ521 * ÅÄÑo³È¯êÎÈçÈ¢D522 * 523 * Àsø¦ðã°é½ßÉC±ÌÖð^[Qbg˶ÅLqµÄàæ¢D524 * »ÌêÉÍCOMIT_CALLTEXð}Nè`·éD473 * タスク例外処理ルーチンの起動 474 * 475 * 実行状態のタスクがタスク例外処理ルーチンの起動条件を満たしていれば, 476 * タスク例外処理ルーチンを呼び出す.CPU例外処理ルーチンを呼び出す時 477 * は,一時的にCPUロックを解除する. 478 * 479 * この関数は,ディスパッチャや割込みハンドラ/CPU例外ハンドラの出口 480 * 処理から呼び出されることを想定している.この関数は,CPUロック状態 481 * で呼び出さなければならない. 482 * 483 * 実行効率を上げるために,この関数をターゲット依存部で記述してもよい. 484 * その場合には,OMIT_CALLTEXをマクロ定義する. 525 485 */ 526 486 extern void calltex(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task_except.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * ^XNáO@\44 * タスク例外処理機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_DEF_TEX_ENTER … … 113 109 114 110 /* 115 * ^XNáO[`Ìè`111 * タスク例外処理ルーチンの定義 116 112 */ 117 113 #ifdef TOPPERS_def_tex … … 175 171 176 172 /* 177 * ^XNáOÌv173 * タスク例外処理の要求 178 174 */ 179 175 #ifdef TOPPERS_ras_tex … … 215 211 216 212 /* 217 * ^XNáOÌviñ^XNReLXgpj213 * タスク例外処理の要求(非タスクコンテキスト用) 218 214 */ 219 215 #ifdef TOPPERS_iras_tex … … 255 251 256 252 /* 257 * ^XNáOÌÖ~253 * タスク例外処理の禁止 258 254 */ 259 255 #ifdef TOPPERS_dis_tex … … 285 281 286 282 /* 287 * ^XNáOÌÂ283 * タスク例外処理の許可 288 284 */ 289 285 #ifdef TOPPERS_ena_tex … … 318 314 319 315 /* 320 * ^XNáOÖ~óÔÌQÆ316 * タスク例外処理禁止状態の参照 321 317 */ 322 318 #ifdef TOPPERS_sns_tex … … 336 332 337 333 /* 338 * ^XNáOÌóÔQÆ334 * タスク例外処理の状態参照 339 335 */ 340 336 #ifdef TOPPERS_ref_tex -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task_manage.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * ^XNÇ@\44 * タスク管理機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * g[XO}NÌftHgè`53 * トレースログマクロのデフォルト定義 58 54 */ 59 55 #ifndef LOG_ACRE_TSK_ENTER … … 138 134 139 135 /* 140 * ^XN̶¬136 * タスクの生成 141 137 */ 142 138 #ifdef TOPPERS_acre_tsk 143 139 144 140 #ifndef TARGET_MIN_STKSZ 145 #define TARGET_MIN_STKSZ 1U /* ¢è`ÌêÍ0ÅÈ¢±Æð`FbN*/141 #define TARGET_MIN_STKSZ 1U /* 未定義の場合は0でないことをチェック */ 146 142 #endif /* TARGET_MIN_STKSZ */ 147 143 … … 215 211 216 212 /* 217 * ^XNÌí213 * タスクの削除 218 214 */ 219 215 #ifdef TOPPERS_del_tsk … … 261 257 262 258 /* 263 * ^XNÌN®259 * タスクの起動 264 260 */ 265 261 #ifdef TOPPERS_act_tsk … … 303 299 304 300 /* 305 * ^XNÌN®iñ^XNReLXgpj301 * タスクの起動(非タスクコンテキスト用) 306 302 */ 307 303 #ifdef TOPPERS_iact_tsk … … 345 341 346 342 /* 347 * ^XNN®vÌLZ343 * タスク起動要求のキャンセル 348 344 */ 349 345 #ifdef TOPPERS_can_act … … 378 374 379 375 /* 380 * ©^XNÌI¹376 * 自タスクの終了 381 377 */ 382 378 #ifdef TOPPERS_ext_tsk … … 392 388 if (t_sense_lock()) { 393 389 /* 394 * CPU bNóÔÅext_tskªÄÎê½êÍCCPUbNððµ395 * Ä©ç^XNðI¹·éDÀãÍCT[rXR[àÅÌCPU396 * bNðȪ·êÎ梾¯D390 * CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し 391 * てからタスクを終了する.実装上は,サービスコール内でのCPU 392 * ロックを省略すればよいだけ. 397 393 */ 398 394 } … … 402 398 if (disdsp) { 403 399 /* 404 * fBXpb`Ö~óÔÅext_tskªÄÎê½êÍCfBXpb405 * `ÂóÔɵĩç^XNðI¹·éD400 * ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ 401 * チ許可状態にしてからタスクを終了する. 406 402 */ 407 403 disdsp = false; … … 409 405 if (!ipmflg) { 410 406 /* 411 * ÝDæx}XNiIPMjªTIPM_ENAALLÈOÌóÔÅext_tsk412 * ªÄÎê½êÍCIPMðTIPM_ENAALLɵĩç^XNðI¹·413 * éD407 * 割込み優先度マスク(IPM)がTIPM_ENAALL以外の状態でext_tsk 408 * が呼ばれた場合は,IPMをTIPM_ENAALLにしてからタスクを終了す 409 * る. 414 410 */ 415 411 t_set_ipm(TIPM_ENAALL); … … 435 431 436 432 /* 437 * ^XŅI¹433 * タスクの強制終了 438 434 */ 439 435 #ifdef TOPPERS_ter_tsk … … 461 457 if (TSTAT_RUNNABLE(p_tcb->tstat)) { 462 458 /* 463 * p_tcb Í©^XNÅÈ¢½ßCiVOvZbTÅÍjÀ464 * sóÔÅÈCmake_non_runnable(p_tcb)Å^XNfBXpb465 * `ªKvÉÈé±ÆÍÈ¢D459 * p_tcbは自タスクでないため,(シングルプロセッサでは)実 460 * 行状態でなく,make_non_runnable(p_tcb)でタスクディスパッ 461 * チが必要になることはない. 466 462 */ 467 463 (void) make_non_runnable(p_tcb); … … 490 486 491 487 /* 492 * ^XNÌx[XDæxÌÏX488 * タスクのベース優先度の変更 493 489 */ 494 490 #ifdef TOPPERS_chg_pri … … 532 528 533 529 /* 534 * ^XNDæxÌQÆ530 * タスク優先度の参照 535 531 */ 536 532 #ifdef TOPPERS_get_pri … … 568 564 569 565 /* 570 * ©^XNÌg£îñÌQÆ566 * 自タスクの拡張情報の参照 571 567 */ 572 568 #ifdef TOPPERS_get_inf -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task_refer.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 35 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 40 * ÌÓCðíÈ¢D 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 31 * 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * ^XNÌóÔQÆ@\42 * タスクの状態参照機能 47 43 */ 48 44 … … 60 56 61 57 /* 62 * g[XO}NÌftHgè`58 * トレースログマクロのデフォルト定義 63 59 */ 64 60 #ifndef LOG_REF_TSK_ENTER … … 71 67 72 68 /* 73 * ^XNÌóÔQÆ69 * タスクの状態参照 74 70 */ 75 71 #ifdef TOPPERS_ref_tsk … … 95 91 if (TSTAT_DORMANT(tstat)) { 96 92 /* 97 * ÎÛ^XNªx~óÔÌê93 * 対象タスクが休止状態の場合 98 94 */ 99 95 pk_rtsk->tskstat = TTS_DMT; … … 101 97 else { 102 98 /* 103 * ^XNóÔÌæoµ99 * タスク状態の取出し 104 100 */ 105 101 if (TSTAT_SUSPENDED(tstat)) { … … 122 118 123 119 /* 124 * »ÝDæxÆx[XDæxÌæoµ120 * 現在優先度とベース優先度の取出し 125 121 */ 126 122 pk_rtsk->tskpri = EXT_TSKPRI(p_tcb->priority); … … 129 125 if (TSTAT_WAITING(tstat)) { 130 126 /* 131 * Ò¿vöÆÒ¿ÎÛÌIuWFNgÌIDÌæoµ127 * 待ち要因と待ち対象のオブジェクトのIDの取出し 132 128 */ 133 129 switch (tstat & TS_WAIT_MASK) { … … 181 177 182 178 /* 183 * ^CAEg·éÜÅÌÔÌæoµ179 * タイムアウトするまでの時間の取出し 184 180 */ 185 181 if (p_tcb->p_winfo->p_tmevtb != NULL) { … … 193 189 194 190 /* 195 * N°vL 196 [COÌæoµ 191 * 起床要求キューイング数の取出し 197 192 */ 198 193 pk_rtsk->wupcnt = p_tcb->wupque ? 1U : 0U; … … 200 195 201 196 /* 202 * N®vL 203 [COÌæoµ 197 * 起動要求キューイング数の取出し 204 198 */ 205 199 pk_rtsk->actcnt = p_tcb->actque ? 1U : 0U; -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/task_sync.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * ^XNt®¯ú@\44 * タスク付属同期機能 49 45 */ 50 46 … … 55 51 56 52 /* 57 * g[XO}NÌftHgè`53 * トレースログマクロのデフォルト定義 58 54 */ 59 55 #ifndef LOG_SLP_TSK_ENTER … … 138 134 139 135 /* 140 * N°Ò¿136 * 起床待ち 141 137 */ 142 138 #ifdef TOPPERS_slp_tsk … … 173 169 174 170 /* 175 * N°Ò¿i^CAEg èj171 * 起床待ち(タイムアウトあり) 176 172 */ 177 173 #ifdef TOPPERS_tslp_tsk … … 213 209 214 210 /* 215 * ^XNÌN°211 * タスクの起床 216 212 */ 217 213 #ifdef TOPPERS_wup_tsk … … 258 254 259 255 /* 260 * ^XNÌN°iñ^XNReLXgpj256 * タスクの起床(非タスクコンテキスト用) 261 257 */ 262 258 #ifdef TOPPERS_iwup_tsk … … 303 299 304 300 /* 305 * ^XNN°vÌLZ301 * タスク起床要求のキャンセル 306 302 */ 307 303 #ifdef TOPPERS_can_wup … … 339 335 340 336 /* 341 * Ò¿óÔ̧ð337 * 待ち状態の強制解除 342 338 */ 343 339 #ifdef TOPPERS_rel_wai … … 377 373 378 374 /* 379 * Ò¿óÔ̧ðiñ^XNReLXgpj375 * 待ち状態の強制解除(非タスクコンテキスト用) 380 376 */ 381 377 #ifdef TOPPERS_irel_wai … … 415 411 416 412 /* 417 * §Ò¿óÔÖÌÚs413 * 強制待ち状態への移行 418 414 */ 419 415 #ifdef TOPPERS_sus_tsk … … 442 438 else if (TSTAT_RUNNABLE(p_tcb->tstat)) { 443 439 /* 444 * ÀsÅ«éóÔ©ç§Ò¿óÔÖÌJÚ440 * 実行できる状態から強制待ち状態への遷移 445 441 */ 446 442 p_tcb->tstat = TS_SUSPENDED; … … 456 452 else { 457 453 /* 458 * Ò¿óÔ©çñdÒ¿óÔÖÌJÚ454 * 待ち状態から二重待ち状態への遷移 459 455 */ 460 456 p_tcb->tstat |= TS_SUSPENDED; … … 472 468 473 469 /* 474 * §Ò¿óÔ©çÌÄJ470 * 強制待ち状態からの再開 475 471 */ 476 472 #ifdef TOPPERS_rsm_tsk … … 496 492 else if (!TSTAT_WAITING(p_tcb->tstat)) { 497 493 /* 498 * §Ò¿óÔ©çÀsÅ«éóÔÖÌJÚ494 * 強制待ち状態から実行できる状態への遷移 499 495 */ 500 496 p_tcb->tstat = TS_RUNNABLE; … … 507 503 else { 508 504 /* 509 * ñdÒ¿óÔ©çÒ¿óÔÖÌJÚ505 * 二重待ち状態から待ち状態への遷移 510 506 */ 511 507 p_tcb->tstat &= ~TS_SUSPENDED; … … 523 519 524 520 /* 525 * ©^XNÌx521 * 自タスクの遅延 526 522 */ 527 523 #ifdef TOPPERS_dly_tsk -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/time_event.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * ^CCxgÇW 49 [ 44 * タイムイベント管理モジュール 50 45 */ 51 46 … … 54 49 55 50 /* 56 * ^CCxgq[vì}N57 */ 58 #define PARENT(index) ((index) >> 1) /* em[hðßé*/59 #define LCHILD(index) ((index) << 1) /* ¶Ìqm[hðßé*/51 * タイムイベントヒープ操作マクロ 52 */ 53 #define PARENT(index) ((index) >> 1) /* 親ノードを求める */ 54 #define LCHILD(index) ((index) << 1) /* 左の子ノードを求める */ 60 55 #define TMEVT_NODE(index) (tmevt_heap[(index) - 1]) 61 56 62 57 /* 63 * Cxg¶är}N64 * 65 * Cxg¶ÍCmin_time©çÌÎlÅär·éD·Èí¿C66 * min_time ðŬliÅàߢjCmit_time-1ªÅåliÅà¢j67 * ÆÝȵÄär·éD58 * イベント発生時刻比較マクロ 59 * 60 * イベント発生時刻は,min_timeからの相対値で比較する.すなわち, 61 * min_timeを最小値(最も近い時刻),mit_time-1が最大値(最も遠い時刻) 62 * とみなして比較する. 68 63 */ 69 64 #define EVTTIM_LT(t1, t2) (((t1) - min_time) < ((t2) - min_time)) … … 73 68 74 69 /* 75 * »ÝÌVXeiPÊ: 1~bj76 * 77 * µ§ÉÍCOÌ^CeBbNÌVXeD70 * 現在のシステム時刻(単位: 1ミリ秒) 71 * 72 * 厳密には,前のタイムティックのシステム時刻. 78 73 */ 79 74 EVTTIM current_time; 80 75 81 76 /* 82 * ^CCxgq[vÅLøÈŬÌVXeiPÊ: 1~bj77 * タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒) 83 78 */ 84 79 EVTTIM min_time; 85 80 86 81 /* 87 * Ì^CeBbNÌVXeiPÊ: 1~bj82 * 次のタイムティックのシステム時刻(単位: 1ミリ秒) 88 83 */ 89 84 EVTTIM next_time; 90 85 91 86 /* 92 * VXeÏZpÏiPÊ: 1/TIC_DENO~bj87 * システム時刻積算用変数(単位: 1/TIC_DENOミリ秒) 93 88 */ 94 89 #if TIC_DENO != 1U … … 97 92 98 93 /* 99 * ^CCxgq[vÌÅãÌgpÌæÌCfbNX94 * タイムイベントヒープの最後の使用領域のインデックス 100 95 */ 101 96 uint_t last_index; 102 97 103 98 /* 104 * ^C}W 105 [Ìú» 99 * タイマモジュールの初期化 106 100 */ 107 101 void … … 120 114 121 115 /* 122 * ^CCxgÌ}üÊuðãü«ÉTõ123 * 124 * timeɶ·é^CCxgð}ü·ém[hðó¯é½ßÉC125 * q[vÌãÉü©ÁÄóm[hðÚ®³¹éDÚ®OÌóm[hÌÊuð126 * index Én·ÆCÚ®ãÌóm[hÌÊui·Èí¿}üÊujðÔ·D116 * タイムイベントの挿入位置を上向きに探索 117 * 118 * 時刻timeに発生するタイムイベントを挿入するノードを空けるために, 119 * ヒープの上に向かって空ノードを移動させる.移動前の空ノードの位置を 120 * indexに渡すと,移動後の空ノードの位置(すなわち挿入位置)を返す. 127 121 */ 128 122 #ifdef TOPPERS_tmeup … … 135 129 while (index > 1) { 136 130 /* 137 * em[hÌCxg¶Ìûª¢iܽͯ¶jÈçÎC138 * index ª}üÊuÈÌÅ[vð²¯éD131 * 親ノードのイベント発生時刻の方が早い(または同じ)ならば, 132 * indexが挿入位置なのでループを抜ける. 139 133 */ 140 134 parent = PARENT(index); … … 144 138 145 139 /* 146 * em[hðindexÌÊuÉÚ®³¹éD140 * 親ノードをindexの位置に移動させる. 147 141 */ 148 142 TMEVT_NODE(index) = TMEVT_NODE(parent); … … 150 144 151 145 /* 152 * index ðem[hÌÊuÉXVD146 * indexを親ノードの位置に更新. 153 147 */ 154 148 index = parent; … … 160 154 161 155 /* 162 * ^CCxgÌ}üÊuðºü«ÉTõ163 * 164 * timeɶ·é^CCxgð}ü·ém[hðó¯é½ßÉC165 * q[v̺Éü©ÁÄóm[hðÚ®³¹éDÚ®OÌóm[hÌÊuð166 * index Én·ÆCÚ®ãÌóm[hÌÊui·Èí¿}üÊujðÔ·D156 * タイムイベントの挿入位置を下向きに探索 157 * 158 * 時刻timeに発生するタイムイベントを挿入するノードを空けるために, 159 * ヒープの下に向かって空ノードを移動させる.移動前の空ノードの位置を 160 * indexに渡すと,移動後の空ノードの位置(すなわち挿入位置)を返す. 167 161 */ 168 162 #ifdef TOPPERS_tmedown … … 175 169 while ((child = LCHILD(index)) <= last_index) { 176 170 /* 177 * ¶EÌqm[hÌCxg¶ðärµC¢ûÌqm[h178 * ÌÊuðchildÉÝè·éDȺÌqm[hÍC±±ÅIÎê½û179 * Ìqm[ẖÆD171 * 左右の子ノードのイベント発生時刻を比較し,早い方の子ノード 172 * の位置をchildに設定する.以下の子ノードは,ここで選ばれた方 173 * の子ノードのこと. 180 174 */ 181 175 if (child + 1 <= last_index … … 186 180 187 181 /* 188 * qm[hÌCxg¶Ìûªx¢iܽͯ¶jÈçÎC189 * index ª}üÊuÈÌÅ[vð²¯éD182 * 子ノードのイベント発生時刻の方が遅い(または同じ)ならば, 183 * indexが挿入位置なのでループを抜ける. 190 184 */ 191 185 if (EVTTIM_LE(time, TMEVT_NODE(child).time)) { … … 194 188 195 189 /* 196 * qm[hðindexÌÊuÉÚ®³¹éD190 * 子ノードをindexの位置に移動させる. 197 191 */ 198 192 TMEVT_NODE(index) = TMEVT_NODE(child); … … 200 194 201 195 /* 202 * index ðqm[hÌÊuÉXVD196 * indexを子ノードの位置に更新. 203 197 */ 204 198 index = child; … … 210 204 211 205 /* 212 * ^CCxgq[vÖÌo^213 * 214 * p_tmevtb Åwèµ½^CCxgubNðCtimeÅwèµ½Ôªo215 * ßãÉCxgª¶·éæ¤ÉC^CCxgq[vÉo^·éD206 * タイムイベントヒープへの登録 207 * 208 * p_tmevtbで指定したタイムイベントブロックを,timeで指定した時間が経 209 * 過後にイベントが発生するように,タイムイベントヒープに登録する. 216 210 */ 217 211 #ifdef TOPPERS_tmeins … … 223 217 224 218 /* 225 * last_index ðCNgµC»±©çãÉ}üÊuðT·D219 * last_indexをインクリメントし,そこから上に挿入位置を探す. 226 220 */ 227 221 index = tmevt_up(++last_index, time); 228 222 229 223 /* 230 * ^CCxgðindexÌÊuÉ}ü·éD224 * タイムイベントをindexの位置に挿入する. 231 225 */ 232 226 TMEVT_NODE(index).time = time; … … 238 232 239 233 /* 240 * ^CCxgq[v©çÌí234 * タイムイベントヒープからの削除 241 235 */ 242 236 #ifdef TOPPERS_tmedel … … 250 244 251 245 /* 252 * íÉæè^CCxgq[vªóÉÈéêͽàµÈ¢D246 * 削除によりタイムイベントヒープが空になる場合は何もしない. 253 247 */ 254 248 if (--last_index == 0) { … … 257 251 258 252 /* 259 * íµ½m[hÌÊuÉÅãÌm[hilast_index+1ÌÊuÌm[hj260 * ð}üµC»êðKØÈÊuÖÚ®³¹éDÀÛÉÍCÅãÌm[h261 * ðÀÛÉ}ü·éÌÅÍÈCíµ½m[hÌÊuªóm[hÉÈ262 * éÌÅCÅãÌm[hð}ü·×«ÊuÖü¯Äóm[hðÚ®³¹263 * éD264 * ÅãÌm[hÌCxg¶ªCíµ½m[hÌem[hÌC265 * xg¶æèOÌêÉÍCãÉü©ÁÄ}üÊuðT·D»266 * ¤ÅÈ¢êÉÍCºÉü©ÁÄT·D253 * 削除したノードの位置に最後のノード(last_index+1の位置のノード) 254 * を挿入し,それを適切な位置へ移動させる.実際には,最後のノード 255 * を実際に挿入するのではなく,削除したノードの位置が空ノードにな 256 * るので,最後のノードを挿入すべき位置へ向けて空ノードを移動させ 257 * る. 258 * 最後のノードのイベント発生時刻が,削除したノードの親ノードのイ 259 * ベント発生時刻より前の場合には,上に向かって挿入位置を探す.そ 260 * うでない場合には,下に向かって探す. 267 261 */ 268 262 if (index > 1 && EVTTIM_LT(event_time, 269 263 TMEVT_NODE(parent = PARENT(index)).time)) { 270 264 /* 271 * em[hðindexÌÊuÉÚ®³¹éD265 * 親ノードをindexの位置に移動させる. 272 266 */ 273 267 TMEVT_NODE(index) = TMEVT_NODE(parent); … … 275 269 276 270 /* 277 * íµ½m[hÌem[h©çãÉü©ÁÄ}üÊuðT·D271 * 削除したノードの親ノードから上に向かって挿入位置を探す. 278 272 */ 279 273 index = tmevt_up(parent, event_time); … … 281 275 else { 282 276 /* 283 * íµ½m[h©çºÉü©ÁÄ}üÊuðT·D277 * 削除したノードから下に向かって挿入位置を探す. 284 278 */ 285 279 index = tmevt_down(index, event_time); … … 287 281 288 282 /* 289 * ÅãÌm[hðindexÌÊuÉ}ü·éD283 * 最後のノードをindexの位置に挿入する. 290 284 */ 291 285 TMEVT_NODE(index) = TMEVT_NODE(last_index + 1); … … 296 290 297 291 /* 298 * ^CCxgq[vÌæªÌm[hÌí292 * タイムイベントヒープの先頭のノードの削除 299 293 */ 300 294 Inline void … … 305 299 306 300 /* 307 * íÉæè^CCxgq[vªóÉÈéêͽàµÈ¢D301 * 削除によりタイムイベントヒープが空になる場合は何もしない. 308 302 */ 309 303 if (--last_index == 0) { … … 312 306 313 307 /* 314 * [gm[hÉÅãÌm[hilast_index + 1 ÌÊuÌm[hjð315 * }üµC»êðKØÈÊuÖÚ®³¹éDÀÛÉÍCÅãÌm[hð316 * ÀÛÉ}ü·éÌÅÍÈC[gm[hªóm[hÉÈéÌÅCÅ317 * ãÌm[hð}ü·×«ÊuÖü¯Äóm[hðÚ®³¹éD308 * ルートノードに最後のノード(last_index + 1 の位置のノード)を 309 * 挿入し,それを適切な位置へ移動させる.実際には,最後のノードを 310 * 実際に挿入するのではなく,ルートノードが空ノードになるので,最 311 * 後のノードを挿入すべき位置へ向けて空ノードを移動させる. 318 312 */ 319 313 index = tmevt_down(1, event_time); 320 314 321 315 /* 322 * ÅãÌm[hðindexÌÊuÉ}ü·éD316 * 最後のノードをindexの位置に挿入する. 323 317 */ 324 318 TMEVT_NODE(index) = TMEVT_NODE(last_index + 1); … … 327 321 328 322 /* 329 * ^CCxgÜÅÌcèÔÌvZ323 * タイムイベントまでの残り時間の計算 330 324 */ 331 325 #ifdef TOPPERS_tmeltim … … 339 333 if (EVTTIM_LE(time, next_time)) { 340 334 /* 341 * Ì^CeBbNųêéêÉÍ0ðÔ·D335 * 次のタイムティックで処理される場合には0を返す. 342 336 */ 343 337 return(0U); … … 351 345 352 346 /* 353 * ^CeBbNÌ347 * タイムティックの供給 354 348 */ 355 349 #ifdef TOPPERS_sigtim … … 366 360 367 361 /* 368 * current_time ðXV·éD362 * current_timeを更新する. 369 363 */ 370 364 current_time = next_time; 371 365 372 366 /* 373 * next_time Cnext_subtimeðXV·éD367 * next_time,next_subtimeを更新する. 374 368 */ 375 369 #if TIC_DENO == 1U … … 385 379 386 380 /* 387 * current_time æèCxg¶Ì¢iܽͯ¶j^CCx388 * gðC^CCxgq[v©çíµCR[obNÖðÄÑ389 * o·D381 * current_timeよりイベント発生時刻の早い(または同じ)タイムイベ 382 * ントを,タイムイベントヒープから削除し,コールバック関数を呼び 383 * 出す. 390 384 */ 391 385 while (last_index > 0 && EVTTIM_LE(TMEVT_NODE(1).time, current_time)) { … … 396 390 397 391 /* 398 * min_time ðXV·éD392 * min_timeを更新する. 399 393 */ 400 394 min_time = current_time; -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/time_event.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * ^CCxgÇW 49 [ 44 * タイムイベント管理モジュール 50 45 */ 51 46 … … 54 49 55 50 /* 56 * Cxg¶Ìf[^^Ìè`57 * 58 * EVTTIM ÍCRELTIMƵÄwèÅ«éÍÍæèàL¢ÍÍð\»Å«éKv59 * ª éDÊITRON4.0dlÌX^_[hvt@CÅÍCRELTIMª16rb60 * gÈãÅȯêÎÈçÈ¢½ßCEVTTIMÍ17rbgÈãÅ é±ÆªKv61 * Å éD»Ì½ßC16rbgÉÈéêª éuint_tÅÍÈCulong_tÉ62 * è`µÄ¢éD51 * イベント発生時刻のデータ型の定義 52 * 53 * EVTTIMは,RELTIMとして指定できる範囲よりも広い範囲を表現できる必要 54 * がある.μITRON4.0仕様のスタンダードプロファイルでは,RELTIMが16ビッ 55 * ト以上でなければならないため,EVTTIMは17ビット以上であることが必要 56 * である.そのため,16ビットになる場合があるuint_tではなく,ulong_tに 57 * 定義している. 63 58 */ 64 59 typedef ulong_t EVTTIM; 65 60 66 61 /* 67 * ^CCxgubNÌf[^^Ìè`68 */ 69 typedef void (*CBACK)(void *); /* R[obNÖÌ^*/62 * タイムイベントブロックのデータ型の定義 63 */ 64 typedef void (*CBACK)(void *); /* コールバック関数の型 */ 70 65 71 66 typedef struct time_event_block { 72 uint_t index; /* ^CCxgq[vÅÌÊu*/73 CBACK callback; /* R[obNÖ*/74 void *arg; /* R[obNÖÖn·ø*/67 uint_t index; /* タイムイベントヒープ中での位置 */ 68 CBACK callback; /* コールバック関数 */ 69 void *arg; /* コールバック関数へ渡す引数 */ 75 70 } TMEVTB; 76 71 77 72 /* 78 * ^CCxgq[vÌm[hÌf[^^Ìè`73 * タイムイベントヒープ中のノードのデータ型の定義 79 74 */ 80 75 typedef struct time_event_node { 81 EVTTIM time; /* Cxg¶*/82 TMEVTB *p_tmevtb; /* ηé^CCxgubN*/76 EVTTIM time; /* イベント発生時刻 */ 77 TMEVTB *p_tmevtb; /* 対応するタイムイベントブロック */ 83 78 } TMEVTN; 84 79 85 80 /* 86 * ^CCxgq[vikernel_cfg.cj81 * タイムイベントヒープ(kernel_cfg.c) 87 82 */ 88 83 extern TMEVTN tmevt_heap[]; 89 84 90 85 /* 91 * »ÝÌVXeiPÊ: 1~bj92 * 93 * VXeN®É0Éú»³êCÈ~C^CeBbNª³êéxÉ94 * P²ÉÁ·éD86 * 現在のシステム時刻(単位: 1ミリ秒) 87 * 88 * システム起動時に0に初期化され,以降,タイムティックが供給される度に 89 * 単調に増加する. 95 90 */ 96 91 extern EVTTIM current_time; 97 92 98 93 /* 99 * ^CCxgq[vÅLøÈŬÌVXeiPÊ: 1~bj94 * タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒) 100 95 */ 101 96 extern EVTTIM min_time; 102 97 103 98 /* 104 * Ì^CeBbNÌVXeiPÊ: 1~bj99 * 次のタイムティックのシステム時刻(単位: 1ミリ秒) 105 100 */ 106 101 extern EVTTIM next_time; 107 102 108 103 /* 109 * VXeÏZpÏiPÊ: 1/TIC_DENO~bj 110 * 111 * Ì^CeBbNÌVXeÌºÊ 112 ð¦·iãÊ 113 Ínext_timejD 114 * TIC_DENOª1ÌÍCºÊ 115 ÍíÉ0Å é½ßC±ÌÏÍKvÈ¢D 104 * システム時刻積算用変数(単位: 1/TIC_DENOミリ秒) 105 * 106 * 次のタイムティックのシステム時刻の下位桁を示す(上位桁はnext_time). 107 * TIC_DENOが1の時は,下位桁は常に0であるため,この変数は必要ない. 116 108 */ 117 109 #if TIC_DENO != 1U … … 120 112 121 113 /* 122 * ÎÔÌîiPÊ: 1~bj123 * 124 * Ì^CeBbNÌVXeðØèã°½DTIC_DENOª1Ì125 * ÍCnext_timeÉêv·éD114 * 相対時間の基準時刻(単位: 1ミリ秒) 115 * 116 * 次のタイムティックのシステム時刻を切り上げた時刻.TIC_DENOが1の時 117 * は,next_timeに一致する. 126 118 */ 127 119 #if TIC_DENO == 1U … … 132 124 133 125 /* 134 * ^CCxgq[vÌÅãÌgpÌæÌCfbNX135 * 136 * ^CCxgq[vÉo^³êÄ¢é^CCxgÌÉêv·éD126 * タイムイベントヒープの最後の使用領域のインデックス 127 * 128 * タイムイベントヒープに登録されているタイムイベントの数に一致する. 137 129 */ 138 130 extern uint_t last_index; 139 131 140 132 /* 141 * ^CCxgÇW 142 [Ìú» 133 * タイムイベント管理モジュールの初期化 143 134 */ 144 135 extern void initialize_tmevt(void); 145 136 146 137 /* 147 * ^CCxgÌ}üÊuÌTõ138 * タイムイベントの挿入位置の探索 148 139 */ 149 140 extern uint_t tmevt_up(uint_t index, EVTTIM time); … … 151 142 152 143 /* 153 * ^CCxgq[vÖÌo^Æí144 * タイムイベントヒープへの登録と削除 154 145 */ 155 146 extern void tmevtb_insert(TMEVTB *p_tmevtb, EVTTIM time); … … 157 148 158 149 /* 159 * ^CCxgubNÌo^iÎÔwèj160 * 161 * time Åwèµ½ÎÔªoßµ½ãÉCargðøƵÄcallbackªÄ162 * Ño³êéæ¤ÉCp_tmevtbÅwèµ½^CCxgubNðo^·163 * éD150 * タイムイベントブロックの登録(相対時間指定) 151 * 152 * timeで指定した相対時間が経過した後に,argを引数としてcallbackが呼 153 * び出されるように,p_tmevtbで指定したタイムイベントブロックを登録す 154 * る. 164 155 * 165 156 */ … … 175 166 176 167 /* 177 * ^CCxgubNÌo^iCxg¶wèj178 * 179 * time Åwèµ½Cxg¶ÉCargðøƵÄcallbackªÄÑo180 * ³êéæ¤ÉCp_tmevtbÅwèµ½^CCxgubNðo^·éD168 * タイムイベントブロックの登録(イベント発生時刻指定) 169 * 170 * timeで指定したイベント発生時刻に,argを引数としてcallbackが呼び出 171 * されるように,p_tmevtbで指定したタイムイベントブロックを登録する. 181 172 */ 182 173 Inline void … … 189 180 190 181 /* 191 * ^CCxgubNÌo^ð182 * タイムイベントブロックの登録解除 192 183 */ 193 184 Inline void … … 198 189 199 190 /* 200 * ^CCxgÜÅÌcèÔÌvZ191 * タイムイベントまでの残り時間の計算 201 192 */ 202 193 extern RELTIM tmevt_lefttim(TMEVTB *p_tmevtb); 203 194 204 195 /* 205 * ^CeBbNÌ196 * タイムティックの供給 206 197 */ 207 198 extern void signal_time(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/time_manage.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * VXeÇ@\44 * システム時刻管理機能 49 45 */ 50 46 … … 54 50 55 51 /* 56 * g[XO}NÌftHgè`52 * トレースログマクロのデフォルト定義 57 53 */ 58 54 #ifndef LOG_GET_TIM_ENTER … … 73 69 74 70 /* 75 * VXeÌQÆ71 * システム時刻の参照 76 72 */ 77 73 #ifdef TOPPERS_get_tim … … 98 94 99 95 /* 100 * «\]¿pVXeÌQÆ96 * 性能評価用システム時刻の参照 101 97 */ 102 98 #ifdef TOPPERS_get_utm -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/wait.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Ò¿óÔÇW 49 [ 44 * 待ち状態管理モジュール 50 45 */ 51 46 … … 54 49 55 50 /* 56 * Ò¿óÔÖÌJÚi^CAEgwèj51 * 待ち状態への遷移(タイムアウト指定) 57 52 */ 58 53 #ifdef TOPPERS_waimake … … 77 72 78 73 /* 79 * Ò¿ð74 * 待ち解除 80 75 */ 81 76 #ifdef TOPPERS_waicmp … … 92 87 93 88 /* 94 * ^CAEgɺ¤Ò¿ð89 * タイムアウトに伴う待ち解除 95 90 */ 96 91 #ifdef TOPPERS_waitmo … … 106 101 107 102 /* 108 * ±±ÅDæxÌ¢Ýðó¯t¯éD103 * ここで優先度の高い割込みを受け付ける. 109 104 */ 110 105 i_unlock_cpu(); … … 124 119 125 120 /* 126 * ±±ÅDæxÌ¢Ýðó¯t¯éD121 * ここで優先度の高い割込みを受け付ける. 127 122 */ 128 123 i_unlock_cpu(); … … 133 128 134 129 /* 135 * Ò¿óÔ̧ð130 * 待ち状態の強制解除 136 131 */ 137 132 #ifdef TOPPERS_wairel … … 149 144 150 145 /* 151 * ÀsÌ^XN̯úEÊMIuWFNgÌÒ¿L 152 [ÖÌ}ü 146 * 実行中のタスクの同期・通信オブジェクトの待ちキューへの挿入 153 147 * 154 * ÀsÌ^XNðC¯úEÊMIuWFNgÌÒ¿L 155 [Ö}ü·éDI 156 * uWFNgÌ®«É¶ÄCFIFOܽÍ^XNDæxÅ}ü·éD 148 * 実行中のタスクを,同期・通信オブジェクトの待ちキューへ挿入する.オ 149 * ブジェクトの属性に応じて,FIFO順またはタスク優先度順で挿入する. 157 150 */ 158 151 Inline void … … 168 161 169 162 /* 170 * ¯úEÊMIuWFNgÉηéÒ¿óÔÖÌJÚ163 * 同期・通信オブジェクトに対する待ち状態への遷移 171 164 */ 172 165 #ifdef TOPPERS_wobjwai … … 197 190 198 191 /* 199 * Ò¿L 200 [Ìú» 192 * 待ちキューの初期化 201 193 */ 202 194 #ifdef TOPPERS_iniwque -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/kernel/wait.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * Ò¿óÔÇW 49 [ 44 * 待ち状態管理モジュール 50 45 */ 51 46 … … 57 52 58 53 /* 59 * ^XNÌDæxÌÒ¿L 60 [ÖÌ}ü 61 * 62 * p_tcbÅwè³êé^XNðC^XNDæxÌL 63 [p_queueÉ}ü·éD 64 * L 65 [Ìɯ¶DæxÌ^XNª éêÉÍC»ÌÅãÉ}ü·éD 54 * タスクの優先度順の待ちキューへの挿入 55 * 56 * p_tcbで指定されるタスクを,タスク優先度順のキューp_queueに挿入する. 57 * キューの中に同じ優先度のタスクがある場合には,その最後に挿入する. 66 58 */ 67 59 Inline void … … 81 73 82 74 /* 83 * Ò¿óÔÖÌJÚ 84 * 85 * ÀsÌ^XNðÒ¿óÔÉJÚ³¹éDïÌIÉÍCÀsÌ^XNð 86 * fBL 87 [©çíµCTCBÌp_winfotB[hCWINFOÌp_tmevtbtB[ 88 * hðÝè·éD 75 * 待ち状態への遷移 76 * 77 * 実行中のタスクを待ち状態に遷移させる.具体的には,実行中のタスクを 78 * レディキューから削除し,TCBのp_winfoフィールド,WINFOのp_tmevtbフィー 79 * ルドを設定する. 89 80 */ 90 81 Inline void … … 97 88 98 89 /* 99 * Ò¿óÔÖÌJÚi^CAEgwèj 100 * 101 * ÀsÌ^XNðC^CAEgwèt«ÅÒ¿óÔÉJÚ³¹éDïÌ 102 * IÉÍCÀsÌ^XNðfBL 103 [©çíµCTCBÌp_winfotB[ 104 * hCWINFOÌp_tmevtbtB[hðÝè·éDܽC^CCxgu 105 * bNðo^·éD 90 * 待ち状態への遷移(タイムアウト指定) 91 * 92 * 実行中のタスクを,タイムアウト指定付きで待ち状態に遷移させる.具体 93 * 的には,実行中のタスクをレディキューから削除し,TCBのp_winfoフィー 94 * ルド,WINFOのp_tmevtbフィールドを設定する.また,タイムイベントブ 95 * ロックを登録する. 106 96 */ 107 97 extern void make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout); 108 98 109 99 /* 110 * Ò¿ð̽ßÌ^XNóÔÌXV 111 * 112 * p_tcbÅwè³êé^XNðCÒ¿ð·éæ¤^XNóÔðXV·éD 113 * Ò¿ð·é^XNªÀsÅ«éóÔÉÈéêÍCfBL 114 [ÉÂÈ 115 * ®DܽCfBXpb`ªKvÈêÉÍtrueðÔ·D 100 * 待ち解除のためのタスク状態の更新 101 * 102 * p_tcbで指定されるタスクを,待ち解除するようタスク状態を更新する. 103 * 待ち解除するタスクが実行できる状態になる場合は,レディキューにつな 104 * ぐ.また,ディスパッチが必要な場合にはtrueを返す. 116 105 */ 117 106 Inline bool_t … … 122 111 if (!TSTAT_SUSPENDED(p_tcb->tstat)) { 123 112 /* 124 * Ò¿óÔ©çÀsÅ«éóÔÖÌJÚ113 * 待ち状態から実行できる状態への遷移 125 114 */ 126 115 p_tcb->tstat = TS_RUNNABLE; … … 130 119 else { 131 120 /* 132 * ñdÒ¿óÔ©ç§Ò¿óÔÖÌJÚ121 * 二重待ち状態から強制待ち状態への遷移 133 122 */ 134 123 p_tcb->tstat = TS_SUSPENDED; … … 139 128 140 129 /* 141 * IuWFNgÒ¿L 142 [©çÌí 143 * 144 * p_tcbÅwè³êé^XNªC¯úEÊMIuWFNgÌÒ¿L 145 [É 146 * ȪêÄ¢êÎCÒ¿L 147 [©çí·éD 130 * オブジェクト待ちキューからの削除 131 * 132 * p_tcbで指定されるタスクが,同期・通信オブジェクトの待ちキューにつ 133 * ながれていれば,待ちキューから削除する. 148 134 */ 149 135 Inline void … … 156 142 157 143 /* 158 * Ôҿ̽ßÌ^CCxgubNÌo^ð159 * 160 * p_tcb Åwè³êé^XNÉεÄCÔҿ̽ßÌ^CCxgu161 * bNªo^³êÄ¢êÎC»êðo^ð·éD144 * 時間待ちのためのタイムイベントブロックの登録解除 145 * 146 * p_tcbで指定されるタスクに対して,時間待ちのためのタイムイベントブ 147 * ロックが登録されていれば,それを登録解除する. 162 148 */ 163 149 Inline void … … 170 156 171 157 /* 172 * Ò¿ð 173 * 174 * p_tcbÅwè³êé^XNÌÒ¿óÔðð·éDïÌIÉÍC^CC 175 * xgubNªo^³êÄ¢êÎC»êðo^ð·éDܽC^XN 176 * óÔðXVµCÒ¿ðµ½^XN©çÌÔlðE_OKÆ·éDÒ¿L 177 [ 178 * ©çÌíÍsíÈ¢DÒ¿ðµ½^XNÖÌfBXpb`ªKvÈê 179 * ÉÍtrueðÔ·D 158 * 待ち解除 159 * 160 * p_tcbで指定されるタスクの待ち状態を解除する.具体的には,タイムイ 161 * ベントブロックが登録されていれば,それを登録解除する.また,タスク 162 * 状態を更新し,待ち解除したタスクからの返値をE_OKとする.待ちキュー 163 * からの削除は行わない.待ち解除したタスクへのディスパッチが必要な場 164 * 合にはtrueを返す. 180 165 */ 181 166 extern bool_t wait_complete(TCB *p_tcb); 182 167 183 168 /* 184 * ^CAEgɺ¤Ò¿ð 185 * 186 * p_tcbÅwè³êé^XNªCÒ¿L 187 [ÉÂȪêÄ¢êÎÒ¿L 188 [ 189 * ©çíµC^XNóÔðXV·éDܽCÒ¿ðµ½^XN©çÌÔ 190 * lðCwait_tmoutÅÍE_TMOUTCwait_tmout_okÅÍE_OKÆ·éDÒ¿ð 191 * µ½^XNÖÌfBXpb`ªKvÈÍCreqflgðtrueÉ·éD 192 * 193 * wait_tmout_okÍCdly_tskÅg¤½ßÌàÌÅCÒ¿L 194 [©çí·é 195 * ðsíÈ¢D 196 * 197 * ¢¸êÌÖàC^CCxgÌR[obNÖƵÄp¢é½ßÌ 198 * àÌÅCÝnh©çÄÑo³êé±ÆðzèµÄ¢éD 169 * タイムアウトに伴う待ち解除 170 * 171 * p_tcbで指定されるタスクが,待ちキューにつながれていれば待ちキュー 172 * から削除し,タスク状態を更新する.また,待ち解除したタスクからの返 173 * 値を,wait_tmoutではE_TMOUT,wait_tmout_okではE_OKとする.待ち解除 174 * したタスクへのディスパッチが必要な時は,reqflgをtrueにする. 175 * 176 * wait_tmout_okは,dly_tskで使うためのもので,待ちキューから削除する 177 * 処理を行わない. 178 * 179 * いずれの関数も,タイムイベントのコールバック関数として用いるための 180 * もので,割込みハンドラから呼び出されることを想定している. 199 181 */ 200 182 extern void wait_tmout(TCB *p_tcb); … … 202 184 203 185 /* 204 * Ò¿óÔ̧ð 205 * 206 * p_tcbÅwè³êé^XNÌÒ¿óÔð§IÉð·éDïÌIÉÍC 207 * ^XNªÒ¿L 208 [ÉÂȪêÄ¢êÎÒ¿L 209 [©çíµC^CC 210 * xgubNªo^³êÄ¢êλêðo^ð·éDܽC^XNÌ 211 * óÔðXVµCÒ¿ðµ½^XN©çÌÔlðE_RLWAIÆ·éDܽC 212 * Ò¿ðµ½^XNÖÌfBXpb`ªKvÈêÉÍtrueðÔ·D 186 * 待ち状態の強制解除 187 * 188 * p_tcbで指定されるタスクの待ち状態を強制的に解除する.具体的には, 189 * タスクが待ちキューにつながれていれば待ちキューから削除し,タイムイ 190 * ベントブロックが登録されていればそれを登録解除する.また,タスクの 191 * 状態を更新し,待ち解除したタスクからの返値をE_RLWAIとする.また, 192 * 待ち解除したタスクへのディスパッチが必要な場合にはtrueを返す. 213 193 */ 214 194 extern bool_t wait_release(TCB *p_tcb); 215 195 216 196 /* 217 * Ò¿L 218 [ÌæªÌ^XNID 219 * 220 * p_wait_queueÅwèµ½Ò¿L 221 [ÌæªÌ^XNIDðÔ·DÒ¿L 222 [ 223 * ªóÌêÉÍCTSK_NONEðÔ·D 197 * 待ちキューの先頭のタスクID 198 * 199 * p_wait_queueで指定した待ちキューの先頭のタスクIDを返す.待ちキュー 200 * が空の場合には,TSK_NONEを返す. 224 201 */ 225 202 Inline ID … … 235 212 236 213 /* 237 * ¯úEÊMIuWFNgÌÇubN̤ʪì[` 238 * 239 * ¯úEÊMIuWFNgÌú»ubNÆÇubNÌ檪ͤ 240 * ÊÉÈÁÄ¢éDȺÍC»Ì¤Êªðµ¤½ßÌ^¨æÑ[`Q 241 * Å éD 242 * 243 * ¡ÌÒ¿L 244 [ð¯úEÊMIuWFNgÌêCæªÈOÌÒ¿ 245 * L 246 [ðì·éêÉÍC±êçÌ[`Íg¦È¢DܽCIuWF 247 * Ng®«ÌTA_TPRIrbgðQÆ·éÌÅC±Ìrbgð¼ÌÚIÉgÁÄ 248 * ¢éêàC±êçÌ[`Íg¦È¢D 249 */ 250 251 /* 252 * ¯úEÊMIuWFNgÌú»ubN̤ʪ 214 * 同期・通信オブジェクトの管理ブロックの共通部分操作ルーチン 215 * 216 * 同期・通信オブジェクトの初期化ブロックと管理ブロックの先頭部分は共 217 * 通になっている.以下は,その共通部分を扱うための型およびルーチン群 218 * である. 219 * 220 * 複数の待ちキューを持つ同期・通信オブジェクトの場合,先頭以外の待ち 221 * キューを操作する場合には,これらのルーチンは使えない.また,オブジェ 222 * クト属性のTA_TPRIビットを参照するので,このビットを他の目的に使って 223 * いる場合も,これらのルーチンは使えない. 224 */ 225 226 /* 227 * 同期・通信オブジェクトの初期化ブロックの共通部分 253 228 */ 254 229 typedef struct wait_object_initialization_block { 255 ATR wobjatr; /* IuWFNg®«*/230 ATR wobjatr; /* オブジェクト属性 */ 256 231 } WOBJINIB; 257 232 258 233 /* 259 * ¯úEÊMIuWFNgÌÇubN̤ʪ234 * 同期・通信オブジェクトの管理ブロックの共通部分 260 235 */ 261 236 typedef struct wait_object_control_block { 262 QUEUE wait_queue; /* Ò¿L 263 [ */ 264 const WOBJINIB *p_wobjinib; /* ú»ubNÖÌ|C^ */ 237 QUEUE wait_queue; /* 待ちキュー */ 238 const WOBJINIB *p_wobjinib; /* 初期化ブロックへのポインタ */ 265 239 } WOBJCB; 266 240 267 241 /* 268 * ¯úEÊMIuWFNgÌÒ¿îñubN̤ʪ269 * 270 * ±Ì\¢ÌÍCÒ¿îñubNiWINFOjðg£iIuWFNgwü¾271 * êÌp³Éjµ½àÌÅ éªCWINFOª¤pÌÅè`³êÄ¢é½272 * ßÉC1ÂÌtB[hƵÄÜßÄ¢éD242 * 同期・通信オブジェクトの待ち情報ブロックの共通部分 243 * 244 * この構造体は,待ち情報ブロック(WINFO)を拡張(オブジェクト指向言 245 * 語の継承に相当)したものであるが,WINFOが共用体で定義されているた 246 * めに,1つのフィールドとして含めている. 273 247 */ 274 248 typedef struct wait_object_waiting_information { 275 WINFO winfo; /* WÌÒ¿îñubN*/276 WOBJCB *p_wobjcb; /* Ò¿IuWFNgÌÇubN*/249 WINFO winfo; /* 標準の待ち情報ブロック */ 250 WOBJCB *p_wobjcb; /* 待ちオブジェクトの管理ブロック */ 277 251 } WINFO_WOBJ; 278 252 279 253 /* 280 * ¯úEÊMIuWFNgÉηéÒ¿óÔÖÌJÚ254 * 同期・通信オブジェクトに対する待ち状態への遷移 281 255 * 282 * ÀsÌ^XNðÒ¿óÔÉJÚ³¹C¯úEÊMIuWFNgÌÒ¿L 283 [ 284 * ÉÂÈ®DܽCÒ¿îñubNiWINFOjÌp_wobjcbðÝè·éD 285 * wobj_make_wait_tmoutÍC^CCxgubNÌo^às¤D 256 * 実行中のタスクを待ち状態に遷移させ,同期・通信オブジェクトの待ちキュー 257 * につなぐ.また,待ち情報ブロック(WINFO)のp_wobjcbを設定する. 258 * wobj_make_wait_tmoutは,タイムイベントブロックの登録も行う. 286 259 */ 287 260 extern void wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo); … … 290 263 291 264 /* 292 * ^XNDæxÏXÌ 293 * 294 * ¯úEÊMIuWFNgÉηéÒ¿óÔÉ é^XNÌDæxªÏX³ 295 * ê½êÉCÒ¿L 296 [ÌÅÌ^XNÌÊuðC³·éD 265 * タスク優先度変更時の処理 266 * 267 * 同期・通信オブジェクトに対する待ち状態にあるタスクの優先度が変更さ 268 * れた場合に,待ちキューの中でのタスクの位置を修正する. 297 269 */ 298 270 Inline void … … 306 278 307 279 /* 308 * Ò¿L 309 [Ìú» 310 * 311 * Ò¿L 312 [ÉÂȪêÄ¢é^XNð·×ÄÒ¿ð·éDÒ¿ðµ½ 313 * ^XN©çÌÔlÍCE_DLTÆ·éDÒ¿ðµ½^XNÖÌfBXpb` 314 * ªKvÈêÍtrueC»¤ÅÈ¢êÍfalseðÔ·D 280 * 待ちキューの初期化 281 * 282 * 待ちキューにつながれているタスクをすべて待ち解除する.待ち解除した 283 * タスクからの返値は,E_DLTとする.待ち解除したタスクへのディスパッチ 284 * が必要な場合はtrue,そうでない場合はfalseを返す. 315 285 */ 316 286 extern bool_t init_wait_queue(QUEUE *p_wait_queue); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/histogram.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * ÀsÔªzWvW 46 [ 41 * 実行時間分布集計モジュール 47 42 */ 48 43 … … 54 49 55 50 /* 56 * ÀsÔªzvªÌ51 * 実行時間分布計測の数 57 52 */ 58 53 #ifndef TNUM_HIST … … 61 56 62 57 /* 63 * ^[Qbg˶ÅÝèÏX·é½ßÌ}N58 * ターゲット依存部で設定変更するためのマクロ 64 59 */ 65 #ifndef HISTTIM /* ÀsÔvªpÌÌf[^^*/60 #ifndef HISTTIM /* 実行時間計測用の時刻のデータ型 */ 66 61 #define HISTTIM SYSUTM 67 62 #endif /* HISTTIM */ 68 63 69 #ifndef HIST_GET_TIM /* ÀsÔvªpÌ»ÝÌæ¾*/64 #ifndef HIST_GET_TIM /* 実行時間計測用の現在時刻の取得 */ 70 65 #ifndef TOPPERS_SUPPORT_GET_UTM 71 66 #error get_utm is not supported. … … 74 69 #endif /* HIST_GET_TIM */ 75 70 76 #ifndef HIST_CONV_TIM /* Ì·©çÀsÔÖÌÏ·*/71 #ifndef HIST_CONV_TIM /* 時刻の差から実行時間への変換 */ 77 72 #define HIST_CONV_TIM(time) ((uint_t)(time)) 78 73 #endif /* HIST_CONV_TIM */ 79 74 80 #ifndef HIST_BM_HOOK /* ÀsÔvª¼OÉs¤×«*/75 #ifndef HIST_BM_HOOK /* 実行時間計測直前に行うべき処理 */ 81 76 #define HIST_BM_HOOK() ((void) 0) 82 77 #endif 83 78 84 79 /* 85 * ÀsÔªzvªÇubN80 * 実行時間分布計測管理ブロック 86 81 */ 87 82 typedef struct histogram_control_block { 88 HISTTIM begin_time; /* vªJn*/89 uint_t maxval; /* ªzðL^·éÅåÔ*/90 uint_t *histarea; /* ªzðL^·éÌæ*/91 uint_t over; /* ÅåÔ𴦽x*/92 uint_t under; /* ÔÌt]ª^íêéx*/83 HISTTIM begin_time; /* 計測開始時刻 */ 84 uint_t maxval; /* 分布を記録する最大時間 */ 85 uint_t *histarea; /* 分布を記録するメモリ領域 */ 86 uint_t over; /* 最大時間を超えた度数 */ 87 uint_t under; /* 時間の逆転が疑われる度数 */ 93 88 } HISTCB; 94 89 95 90 /* 96 * ÀsÔªzvªÇubNÌGA91 * 実行時間分布計測管理ブロックのエリア 97 92 */ 98 93 static HISTCB histcb_table[TNUM_HIST]; 99 94 100 95 /* 101 * ÀsÔªzvªIDÌŬlÆÅål96 * 実行時間分布計測IDの最小値と最大値 102 97 */ 103 98 #define TMIN_HISTID 1 … … 105 100 106 101 /* 107 * ÀsÔªzvªÌú»102 * 実行時間分布計測の初期化 108 103 */ 109 104 void … … 126 121 127 122 /* 128 * ÀsÔvªÌJn123 * 実行時間計測の開始 129 124 */ 130 125 void … … 141 136 142 137 /* 143 * ÀsÔvªÌI¹138 * 実行時間計測の終了 144 139 */ 145 140 void … … 168 163 169 164 /* 170 * ÀsÔªzvªÌ\¦165 * 実行時間分布計測の表示 171 166 */ 172 167 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/log_output.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * VXeOÌtH[}bgoÍ43 * システムログのフォーマット出力 48 44 */ 49 45 … … 53 49 54 50 /* 55 * lð¶ñÉÏ·51 * 数値を文字列に変換 56 52 */ 57 53 #define CONVERT_BUFLEN ((sizeof(uintptr_t) * CHAR_BIT + 2) / 3) 58 /* uintptr_t ^ÌlÌÅå¶*/54 /* uintptr_t型の数値の最大文字数 */ 59 55 static void 60 56 convert(uintptr_t val, uint_t radix, const char *radchar, … … 88 84 89 85 /* 90 * ¶ñ®`oÍ86 * 文字列整形出力 91 87 */ 92 88 static const char raddec[] = "0123456789"; … … 169 165 170 166 /* 171 * OîñÌoÍ167 * ログ情報の出力 172 168 */ 173 169 void … … 185 181 default: 186 182 /* 187 * ¼ÌíÊÌOîñÉÍεĢȢD183 * 他の種別のログ情報には対応していない. 188 184 */ 189 185 break; … … 192 188 193 189 /* 194 * Oîñr¸bZ[WÌoÍ190 * ログ情報喪失メッセージの出力 195 191 */ 196 192 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/mem_pool.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * æ3ñ TOPPERSpACfAEAvP[VJReXg3 * ¼Y õm³ñÌulwIP ÌÚAvðx[Xɵܵ½B2 * 第3回 TOPPERS活用アイデア・アプリケーション開発コンテスト 3 * 松浦 光洋さんの「lwIP の移植」をベースにしました。 4 4 * http://www.toppers.jp/contest.html 5 5 * … … 7 7 */ 8 8 //asp\doc\porting.txt 9 //6.15.1 æè9 //6.15.1より 10 10 11 11 #include "kernel/kernel_impl.h" -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/strerror.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * G[bZ[W¶ñðÔ·Ö43 * エラーメッセージ文字列を返す関数 48 44 */ 49 45 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/t_perror.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * G[bZ[WÌoÍ43 * エラーメッセージの出力 48 44 */ 49 45 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/test_lib.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 34 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 39 * ÌÓCðíÈ¢D 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 30 * 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ … … 43 39 44 40 /* 45 * eXgvOpCu41 * テストプログラム用ライブラリ 46 42 */ 47 43 … … 56 52 57 53 /* 58 * `FbN|Cg54 * チェックポイント 59 55 */ 60 56 static uint_t check_count = 0u; 61 57 62 58 /* 63 * ©ÈffÖ59 * 自己診断関数 64 60 */ 65 61 static BIT_FUNC check_bit_func = NULL; 66 62 67 63 /* 68 * ©ÈffÖÌÝè64 * 自己診断関数の設定 69 65 */ 70 66 void … … 75 71 76 72 /* 77 * eXgvOÌJn73 * テストプログラムの開始 78 74 */ 79 75 void … … 84 80 85 81 /* 86 * VXeOÌoÍ82 * システムログの出力処理 87 83 */ 88 84 void … … 93 89 94 90 /* 95 * Oobt@ÉL^³ê½OîñðCáxoÍ@\ðp¢Äo96 * Í·éD91 * ログバッファに記録されたログ情報を,低レベル出力機能を用いて出 92 * 力する. 97 93 */ 98 94 while ((rercd = syslog_rea_log(&logbuf)) >= 0) { … … 108 104 109 105 /* 110 * eXgvOÌI¹106 * テストプログラムの終了 111 107 */ 112 108 void … … 119 115 (void) ext_ker(); 120 116 121 /* ±±Öé±ÆÍȢ͸*/117 /* ここへ来ることはないはず */ 122 118 SIL_UNL_INT(); 123 119 } 124 120 125 121 /* 126 * `FbN|Cg122 * チェックポイント 127 123 */ 128 124 void … … 134 130 135 131 /* 136 * ÝbNóÔÉ132 * 割込みロック状態に 137 133 */ 138 134 SIL_LOC_INT(); 139 135 140 136 /* 141 * V[PX`FbN137 * シーケンスチェック 142 138 */ 143 139 if (++check_count == count) { … … 150 146 151 147 /* 152 * J[lÌàóÔ̸148 * カーネルの内部状態の検査 153 149 */ 154 150 if (check_bit_func != NULL) { … … 162 158 163 159 /* 164 * G[ªo³ê½êÍCeXgvOðI¹·éD160 * エラーが検出された場合は,テストプログラムを終了する. 165 161 */ 166 162 if (errorflag) { … … 169 165 170 166 /* 171 * ÝbNóÔðð167 * 割込みロック状態を解除 172 168 */ 173 169 SIL_UNL_INT(); … … 175 171 176 172 /* 177 * ®¹`FbN|Cg173 * 完了チェックポイント 178 174 */ 179 175 void … … 186 182 187 183 /* 188 * ð`FbNÌG[184 * 条件チェックのエラー処理 189 185 */ 190 186 void … … 197 193 198 194 /* 199 * G[R[h`FbNÌG[195 * エラーコードチェックのエラー処理 200 196 */ 201 197 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/library/vasyslog.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * ÂÏøÌVXeOCu43 * 可変数引数のシステムログライブラリ 48 44 */ 49 45 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/pdic/rx600/rx630_uart.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 45 41 46 42 /* 47 * UART p ÈÕSIOhCo43 * UART用 簡易SIOドライバ 48 44 */ 49 45 … … 54 50 #include "rx630_uart.h" 55 51 56 /* VA[hWX^iSMR) */52 /* シリアルモードレジスタ(SMR) */ 57 53 #define CKS UINT_C(0x03) 58 54 #define STOP UINT_C(0x08) … … 64 60 #define ASYNC_8BIT UINT_C(0x40) 65 61 66 /* VARg[WX^iSCR) */62 /* シリアルコントロールレジスタ(SCR) */ 67 63 #define CKE UINT_C(0x03) 68 64 #define TEIE UINT_C(0x04) … … 72 68 #define TIE UINT_C(0x80) 73 69 74 /* VAXe[^XWX^iSSRj*/70 /* シリアルステータスレジスタ(SSR) */ 75 71 #define TEND UINT_C(0x04) 76 72 #define PER UINT_C(0x08) … … 78 74 #define ORER UINT_C(0x20) 79 75 80 /* VAg£[hWX^iSEMR) */76 /* シリアル拡張モードレジスタ(SEMR) */ 81 77 #define ACS0 UINT_C(0x01) 82 78 #define ABCS UINT_C(0x10) … … 86 82 87 83 /* 88 * VAI/O|[gú»ubNÌè`84 * シリアルI/Oポート初期化ブロックの定義 89 85 */ 90 86 typedef struct sio_port_initialization_block { 91 volatile uint8_t *ctlreg; /* VARg[WX^iSCR) */ 92 volatile uint8_t *modereg; /* VA[hWX^iSMR) */ 93 volatile uint8_t *extmodereg; /* VAg£[hWX^iSEMR) */ 94 volatile uint8_t *statusreg; /* VAXe[^XWX^iSSRj */ 95 volatile uint8_t *tdreg; /* gX~bgf[^WX^iTDR)*/ 96 volatile uint8_t *rdreg; /* V[uf[^WX^iRDR) */ 97 volatile uint8_t *bitratereg; /* rbg[gWX^iBRR) */ 98 volatile uint32_t *mstpcrreg; /* W 99 [XgbvRg[WX^iMSTPCRj */ 100 volatile uint8_t *ssrreg; /* Xe[^XWX^ */ 101 volatile uint8_t *rxiirreg; /* RXIpÝvWX^ */ 102 uint8_t tx_intno; /* Mif[^GveBjèÝÔ */ 103 uint8_t rx_intno; /* óMif[^tjèÝÔ */ 104 uint8_t te_intno; /* MiI¹jèÝÔ */ 105 uint8_t sci_no; /* SCIÌÔ(SCI0`SCI6) */ 106 uint32_t mstpcr_offset; /* MSTPCRÌηérbgItZbg */ 87 volatile uint8_t *ctlreg; /* シリアルコントロールレジスタ(SCR) */ 88 volatile uint8_t *modereg; /* シリアルモードレジスタ(SMR) */ 89 volatile uint8_t *extmodereg; /* シリアル拡張モードレジスタ(SEMR) */ 90 volatile uint8_t *statusreg; /* シリアルステータスレジスタ(SSR) */ 91 volatile uint8_t *tdreg; /* トランスミットデータレジスタ(TDR)*/ 92 volatile uint8_t *rdreg; /* レシーブデータレジスタ(RDR) */ 93 volatile uint8_t *bitratereg; /* ビットレートレジスタ(BRR) */ 94 volatile uint32_t *mstpcrreg; /* モジュールストップコントロールレジスタ(MSTPCR) */ 95 volatile uint8_t *ssrreg; /* ステータスレジスタ */ 96 volatile uint8_t *rxiirreg; /* RXI用割込み要求レジスタ */ 97 uint8_t tx_intno; /* 送信(データエンプティ)割り込み番号 */ 98 uint8_t rx_intno; /* 受信(データフル)割り込み番号 */ 99 uint8_t te_intno; /* 送信(終了)割り込み番号 */ 100 uint8_t sci_no; /* SCIの番号(SCI0〜SCI6) */ 101 uint32_t mstpcr_offset; /* MSTPCRの対応するビットオフセット */ 107 102 } SIOPINIB; 108 103 109 104 /* 110 * VAI/O|[gÇubNÌè`105 * シリアルI/Oポート管理ブロックの定義 111 106 */ 112 107 struct sio_port_control_block { 113 const SIOPINIB *p_siopinib; /* VAI/O|[gú»ubN*/114 intptr_t exinf; /* g£îñ*/115 bool_t openflag; /* I[vÏÝtO*/116 bool_t sendflag; /* MÝCl[utO*/117 bool_t getready; /* ¶ðóMµ½óÔ*/118 bool_t putready; /* ¶ðMÅ«éóÔ*/119 bool_t is_initialized; /* foCXú»ÏÝtO*/108 const SIOPINIB *p_siopinib; /* シリアルI/Oポート初期化ブロック */ 109 intptr_t exinf; /* 拡張情報 */ 110 bool_t openflag; /* オープン済みフラグ */ 111 bool_t sendflag; /* 送信割込みイネーブルフラグ */ 112 bool_t getready; /* 文字を受信した状態 */ 113 bool_t putready; /* 文字を送信できる状態 */ 114 bool_t is_initialized; /* デバイス初期化済みフラグ */ 120 115 }; 121 116 122 117 /* 123 * VAI/O|[gÇubNÌGA118 * シリアルI/Oポート管理ブロックのエリア 124 119 */ 125 120 static SIOPCB siopcb_table[TNUM_SIOP]; 126 121 127 /* WX^e[u*/122 /* レジスタテーブル */ 128 123 static const SIOPINIB siopinib_table[TNUM_SIOP] = 129 124 { … … 167 162 168 163 /* 169 * VAI/O|[gID©çÇubNðæèo·½ßÌ}N164 * シリアルI/OポートIDから管理ブロックを取り出すためのマクロ 170 165 */ 171 166 #define INDEX_SIOP(siopid) ((uint_t)((siopid) - 1)) … … 175 170 176 171 /* 177 * SIO hCoÌVA[hWX^(SMR)172 * SIOドライバのシリアルモードレジスタ(SMR) 178 173 */ 179 174 static void … … 183 178 184 179 /* 185 * SCI hCoÌú»[`186 */ 187 188 /* 189 * èÝvæWX^ÌÝè(ISELRi)180 * SCIドライバの初期化ルーチン 181 */ 182 183 /* 184 * 割り込み要求先レジスタの設定(ISELRi) 190 185 * 191 * ZbglƯ¶lðÝè·é±ÆÉÈé½ß, 192 * ÍȪ·é. 193 */ 194 195 /* 196 * W 197 [Xgbv@\ÌÝè 198 */ 199 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* Ý */ 186 * リセット値と同じ値を設定することになるため, 187 * 処理は省略する. 188 */ 189 190 /* 191 * モジュールストップ機能の設定 192 */ 193 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* 書込み許可 */ 200 194 sil_wrw_mem((uint32_t *)p_siopinib->mstpcrreg, 201 195 sil_rew_mem((uint32_t *)p_siopinib->mstpcrreg) & ~p_siopinib->mstpcr_offset); 202 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* ÝÖ~*/203 204 /* óMÖ~, SCKn[qÍüoÍ|[gƵÄgp*/196 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* 書込み禁止 */ 197 198 /* 送受信禁止, SCKn端子は入出力ポートとして使用 */ 205 199 sil_wrb_mem((uint8_t *)p_siopinib->ctlreg, 0x00U); 206 200 207 /* NbNIðrbg(SMR.CKS[1:0]rbgðÝè) */201 /* クロック選択ビット(SMR.CKS[1:0]ビットを設定) */ 208 202 sil_wrb_mem((uint8_t *)p_siopinib->modereg, 209 203 sil_reb_mem((uint8_t *)p_siopinib->modereg) | clksrc); 210 204 211 /* SMR ÉM^ óMtH[}bgðÝè) */205 /* SMRに送信/ 受信フォーマットを設定) */ 212 206 sil_wrb_mem((uint8_t *)p_siopinib->modereg, 213 207 sil_reb_mem((uint8_t *)p_siopinib->modereg) & (~SCI_SMR_FLG_ENABLE)); 214 208 215 /* rbg[gðÝè*/209 /* ビットレートを設定 */ 216 210 sil_wrb_mem((uint8_t *)p_siopinib->bitratereg, bitrate); 217 211 218 /* rbgúÔ(î{NbN16TCNÌúÔª1rbgúÔÆÈé) */212 /* ビット期間(基本クロック16サイクルの期間が1ビット期間となる) */ 219 213 for(i = 0; i < 16; i++) { } 220 214 221 /* óMÂ*/215 /* 送受信許可 */ 222 216 sil_wrb_mem((uint8_t *)p_siopinib->ctlreg, 223 217 (sil_reb_mem((uint8_t *)p_siopinib->ctlreg) | SCI_SCR_FLG_ENABLE)); … … 226 220 227 221 /* 228 * SIO hCoÌú»[`222 * SIOドライバの初期化ルーチン 229 223 */ 230 224 void … … 235 229 236 230 /* 237 * VAI/O|[gÇubNÌú»231 * シリアルI/Oポート管理ブロックの初期化 238 232 */ 239 233 for (p_siopcb = siopcb_table, i = 0; i < TNUM_SIOP; p_siopcb++, i++){ … … 245 239 246 240 /* 247 * J[lN®Ìoi[oÍpÌú»241 * カーネル起動時のバナー出力用の初期化 248 242 */ 249 243 void … … 252 246 SIOPCB *p_siopcb = get_siopcb(siopid); 253 247 const SIOPINIB *p_siopinib = get_siopinib(siopid); 254 /* ±Ì_ÅÍAp_siopcb->p_siopinibÍú»³êĢȢ*/255 256 /* ñdú»Ìh~*/248 /* この時点では、p_siopcb->p_siopinibは初期化されていない */ 249 250 /* 二重初期化の防止 */ 257 251 p_siopcb->is_initialized = true; 258 252 259 /* n[hEFAÌú»ÆMÂ*/253 /* ハードウェアの初期化処理と送信許可 */ 260 254 rx630_uart_setmode(p_siopinib , bitrate, clksrc); 261 255 sil_wrb_mem((uint8_t *)p_siopinib->ctlreg, … … 264 258 265 259 /* 266 * VAI/O|[gÖÌ|[OÅÌoÍ260 * シリアルI/Oポートへのポーリングでの出力 267 261 */ 268 262 void … … 274 268 275 269 /* 276 * MWX^ªóÉÈéÜÅÒÂ270 * 送信レジスタが空になるまで待つ 277 271 */ 278 272 while((sil_reb_mem((uint8_t *)p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) == 0U); … … 282 276 283 277 /* 284 * VAI/O|[gÌI[v278 * シリアルI/Oポートのオープン 285 279 */ 286 280 SIOPCB * … … 295 289 296 290 /* 297 * n[hEFAÌú»291 * ハードウェアの初期化 298 292 * 299 * ùÉú»µÄ¢éêÍ, ñdÉú»µÈ¢.293 * 既に初期化している場合は, 二重に初期化しない. 300 294 */ 301 295 if(!(p_siopcb->is_initialized)){ … … 312 306 313 307 /* 314 * VAI/O|[gÌN[Y308 * シリアルI/Oポートのクローズ 315 309 */ 316 310 void … … 318 312 { 319 313 /* 320 * UART â~314 * UART停止 321 315 */ 322 316 sil_wrh_mem((uint16_t *)p_siopcb->p_siopinib->ctlreg, 0x00U); … … 326 320 327 321 /* 328 * VAI/O|[gÖ̶M322 * シリアルI/Oポートへの文字送信 329 323 */ 330 324 bool_t … … 343 337 344 338 /* 345 * VAI/O|[g©ç̶óM339 * シリアルI/Oポートからの文字受信 346 340 */ 347 341 int_t … … 351 345 352 346 /* 353 * óMtOªONÌÆ«ÌÝóMobt@©ç¶ðæ¾·é.354 * ±êÍ, |[OóMÉηé½ßÅ é.355 * µ©µ, RX600V[YÅÍóMtOªÈ¢±Æ, VXeT[rX356 * ÅÍóMÝ̩絩f[^ðóMµÉÈ¢±Æ©ç, íÉ357 * óMobt@©ç¶ðæ¾·é.347 * 受信フラグがONのときのみ受信バッファから文字を取得する. 348 * これは, ポーリング受信に対応するためである. 349 * しかし, RX600シリーズでは受信フラグがないこと, システムサービス 350 * では受信割込みの中からしかデータを受信しに来ないことから, 常に 351 * 受信バッファから文字を取得する. 358 352 */ 359 353 c = (int)(sil_reb_mem((uint8_t *)p_siopcb->p_siopinib->rdreg)); … … 363 357 364 358 /* 365 * VAI/O|[g©çÌR[obNÌÂ359 * シリアルI/Oポートからのコールバックの許可 366 360 */ 367 361 void … … 384 378 385 379 /* 386 * VAI/O|[g©çÌR[obNÌÖ~380 * シリアルI/Oポートからのコールバックの禁止 387 381 */ 388 382 void … … 405 399 406 400 /* 407 * SIO ÌÝT[rX[`401 * SIOの割込みサービスルーチン 408 402 */ 409 403 void … … 415 409 (void *)p_siopcb->p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) != 0U){ 416 410 /* 417 * MÂ\R[obN[`ðÄÑo·D411 * 送信可能コールバックルーチンを呼び出す. 418 412 */ 419 413 rx630_uart_irdy_snd(p_siopcb->exinf); … … 427 421 428 422 /* 429 * óMtOªONÌÆ«ÌÝóMÊmR[obN[`ðÄÑo·.430 * µ©µ, RX600V[YÅÍóMtOªÈ¢½ß, íÉóMÊm431 * R[obN[`ðÄÑo·.432 * ±±ÅÍóMÝ̶ðM¶é.433 */ 434 /* 435 * óMÊmR[obN[`ðÄÑo·D423 * 受信フラグがONのときのみ受信通知コールバックルーチンを呼び出す. 424 * しかし, RX600シリーズでは受信フラグがないため, 常に受信通知 425 * コールバックルーチンを呼び出す. 426 * ここでは受信割込みの発生を信じる. 427 */ 428 /* 429 * 受信通知コールバックルーチンを呼び出す. 436 430 */ 437 431 rx630_uart_irdy_rcv(p_siopcb->exinf); … … 440 434 441 435 /* 442 * |[gÔ©çÇubNÌæªÔnÖÌÏ·436 * ポート番号から管理ブロックの先頭番地への変換 443 437 */ 444 438 SIOPCB * … … 449 443 450 444 /* 451 * ÇubNÌæªÔn©çóMÝÔÖÌÏ·445 * 管理ブロックの先頭番地から受信割込み番号への変換 452 446 */ 453 447 INTNO … … 458 452 459 453 /* 460 * ÇubNÌæªÔn©çMÝÔÖÌÏ·454 * 管理ブロックの先頭番地から送信割込み番号への変換 461 455 */ 462 456 INTNO -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/pdic/rx600/rx630_uart.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * UART p ÈÕSIOhCo42 * UART用 簡易SIOドライバ 47 43 */ 48 44 … … 50 46 #define TOPPERS_RX630_UART_H 51 47 52 /* wèÂ\ÈNbN\[X*/48 /* 指定可能なクロックソース */ 53 49 #define CLK_F1 UINT_C(0x00) 54 50 #define CLK_F4 UINT_C(0x01) … … 59 55 60 56 /* 61 * VAI/O|[gÇubNÌè`57 * シリアルI/Oポート管理ブロックの定義 62 58 */ 63 59 typedef struct sio_port_control_block SIOPCB; 64 60 65 61 /* 66 * R[obN[`̯ÊÔ62 * コールバックルーチンの識別番号 67 63 */ 68 #define SIO_RDY_SND (1U) /* MÂ\R[obN*/69 #define SIO_RDY_RCV (2U) /* óMÊmR[obN*/64 #define SIO_RDY_SND (1U) /* 送信可能コールバック */ 65 #define SIO_RDY_RCV (2U) /* 受信通知コールバック */ 70 66 71 67 /* 72 * SIO hCoÌú»[`68 * SIOドライバの初期化ルーチン 73 69 */ 74 70 extern void rx630_uart_initialize(void); 75 71 76 72 /* 77 * J[lN®Ìoi[oÍpÌú»73 * カーネル起動時のバナー出力用の初期化 78 74 */ 79 75 extern void rx630_uart_init(ID siopid , uint8_t baud , uint8_t clksrc); 80 76 81 77 /* 82 * VAI/O|[gÖÌ|[OÅÌoÍ78 * シリアルI/Oポートへのポーリングでの出力 83 79 */ 84 80 extern void rx630_uart_pol_putc(char c, ID siopid); 85 81 86 82 /* 87 * VAI/O|[gÌI[v83 * シリアルI/Oポートのオープン 88 84 */ 89 85 extern SIOPCB *rx630_uart_opn_por … … 91 87 92 88 /* 93 * VAI/O|[gÌN[Y89 * シリアルI/Oポートのクローズ 94 90 */ 95 91 extern void rx630_uart_cls_por(SIOPCB *p_siopcb); 96 92 97 93 /* 98 * VAI/O|[gÖ̶M94 * シリアルI/Oポートへの文字送信 99 95 */ 100 96 extern bool_t rx630_uart_snd_chr(SIOPCB *p_siopcb, char c); 101 97 102 98 /* 103 * VAI/O|[g©ç̶óM99 * シリアルI/Oポートからの文字受信 104 100 */ 105 101 extern int_t rx630_uart_rcv_chr(SIOPCB *p_siopcb); 106 102 107 103 /* 108 * VAI/O|[g©çÌR[obNÌÂ104 * シリアルI/Oポートからのコールバックの許可 109 105 */ 110 106 extern void rx630_uart_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn); 111 107 112 108 /* 113 * VAI/O|[g©çÌR[obNÌÖ~109 * シリアルI/Oポートからのコールバックの禁止 114 110 */ 115 111 extern void rx630_uart_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn); 116 112 117 113 /* 118 * SIO ÌÝT[rX[`114 * SIOの割込みサービスルーチン 119 115 */ 120 116 extern void rx630_uart_tx_isr(ID siopid); … … 122 118 123 119 /* 124 * VAI/O|[g©çÌMÂ\R[obN120 * シリアルI/Oポートからの送信可能コールバック 125 121 */ 126 122 extern void rx630_uart_irdy_snd(intptr_t exinf); 127 123 128 124 /* 129 * VAI/O|[g©çÌóMÊmR[obN125 * シリアルI/Oポートからの受信通知コールバック 130 126 */ 131 127 extern void rx630_uart_irdy_rcv(intptr_t exinf); … … 133 129 134 130 /* 135 * |[gÔ©çÇubNÌæªÔnÖÌÏ·131 * ポート番号から管理ブロックの先頭番地への変換 136 132 */ 137 133 extern SIOPCB *rx630_uart_get_siopcb(ID siopid); 138 134 139 135 /* 140 * ÇubNÌæªÔn©çóMÝÔÖÌÏ·136 * 管理ブロックの先頭番地から受信割込み番号への変換 141 137 */ 142 138 extern INTNO rx630_uart_intno_rx(SIOPCB *p_siopcb); 143 139 144 140 /* 145 * ÇubNÌæªÔn©çMÝÔÖÌÏ·141 * 管理ブロックの先頭番地から送信割込み番号への変換 146 142 */ 147 143 extern INTNO rx630_uart_intno_tx(SIOPCB *p_siopcb); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/banner.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * J[lN®bZ[WÌoÍ44 * カーネル起動メッセージの出力 49 45 */ 50 46 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/banner.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 4 4 5 5 /* 6 * J[lN®bZ[WÌoÍÌRtBM 7 [Vt@C 6 * カーネル起動メッセージの出力のコンフィギュレーションファイル 8 7 */ 9 8 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/banner.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * 9 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 10 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 11 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 12 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 13 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 14 * XR[hÉÜÜêÄ¢é±ÆD 15 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 16 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 17 gip 18 * Ò}j 19 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 20 * ̳ÛØKèðfÚ·é±ÆD 21 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 22 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 23 * ÆD 24 * (a) Äzzɺ¤hL 25 gipÒ}j 26 AÈÇjÉCãLÌ 27 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 28 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 29 * ñ·é±ÆD 30 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 31 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 32 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 33 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 34 * ÆÓ·é±ÆD 9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 35 31 * 36 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨37 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI38 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF39 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»40 * ÌÓCðíÈ¢D32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 41 37 * 42 38 * @(#) $Id$ … … 44 40 45 41 /* 46 * J[lN®bZ[WÌoÍ42 * カーネル起動メッセージの出力 47 43 */ 48 44 … … 51 47 52 48 /* 53 * J[lN®bZ[WÌoÍ49 * カーネル起動メッセージの出力 54 50 */ 55 51 extern void print_banner(intptr_t exinf) throw(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/logtask.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VXeO^XN44 * システムログタスク 49 45 */ 50 46 … … 57 53 58 54 /* 59 * VXeO^XNÌoÍæÌ|[gID55 * システムログタスクの出力先のポートID 60 56 */ 61 57 static ID logtask_portid; 62 58 63 59 /* 64 * VAC^tF[XÖÌ1¶oÍ60 * シリアルインタフェースへの1文字出力 65 61 */ 66 62 static void … … 71 67 72 68 /* 73 * VXeOoÍÌÒ¿í¹69 * システムログ出力の待ち合わせ 74 70 */ 75 71 ER … … 92 88 if (count == 0U) { 93 89 /* 94 * count ª0ÌêÉÍCVAobt@ªó©ðm95 * F·éD90 * countが0の場合には,シリアルバッファが空かを確 91 * 認する. 96 92 */ 97 93 if (serial_ref_por(logtask_portid, &rpor) < 0) { … … 111 107 112 108 /* 113 * LOGTASK_FLUSH_WAIT ~bÒÂD109 * LOGTASK_FLUSH_WAITミリ秒待つ. 114 110 */ 115 111 rercd = dly_tsk(LOGTASK_FLUSH_WAIT); … … 126 122 127 123 /* 128 * VXeO^XNÌ{Ì124 * システムログタスクの本体 129 125 */ 130 126 void … … 161 157 162 158 /* 163 * VXeO^XNÌI¹159 * システムログタスクの終了処理 164 160 */ 165 161 void … … 172 168 173 169 /* 174 * VAC^tF[XhCoÌMobt@É~ϳê½f[^175 * ðCáxoÍ@\ðp¢ÄoÍ·éD170 * シリアルインタフェースドライバの送信バッファに蓄積されたデータ 171 * を,低レベル出力機能を用いて出力する. 176 172 */ 177 173 while (serial_get_chr(logtask_portid, &c)) { … … 180 176 181 177 /* 182 * Oobt@ÉL^³ê½OîñðCáxoÍ@\ðp¢Äo183 * Í·éD178 * ログバッファに記録されたログ情報を,低レベル出力機能を用いて出 179 * 力する. 184 180 */ 185 181 while ((rercd = syslog_rea_log(&logbuf)) >= 0) { 186 182 if (!msgflg) { 187 183 /* 188 * Oobt@ÉcÁ½OîñÅ é±Æ𦷶ñðo189 * Í·éD184 * ログバッファに残ったログ情報であることを示す文字列を出 185 * 力する. 190 186 */ 191 187 syslog_printf("-- buffered messages --\n", NULL, target_fput_log); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/logtask.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 4 4 5 5 /* 6 * VXeO^XNÌRtBM 7 [Vt@C 6 * システムログタスクのコンフィギュレーションファイル 8 7 */ 9 8 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/logtask.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VXeO^XN44 * システムログタスク 49 45 */ 50 46 … … 59 55 60 56 /* 61 * VXeO^XNÖAÌèÌftHglÌè`57 * システムログタスク関連の定数のデフォルト値の定義 62 58 */ 63 59 #ifndef LOGTASK_PRIORITY 64 #define LOGTASK_PRIORITY 3 /* úDæx*/60 #define LOGTASK_PRIORITY 3 /* 初期優先度 */ 65 61 #endif /* LOGTASK_PRIORITY */ 66 62 67 63 #ifndef LOGTASK_STACK_SIZE 68 #define LOGTASK_STACK_SIZE 1024 /* X^bNÌæÌTCY*/64 #define LOGTASK_STACK_SIZE 1024 /* スタック領域のサイズ */ 69 65 #endif /* LOGTASK_STACK_SIZE */ 70 66 71 67 #ifndef LOGTASK_PORTID 72 #define LOGTASK_PORTID 1 /* VXeOpÌVA|[gÔ*/68 #define LOGTASK_PORTID 1 /* システムログ用のシリアルポート番号 */ 73 69 #endif /* LOGTASK_PORTID */ 74 70 75 71 #ifndef LOGTASK_INTERVAL 76 #define LOGTASK_INTERVAL 10U /* VXeO^XNÌ®ìÔui~bj*/72 #define LOGTASK_INTERVAL 10U /* システムログタスクの動作間隔(ミリ秒)*/ 77 73 #endif /* LOGTASK_INTERVAL */ 78 74 79 75 #ifndef LOGTASK_FLUSH_WAIT 80 #define LOGTASK_FLUSH_WAIT 1U /* tbV 81 Ò¿ÌPÊÔi~bj*/ 76 #define LOGTASK_FLUSH_WAIT 1U /* フラッシュ待ちの単位時間(ミリ秒)*/ 82 77 #endif /* LOGTASK_FLUSH_WAIT */ 83 78 84 79 /* 85 * VXeOoÍÌÒ¿í¹80 * システムログ出力の待ち合わせ 86 81 * 87 * Oobt@ÌO̪countȺÉÈéÜÅÒÂDcountª0ÌêÉ88 * ÍCVAobt@ªóÉÈéÌàÒÂD82 * ログバッファ中のログの数がcount以下になるまで待つ.countが0の場合に 83 * は,シリアルバッファが空になるのも待つ. 89 84 */ 90 85 extern ER logtask_flush(uint_t count) throw(); 91 86 92 87 /* 93 * VXeO^XNÌ{Ì88 * システムログタスクの本体 94 89 */ 95 90 extern void logtask_main(intptr_t exinf) throw(); 96 91 97 92 /* 98 * VXeO^XNÌI¹93 * システムログタスクの終了処理 99 94 */ 100 95 extern void logtask_terminate(intptr_t exinf) throw(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/serial.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VAC^tF[XhCo44 * シリアルインタフェースドライバ 49 45 */ 50 46 … … 57 53 58 54 /* 59 * obt@TCYÌftHglÆobt@Ìè`55 * バッファサイズのデフォルト値とバッファの定義 60 56 */ 61 57 #ifndef SERIAL_RCV_BUFSZ1 62 #define SERIAL_RCV_BUFSZ1 256 /* |[g1ÌóMobt@TCY*/58 #define SERIAL_RCV_BUFSZ1 256 /* ポート1の受信バッファサイズ */ 63 59 #endif /* SERIAL_RCV_BUFSZ1 */ 64 60 65 61 #ifndef SERIAL_SND_BUFSZ1 66 #define SERIAL_SND_BUFSZ1 256 /* |[g1ÌMobt@TCY*/62 #define SERIAL_SND_BUFSZ1 256 /* ポート1の送信バッファサイズ */ 67 63 #endif /* SERIAL_SND_BUFSZ1 */ 68 64 … … 70 66 static char snd_buffer1[SERIAL_SND_BUFSZ1]; 71 67 72 #if TNUM_PORT >= 2 /* |[g2ÉÖ·éè`*/68 #if TNUM_PORT >= 2 /* ポート2に関する定義 */ 73 69 74 70 #ifndef SERIAL_RCV_BUFSZ2 75 #define SERIAL_RCV_BUFSZ2 256 /* |[g2ÌóMobt@TCY*/71 #define SERIAL_RCV_BUFSZ2 256 /* ポート2の受信バッファサイズ */ 76 72 #endif /* SERIAL_RCV_BUFSZ2 */ 77 73 78 74 #ifndef SERIAL_SND_BUFSZ2 79 #define SERIAL_SND_BUFSZ2 256 /* |[g2ÌMobt@TCY*/75 #define SERIAL_SND_BUFSZ2 256 /* ポート2の送信バッファサイズ */ 80 76 #endif /* SERIAL_SND_BUFSZ2 */ 81 77 … … 85 81 #endif /* TNUM_PORT >= 2 */ 86 82 87 #if TNUM_PORT >= 3 /* |[g3ÉÖ·éè`*/83 #if TNUM_PORT >= 3 /* ポート3に関する定義 */ 88 84 89 85 #ifndef SERIAL_RCV_BUFSZ3 90 #define SERIAL_RCV_BUFSZ3 256 /* |[g3ÌóMobt@TCY*/86 #define SERIAL_RCV_BUFSZ3 256 /* ポート3の受信バッファサイズ */ 91 87 #endif /* SERIAL_RCV_BUFSZ3 */ 92 88 93 89 #ifndef SERIAL_SND_BUFSZ3 94 #define SERIAL_SND_BUFSZ3 256 /* |[g3ÌMobt@TCY*/90 #define SERIAL_SND_BUFSZ3 256 /* ポート3の送信バッファサイズ */ 95 91 #endif /* SERIAL_SND_BUFSZ3 */ 96 92 … … 100 96 #endif /* TNUM_PORT >= 3 */ 101 97 102 #if TNUM_PORT >= 4 /* |[g4ÉÖ·éè`*/98 #if TNUM_PORT >= 4 /* ポート4に関する定義 */ 103 99 104 100 #ifndef SERIAL_RCV_BUFSZ4 105 #define SERIAL_RCV_BUFSZ4 256 /* |[g4ÌóMobt@TCY*/101 #define SERIAL_RCV_BUFSZ4 256 /* ポート4の受信バッファサイズ */ 106 102 #endif /* SERIAL_RCV_BUFSZ4 */ 107 103 108 104 #ifndef SERIAL_SND_BUFSZ4 109 #define SERIAL_SND_BUFSZ4 256 /* |[g4ÌMobt@TCY*/105 #define SERIAL_SND_BUFSZ4 256 /* ポート4の送信バッファサイズ */ 110 106 #endif /* SERIAL_SND_BUFSZ4 */ 111 107 … … 115 111 #endif /* TNUM_PORT >= 4 */ 116 112 117 #if TNUM_PORT >= 5 /* |[g5ÉÖ·éè`*/113 #if TNUM_PORT >= 5 /* ポート5に関する定義 */ 118 114 119 115 #ifndef SERIAL_RCV_BUFSZ5 120 #define SERIAL_RCV_BUFSZ5 256 /* |[g5ÌóMobt@TCY*/116 #define SERIAL_RCV_BUFSZ5 256 /* ポート5の受信バッファサイズ */ 121 117 #endif /* SERIAL_RCV_BUFSZ5 */ 122 118 123 119 #ifndef SERIAL_SND_BUFSZ5 124 #define SERIAL_SND_BUFSZ5 256 /* |[g5ÌMobt@TCY*/120 #define SERIAL_SND_BUFSZ5 256 /* ポート5の送信バッファサイズ */ 125 121 #endif /* SERIAL_SND_BUFSZ5 */ 126 122 … … 130 126 #endif /* TNUM_PORT >= 5 */ 131 127 132 #if TNUM_PORT >= 6 /* |[g6ÉÖ·éè`*/128 #if TNUM_PORT >= 6 /* ポート6に関する定義 */ 133 129 134 130 #ifndef SERIAL_RCV_BUFSZ6 135 #define SERIAL_RCV_BUFSZ6 256 /* |[g6ÌóMobt@TCY*/131 #define SERIAL_RCV_BUFSZ6 256 /* ポート6の受信バッファサイズ */ 136 132 #endif /* SERIAL_RCV_BUFSZ6 */ 137 133 138 134 #ifndef SERIAL_SND_BUFSZ6 139 #define SERIAL_SND_BUFSZ6 256 /* |[g6ÌMobt@TCY*/135 #define SERIAL_SND_BUFSZ6 256 /* ポート6の送信バッファサイズ */ 140 136 #endif /* SERIAL_SND_BUFSZ6 */ 141 137 … … 150 146 151 147 /* 152 * t[§äÉÖA·éèÆ}N153 */ 154 #define FC_STOP '\023' /* Rg[-S */155 #define FC_START '\021' /* Rg[-Q */156 157 #define BUFCNT_STOP(bufsz) ((bufsz) * 3 / 4) /* STOP ðéî¶*/158 #define BUFCNT_START(bufsz) ((bufsz) / 2) /* START ðéî¶*/159 160 /* 161 * VA|[gú»ubN148 * フロー制御に関連する定数とマクロ 149 */ 150 #define FC_STOP '\023' /* コントロール-S */ 151 #define FC_START '\021' /* コントロール-Q */ 152 153 #define BUFCNT_STOP(bufsz) ((bufsz) * 3 / 4) /* STOPを送る基準文字数 */ 154 #define BUFCNT_START(bufsz) ((bufsz) / 2) /* STARTを送る基準文字数 */ 155 156 /* 157 * シリアルポート初期化ブロック 162 158 */ 163 159 typedef struct serial_port_initialization_block { 164 ID rcv_semid; /* óMobt@ÇpZ}tHÌID */165 ID snd_semid; /* Mobt@ÇpZ}tHÌID */166 uint_t rcv_bufsz; /* óMobt@TCY*/167 char *rcv_buffer; /* óMobt@*/168 uint_t snd_bufsz; /* Mobt@TCY*/169 char *snd_buffer; /* Mobt@*/160 ID rcv_semid; /* 受信バッファ管理用セマフォのID */ 161 ID snd_semid; /* 送信バッファ管理用セマフォのID */ 162 uint_t rcv_bufsz; /* 受信バッファサイズ */ 163 char *rcv_buffer; /* 受信バッファ */ 164 uint_t snd_bufsz; /* 送信バッファサイズ */ 165 char *snd_buffer; /* 送信バッファ */ 170 166 } SPINIB; 171 167 … … 192 188 193 189 /* 194 * VA|[gÇubN190 * シリアルポート管理ブロック 195 191 */ 196 192 typedef struct serial_port_control_block { 197 const SPINIB *p_spinib; /* VA|[gú»ubN*/198 SIOPCB *p_siopcb; /* VAI/O|[gÇubN*/199 bool_t openflag; /* I[vÏÝtO*/200 bool_t errorflag; /* G[tO*/201 uint_t ioctl; /* ®ì§äÌÝèl*/202 203 uint_t rcv_read_ptr; /* óMobt@Çoµ|C^*/204 uint_t rcv_write_ptr; /* óMobt@Ý|C^*/205 uint_t rcv_count; /* óMobt@̶*/206 char rcv_fc_chr; /* é׫START/STOP */207 bool_t rcv_stopped; /* STOP ðÁ½óÔ©H*/208 209 uint_t snd_read_ptr; /* Mobt@Çoµ|C^*/210 uint_t snd_write_ptr; /* Mobt@Ý|C^*/211 uint_t snd_count; /* Mobt@̶*/212 bool_t snd_stopped; /* STOP ðó¯æÁ½óÔ©H*/193 const SPINIB *p_spinib; /* シリアルポート初期化ブロック */ 194 SIOPCB *p_siopcb; /* シリアルI/Oポート管理ブロック */ 195 bool_t openflag; /* オープン済みフラグ */ 196 bool_t errorflag; /* エラーフラグ */ 197 uint_t ioctl; /* 動作制御の設定値 */ 198 199 uint_t rcv_read_ptr; /* 受信バッファ読出しポインタ */ 200 uint_t rcv_write_ptr; /* 受信バッファ書込みポインタ */ 201 uint_t rcv_count; /* 受信バッファ中の文字数 */ 202 char rcv_fc_chr; /* 送るべきSTART/STOP */ 203 bool_t rcv_stopped; /* STOPを送った状態か? */ 204 205 uint_t snd_read_ptr; /* 送信バッファ読出しポインタ */ 206 uint_t snd_write_ptr; /* 送信バッファ書込みポインタ */ 207 uint_t snd_count; /* 送信バッファ中の文字数 */ 208 bool_t snd_stopped; /* STOPを受け取った状態か? */ 213 209 } SPCB; 214 210 … … 216 212 217 213 /* 218 * VA|[gID©çVA|[gÇubNðæèo·½ßÌ}N214 * シリアルポートIDからシリアルポート管理ブロックを取り出すためのマクロ 219 215 */ 220 216 #define INDEX_PORT(portid) ((uint_t)((portid) - 1)) … … 222 218 223 219 /* 224 * |C^ÌCNg220 * ポインタのインクリメント 225 221 */ 226 222 #define INC_PTR(ptr, bufsz) do { \ … … 231 227 232 228 /* 233 * T[rXR[Äoµ}N229 * サービスコール呼出しマクロ 234 230 * 235 * T[rXR[ÄoµðÜÞ®expð]¿µCÔlªG[iÌljÌê236 * ÉÍCercÉercd_expð]¿µ½lðãüµCerror_exitÉgoto·éD231 * サービスコール呼出しを含む式expを評価し,返値がエラー(負の値)の場 232 * 合には,ercにercd_expを評価した値を代入し,error_exitにgotoする. 237 233 */ 238 234 #define SVC(exp, ercd_exp) do { \ … … 244 240 245 241 /* 246 * E_SYS G[̶¬242 * E_SYSエラーの生成 247 243 */ 248 244 static ER … … 254 250 255 251 /* 256 * Ò¿ÉüéT[rXR[©çÌG[ÌÏ·252 * 待ちに入るサービスコールからのエラーの変換 257 253 */ 258 254 static ER … … 270 266 271 267 /* 272 * VAC^tF[XhCoÌú»[`268 * シリアルインタフェースドライバの初期化ルーチン 273 269 */ 274 270 void … … 286 282 287 283 /* 288 * VA|[gÌI[viT[rXR[j284 * シリアルポートのオープン(サービスコール) 289 285 */ 290 286 ER … … 294 290 ER ercd; 295 291 296 if (sns_dpn()) { /* ReLXgÌ`FbN*/292 if (sns_dpn()) { /* コンテキストのチェック */ 297 293 return(E_CTX); 298 294 } 299 295 if (!(1 <= portid && portid <= TNUM_PORT)) { 300 return(E_ID); /* |[gÔÌ`FbN*/296 return(E_ID); /* ポート番号のチェック */ 301 297 } 302 298 p_spcb = get_spcb(portid); 303 299 304 300 SVC(dis_dsp(), gen_ercd_sys(p_spcb)); 305 if (p_spcb->openflag) { /* I[vÏÝ©Ì`FbN*/301 if (p_spcb->openflag) { /* オープン済みかのチェック */ 306 302 ercd = E_OBJ; 307 303 } 308 304 else { 309 305 /* 310 * ÏÌú»306 * 変数の初期化 311 307 */ 312 308 p_spcb->ioctl = (IOCTL_ECHO | IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV); … … 324 320 325 321 /* 326 * ±êÈ~CÝðÖ~·éD322 * これ以降,割込みを禁止する. 327 323 */ 328 324 if (loc_cpu() < 0) { … … 332 328 333 329 /* 334 * n[hEFA˶ÌI[v330 * ハードウェア依存のオープン処理 335 331 */ 336 332 p_spcb->p_siopcb = sio_opn_por(portid, (intptr_t) p_spcb); 337 333 338 334 /* 339 * óMÊmR[obNð·éD335 * 受信通知コールバックを許可する. 340 336 */ 341 337 sio_ena_cbr(p_spcb->p_siopcb, SIO_RDY_RCV); … … 359 355 360 356 /* 361 * VA|[gÌN[YiT[rXR[j357 * シリアルポートのクローズ(サービスコール) 362 358 */ 363 359 ER … … 368 364 bool_t eflag = false; 369 365 370 if (sns_dpn()) { /* ReLXgÌ`FbN*/366 if (sns_dpn()) { /* コンテキストのチェック */ 371 367 return(E_CTX); 372 368 } 373 369 if (!(1 <= portid && portid <= TNUM_PORT)) { 374 return(E_ID); /* |[gÔÌ`FbN*/370 return(E_ID); /* ポート番号のチェック */ 375 371 } 376 372 p_spcb = get_spcb(portid); 377 373 378 374 SVC(dis_dsp(), gen_ercd_sys(p_spcb)); 379 if (!(p_spcb->openflag)) { /* I[vÏÝ©Ì`FbN*/375 if (!(p_spcb->openflag)) { /* オープン済みかのチェック */ 380 376 ercd = E_OBJ; 381 377 } 382 378 else { 383 379 /* 384 * n[hEFA˶ÌN[Y380 * ハードウェア依存のクローズ処理 385 381 */ 386 382 if (loc_cpu() < 0) { … … 394 390 395 391 /* 396 * Z}tHÌú»392 * セマフォの初期化 397 393 */ 398 394 if (ini_sem(p_spcb->p_spinib->snd_semid) < 0) { … … 404 400 405 401 /* 406 * G[R[hÌÝè402 * エラーコードの設定 407 403 */ 408 404 if (eflag) { … … 420 416 421 417 /* 422 * VA|[gÖ̶M418 * シリアルポートへの文字送信 423 419 * 424 * p_spcb Åwè³êéVAI/O|[gÉεÄC¶cðM·éD¶425 * ðMWX^É¢ê½êÉÍtrueðÔ·D»¤ÅÈ¢êÉÍCM426 * WX^ªó¢½±ÆðÊm·éR[obNÖðµCfalseðÔ·D427 * ±ÌÖÍCCPUbNóÔÅÄÑo³êéD420 * p_spcbで指定されるシリアルI/Oポートに対して,文字cを送信する.文字 421 * を送信レジスタにいれた場合にはtrueを返す.そうでない場合には,送信 422 * レジスタが空いたことを通知するコールバック関数を許可し,falseを返す. 423 * この関数は,CPUロック状態で呼び出される. 428 424 */ 429 425 Inline bool_t … … 440 436 441 437 /* 442 * VA|[gÖÌ1¶M438 * シリアルポートへの1文字送信 443 439 */ 444 440 static ER_BOOL … … 449 445 450 446 /* 451 * LF ÌOÉCRðM·éD447 * LFの前にCRを送信する. 452 448 */ 453 449 if (c == '\n' && (p_spcb->ioctl & IOCTL_CRLF) != 0U) { 454 450 /* 455 * ȺÌR[hÍÄAÄoµÉÈÁÄ¢éªCøcª'\n'ÌêÉ456 * øcð'\r'ƵÄÄÑo·±Æ©çC±ÌÄAÄoµÍ2ñÚÌ457 * ÄÑoµÅK¸~ÜéD451 * 以下のコードは再帰呼出しになっているが,引数cが'\n'の場合に 452 * 引数cを'\r'として呼び出すことから,この再帰呼出しは2回目の 453 * 呼び出しで必ず止まる. 458 454 */ 459 455 SVC(rercd = serial_wri_chr(p_spcb, '\r'), rercd); … … 468 464 && serial_snd_chr(p_spcb, c)) { 469 465 /* 470 * VAI/OfoCXÌMWX^ɶðüêé±Æɬ÷µ471 * ½êD466 * シリアルI/Oデバイスの送信レジスタに文字を入れることに成功し 467 * た場合. 472 468 */ 473 469 buffer_full = false; … … 475 471 else { 476 472 /* 477 * Mobt@ɶðüêéD473 * 送信バッファに文字を入れる. 478 474 */ 479 475 p_spcb->p_spinib->snd_buffer[p_spcb->snd_write_ptr] = c; … … 491 487 492 488 /* 493 * VA|[gÖ̶ñMiT[rXR[j489 * シリアルポートへの文字列送信(サービスコール) 494 490 */ 495 491 ER_UINT … … 501 497 ER ercd, rercd; 502 498 503 if (sns_dpn()) { /* ReLXgÌ`FbN*/499 if (sns_dpn()) { /* コンテキストのチェック */ 504 500 return(E_CTX); 505 501 } 506 502 if (!(1 <= portid && portid <= TNUM_PORT)) { 507 return(E_ID); /* |[gÔÌ`FbN*/503 return(E_ID); /* ポート番号のチェック */ 508 504 } 509 505 510 506 p_spcb = get_spcb(portid); 511 if (!(p_spcb->openflag)) { /* I[vÏÝ©Ì`FbN*/507 if (!(p_spcb->openflag)) { /* オープン済みかのチェック */ 512 508 return(E_OBJ); 513 509 } 514 if (p_spcb->errorflag) { /* G[óÔ©Ì`FbN*/510 if (p_spcb->errorflag) { /* エラー状態かのチェック */ 515 511 return(E_SYS); 516 512 } 517 513 518 buffer_full = true; /* [vÌ1ñßÍwai_sem·é*/514 buffer_full = true; /* ループの1回めはwai_semする */ 519 515 while (wricnt < len) { 520 516 if (buffer_full) { … … 536 532 537 533 /* 538 * VA|[g©çÌ1¶óM534 * シリアルポートからの1文字受信 539 535 */ 540 536 static bool_t … … 547 543 548 544 /* 549 * óMobt@©ç¶ðæèo·D545 * 受信バッファから文字を取り出す. 550 546 */ 551 547 *p_c = p_spcb->p_spinib->rcv_buffer[p_spcb->rcv_read_ptr]; … … 555 551 556 552 /* 557 * START ðM·éD553 * STARTを送信する. 558 554 */ 559 555 if (p_spcb->rcv_stopped && p_spcb->rcv_count … … 573 569 574 570 /* 575 * VA|[g©ç̶ñóMiT[rXR[j571 * シリアルポートからの文字列受信(サービスコール) 576 572 */ 577 573 ER_UINT … … 581 577 bool_t buffer_empty; 582 578 uint_t reacnt = 0U; 583 char c = '\0'; /* RpCÌxð}~·é½ßÉú»·é*/579 char c = '\0'; /* コンパイラの警告を抑止するために初期化する */ 584 580 ER ercd, rercd; 585 581 586 if (sns_dpn()) { /* ReLXgÌ`FbN*/582 if (sns_dpn()) { /* コンテキストのチェック */ 587 583 return(E_CTX); 588 584 } 589 585 if (!(1 <= portid && portid <= TNUM_PORT)) { 590 return(E_ID); /* |[gÔÌ`FbN*/586 return(E_ID); /* ポート番号のチェック */ 591 587 } 592 588 593 589 p_spcb = get_spcb(portid); 594 if (!(p_spcb->openflag)) { /* I[vÏÝ©Ì`FbN*/590 if (!(p_spcb->openflag)) { /* オープン済みかのチェック */ 595 591 return(E_OBJ); 596 592 } 597 if (p_spcb->errorflag) { /* G[óÔ©Ì`FbN*/593 if (p_spcb->errorflag) { /* エラー状態かのチェック */ 598 594 return(E_SYS); 599 595 } 600 596 601 buffer_empty = true; /* [vÌ1ñßÍwai_sem·é*/597 buffer_empty = true; /* ループの1回めはwai_semする */ 602 598 while (reacnt < len) { 603 599 if (buffer_empty) { … … 611 607 612 608 /* 613 * GR[obND609 * エコーバック処理. 614 610 */ 615 611 if ((p_spcb->ioctl & IOCTL_ECHO) != 0U) { … … 633 629 634 630 /* 635 * VA|[ģäiT[rXR[j631 * シリアルポートの制御(サービスコール) 636 632 */ 637 633 ER … … 640 636 SPCB *p_spcb; 641 637 642 if (sns_dpn()) { /* ReLXgÌ`FbN*/638 if (sns_dpn()) { /* コンテキストのチェック */ 643 639 return(E_CTX); 644 640 } 645 641 if (!(1 <= portid && portid <= TNUM_PORT)) { 646 return(E_ID); /* |[gÔÌ`FbN*/642 return(E_ID); /* ポート番号のチェック */ 647 643 } 648 644 649 645 p_spcb = get_spcb(portid); 650 if (!(p_spcb->openflag)) { /* I[vÏÝ©Ì`FbN*/646 if (!(p_spcb->openflag)) { /* オープン済みかのチェック */ 651 647 return(E_OBJ); 652 648 } 653 if (p_spcb->errorflag) { /* G[óÔ©Ì`FbN*/649 if (p_spcb->errorflag) { /* エラー状態かのチェック */ 654 650 return(E_SYS); 655 651 } … … 660 656 661 657 /* 662 * VA|[góÔÌQÆiT[rXR[j658 * シリアルポート状態の参照(サービスコール) 663 659 */ 664 660 ER … … 667 663 SPCB *p_spcb; 668 664 669 if (sns_dpn()) { /* ReLXgÌ`FbN*/665 if (sns_dpn()) { /* コンテキストのチェック */ 670 666 return(E_CTX); 671 667 } 672 668 if (!(1 <= portid && portid <= TNUM_PORT)) { 673 return(E_ID); /* |[gÔÌ`FbN*/669 return(E_ID); /* ポート番号のチェック */ 674 670 } 675 671 676 672 p_spcb = get_spcb(portid); 677 if (!(p_spcb->openflag)) { /* I[vÏÝ©Ì`FbN*/673 if (!(p_spcb->openflag)) { /* オープン済みかのチェック */ 678 674 return(E_OBJ); 679 675 } 680 if (p_spcb->errorflag) { /* G[óÔ©Ì`FbN*/676 if (p_spcb->errorflag) { /* エラー状態かのチェック */ 681 677 return(E_SYS); 682 678 } … … 688 684 689 685 /* 690 * VA|[g©çÌMÂ\R[obN686 * シリアルポートからの送信可能コールバック 691 687 */ 692 688 void … … 698 694 if (p_spcb->rcv_fc_chr != '\0') { 699 695 /* 700 * START/STOP ðM·éD696 * START/STOP を送信する. 701 697 */ 702 698 (void) sio_snd_chr(p_spcb->p_siopcb, p_spcb->rcv_fc_chr); … … 705 701 else if (!(p_spcb->snd_stopped) && p_spcb->snd_count > 0U) { 706 702 /* 707 * Mobt@©ç¶ðæèoµÄM·éD703 * 送信バッファ中から文字を取り出して送信する. 708 704 */ 709 705 (void) sio_snd_chr(p_spcb->p_siopcb, … … 719 715 else { 720 716 /* 721 * M·×«¶ªÈ¢êÍCMÂ\R[obNðÖ~·éD717 * 送信すべき文字がない場合は,送信可能コールバックを禁止する. 722 718 */ 723 719 sio_dis_cbr(p_spcb->p_siopcb, SIO_RDY_SND); … … 726 722 727 723 /* 728 * VA|[g©çÌóMÊmR[obN724 * シリアルポートからの受信通知コールバック 729 725 */ 730 726 void … … 738 734 if ((p_spcb->ioctl & IOCTL_FCSND) != 0U && c == FC_STOP) { 739 735 /* 740 * Mðêâ~·éDM̶ͻÌÜÜM·éD736 * 送信を一時停止する.送信中の文字はそのまま送信する. 741 737 */ 742 738 p_spcb->snd_stopped = true; … … 745 741 || (p_spcb->ioctl & IOCTL_FCANY) != 0U)) { 746 742 /* 747 * MðÄJ·éD743 * 送信を再開する. 748 744 */ 749 745 p_spcb->snd_stopped = false; … … 763 759 else if ((p_spcb->ioctl & IOCTL_FCSND) != 0U && c == FC_START) { 764 760 /* 765 * MÉεÄt[§äµÄ¢éêCSTART ÍÌÄéD761 * 送信に対してフロー制御している場合,START は捨てる. 766 762 */ 767 763 } 768 764 else if (p_spcb->rcv_count == p_spcb->p_spinib->rcv_bufsz) { 769 765 /* 770 * obt@tÌêCóMµ½¶ðÌÄéD766 * バッファフルの場合,受信した文字を捨てる. 771 767 */ 772 768 } 773 769 else { 774 770 /* 775 * óMµ½¶ðóMobt@ÉüêéD771 * 受信した文字を受信バッファに入れる. 776 772 */ 777 773 p_spcb->p_spinib->rcv_buffer[p_spcb->rcv_write_ptr] = c; … … 785 781 786 782 /* 787 * STOP ðM·éD783 * STOPを送信する. 788 784 */ 789 785 if ((p_spcb->ioctl & IOCTL_FCRCV) != 0U && !(p_spcb->rcv_stopped) … … 799 795 800 796 /* 801 * VAC^tF[XhCo©çÌ¢M¶Ìæoµ797 * シリアルインタフェースドライバからの未送信文字の取出し 802 798 */ 803 799 bool_t … … 806 802 SPCB *p_spcb; 807 803 808 if (1 <= portid && portid <= TNUM_PORT) { /* |[gÔÌ`FbN*/804 if (1 <= portid && portid <= TNUM_PORT) { /* ポート番号のチェック */ 809 805 p_spcb = get_spcb(portid); 810 if (p_spcb->openflag) { /* I[vÏÝ©Ì`FbN*/806 if (p_spcb->openflag) { /* オープン済みかのチェック */ 811 807 if (p_spcb->snd_count > 0U) { 812 808 *p_c = p_spcb->p_spinib->snd_buffer[p_spcb->snd_read_ptr]; -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/serial.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 4 4 5 5 /* 6 * VAC^tF[XhCoÌRtBM 7 [Vt@C 6 * シリアルインタフェースドライバのコンフィギュレーションファイル 8 7 */ 9 8 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/serial.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VAC^tF[XhCo44 * シリアルインタフェースドライバ 49 45 */ 50 46 … … 57 53 58 54 /* 59 * VAC^tF[XhCoÌp¢épPbg55 * シリアルインタフェースドライバの用いるパケット 60 56 */ 61 57 typedef struct { 62 uint_t reacnt; /* óMobt@̶*/63 uint_t wricnt; /* Mobt@̶*/58 uint_t reacnt; /* 受信バッファ中の文字数 */ 59 uint_t wricnt; /* 送信バッファ中の文字数 */ 64 60 } T_SERIAL_RPOR; 65 61 66 62 /* 67 * VAC^tF[XhCoÌú»[`63 * シリアルインタフェースドライバの初期化ルーチン 68 64 */ 69 65 extern void serial_initialize(intptr_t exinf) throw(); 70 66 71 67 /* 72 * VAC^tF[XhCo©çÌ¢M¶Ìæoµ68 * シリアルインタフェースドライバからの未送信文字の取出し 73 69 */ 74 70 extern bool_t serial_get_chr(ID portid, char *p_c) throw(); 75 71 76 72 /* 77 * VAC^tF[XhCoÌT[rXR[73 * シリアルインタフェースドライバのサービスコール 78 74 */ 79 75 extern ER serial_opn_por(ID portid) throw(); … … 85 81 86 82 /* 87 * VAC^tF[XhCoÌ®ì§äp̽ßÌè83 * シリアルインタフェースドライバの動作制御用のための定数 88 84 * 89 * ȺÌèÍCrbgÉ_aðÆÁÄp¢éD85 * 以下の定数は,ビット毎に論理和をとって用いる. 90 86 */ 91 #define IOCTL_NULL 0U /* wèȵ*/92 #define IOCTL_ECHO 0x0001U /* óMµ½¶ðGR[obN*/93 #define IOCTL_CRLF 0x0010U /* LF ðM·éOÉCRðtÁ*/94 #define IOCTL_FCSND 0x0100U /* MÉεÄt[§äðs¤*/95 #define IOCTL_FCANY 0x0200U /* ÇÌæ¤È¶ÅàMÄJ*/96 #define IOCTL_FCRCV 0x0400U /* óMÉεÄt[§äðs¤*/87 #define IOCTL_NULL 0U /* 指定なし */ 88 #define IOCTL_ECHO 0x0001U /* 受信した文字をエコーバック */ 89 #define IOCTL_CRLF 0x0010U /* LFを送信する前にCRを付加 */ 90 #define IOCTL_FCSND 0x0100U /* 送信に対してフロー制御を行う */ 91 #define IOCTL_FCANY 0x0200U /* どのような文字でも送信再開 */ 92 #define IOCTL_FCRCV 0x0400U /* 受信に対してフロー制御を行う */ 97 93 98 94 #ifdef __cplusplus -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/syslog.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 37 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 42 * ÌÓCðíÈ¢D 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 33 * 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * $Id$ … … 46 42 47 43 /* 48 * VXeO@\44 * システムログ機能 49 45 */ 50 46 … … 57 53 58 54 /* 59 * g[XO}NÌftHgè`55 * トレースログマクロのデフォルト定義 60 56 */ 61 57 #ifndef LOG_SYSLOG_WRI_LOG_ENTER … … 92 88 93 89 /* 94 * »ÝÌVXe90 * 現在のシステム時刻 95 91 * 96 * Oðæèo·½ßÉCâÞÈCJ[lÌàÏðQƵĢ97 * éD92 * ログ時刻を取り出すために,やむなく,カーネルの内部変数を参照してい 93 * る. 98 94 */ 99 95 extern ulong_t _kernel_current_time; 100 96 101 97 /* 102 * Oobt@Æ»êÉANZX·é½ßÌ|C^103 */ 104 static SYSLOG syslog_buffer[TCNT_SYSLOG_BUFFER]; /* Oobt@*/105 static uint_t syslog_count; /* Oobt@ÌOÌ*/106 static uint_t syslog_head; /* æªÌOÌi[Êu*/107 static uint_t syslog_tail; /* ÌOÌi[Êu*/108 static uint_t syslog_lost; /* ¸íê½OÌ*/109 110 /* 111 * oͷ׫OîñÌdvxirbg}bvj112 */ 113 static uint_t syslog_logmask; /* Oobt@ÉL^·×«dvx*/114 static uint_t syslog_lowmask_not; /* áxoͷ׫dvxi½]j*/115 116 /* 117 * VXeO@\Ìú»98 * ログバッファとそれにアクセスするためのポインタ 99 */ 100 static SYSLOG syslog_buffer[TCNT_SYSLOG_BUFFER]; /* ログバッファ */ 101 static uint_t syslog_count; /* ログバッファ中のログの数 */ 102 static uint_t syslog_head; /* 先頭のログの格納位置 */ 103 static uint_t syslog_tail; /* 次のログの格納位置 */ 104 static uint_t syslog_lost; /* 失われたログの数 */ 105 106 /* 107 * 出力すべきログ情報の重要度(ビットマップ) 108 */ 109 static uint_t syslog_logmask; /* ログバッファに記録すべき重要度 */ 110 static uint_t syslog_lowmask_not; /* 低レベル出力すべき重要度(反転)*/ 111 112 /* 113 * システムログ機能の初期化 118 114 */ 119 115 void … … 129 125 130 126 /* 131 * OîñÌoÍ127 * ログ情報の出力 132 128 * 133 * CPU bNóÔâÀsReLXgÉæ縮ìÅ«éæ¤ÉÀµÄ éD129 * CPUロック状態や実行コンテキストによらず動作できるように実装してある. 134 130 */ 135 131 ER … … 142 138 143 139 /* 144 * OÌÝè140 * ログ時刻の設定 145 141 */ 146 142 ((SYSLOG *) p_syslog)->logtim = _kernel_current_time; 147 143 148 144 /* 149 * Oobt@ÉL^145 * ログバッファに記録 150 146 */ 151 147 if ((syslog_logmask & LOG_MASK(prio)) != 0U) { … … 165 161 166 162 /* 167 * áxoÍ163 * 低レベル出力 168 164 */ 169 165 if (((~syslog_lowmask_not) & LOG_MASK(prio)) != 0U) { … … 178 174 179 175 /* 180 * Oobt@©çÌÇoµ176 * ログバッファからの読出し 181 177 * 182 * CPU bNóÔâÀsReLXgÉæ縮ìÅ«éæ¤ÉÀµÄ éD178 * CPUロック状態や実行コンテキストによらず動作できるように実装してある. 183 179 */ 184 180 ER_UINT … … 192 188 193 189 /* 194 * Oobt@©çÌæoµ190 * ログバッファからの取出し 195 191 */ 196 192 if (syslog_count > 0U) { … … 214 210 215 211 /* 216 * oͷ׫OîñÌdvxÌÝè212 * 出力すべきログ情報の重要度の設定 217 213 */ 218 214 ER … … 227 223 228 224 /* 229 * Oobt@ÌóÔQÆ225 * ログバッファの状態参照 230 226 */ 231 227 ER -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/syslog.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 4 4 5 5 /* 6 * VXeO@\ÌRtBM 7 [Vt@C 6 * システムログ機能のコンフィギュレーションファイル 8 7 */ 9 8 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/syslog.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêÄ¢é±ÆD 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 22 * ̳ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * VXeO@\44 * システムログ機能 49 45 */ 50 46 … … 57 53 58 54 /* 59 * VXeOoÍðs¤½ßÌè`55 * システムログ出力を行うための定義 60 56 */ 61 57 #include <t_syslog.h> 62 58 63 59 /* 64 * Oobt@Æ»êÉANZX·é½ßÌ|C^60 * ログバッファとそれにアクセスするためのポインタ 65 61 */ 66 62 #ifndef TCNT_SYSLOG_BUFFER 67 #define TCNT_SYSLOG_BUFFER 32 /* Oobt@ÌTCY*/63 #define TCNT_SYSLOG_BUFFER 32 /* ログバッファのサイズ */ 68 64 #endif /* TCNT_SYSLOG_BUFFER */ 69 65 70 66 /* 71 * VXeO@\Ìú»67 * システムログ機能の初期化 72 68 */ 73 69 extern void syslog_initialize(intptr_t exinf) throw(); 74 70 75 71 /* 76 * OîñÌoÍ72 * ログ情報の出力 77 73 */ 78 74 extern ER syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw(); 79 75 80 76 /* 81 * Oobt@©çÌOîñÌÇoµ77 * ログバッファからのログ情報の読出し 82 78 */ 83 79 extern ER_UINT syslog_rea_log(SYSLOG *p_syslog) throw(); 84 80 85 81 /* 86 * oͷ׫OîñÌdvxÌÝè82 * 出力すべきログ情報の重要度の設定 87 83 */ 88 84 extern ER syslog_msk_log(uint_t logmask, uint_t lowmask) throw(); 89 85 90 86 /* 91 * Oobt@ÌóÔQÆ87 * ログバッファの状態参照 92 88 */ 93 89 extern ER syslog_ref_log(T_SYSLOG_RLOG *pk_rlog) throw(); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/syssvc/vasyslog.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêÄ¢é±ÆD 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 * ̳ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 36 32 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 * ÌÓCðíÈ¢D33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * ÂÏøÌVXeOCu43 * 可変数引数のシステムログライブラリ 48 44 */ 49 45 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/asm_config.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * asm_config.inc ¶¬vWFNgpRtBM 3 [Vt@C 2 * asm_config.inc 生成プロジェクト用コンフィギュレーションファイル 4 3 * 5 * RtBM 6 [VÍsÈíÈ¢½ßót@CÆ·é. 4 * コンフィギュレーションは行なわないため空ファイルとする. 7 5 */ 8 6 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/grsakura.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 6 6 * Copyright (C) 2010 by Witz Corporation, JAPAN 7 7 * 8 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 * XR[hÉÜÜêÄ¢é±ÆD 14 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 * Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 * ̳ÛØKèðfÚ·é±ÆD 20 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 * ÆD 23 * (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 * ñ·é±ÆD 29 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 * ÆÓ·é±ÆD 8 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 * スコード中に含まれていること. 14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 * の無保証規定を掲載すること. 18 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 * と. 21 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 * 報告すること. 25 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 * 免責すること. 34 30 * 35 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 * ÌÓCðíÈ¢D31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 40 36 * 41 37 * @(#) $Id$ 42 38 */ 43 39 44 /* GR-SAKURA pwb_t@*/40 /* GR-SAKURA用ヘッダファル */ 45 41 46 42 #ifndef TOPPERS_GRSAKURA_H … … 49 45 50 46 /* 51 * MCU ˶îñÌÇÝÝ47 * MCU依存情報の読み込み 52 48 */ 53 49 #ifdef __RX … … 58 54 59 55 /* 60 * NbNÝè56 * クロック設定 61 57 */ 62 58 63 59 /* 64 * VXeNbNICLK(kHz)60 * システムクロックICLK(kHz) 65 61 * 66 * CPU CDTCCDMACACETHERCCEDMACCROMCRAMp62 * CPU,DTC,DMACA,ETHERC,EDMAC,ROM,RAM用 67 63 * 68 64 */ … … 70 66 71 67 /* 72 * NbNPCLK(kHz)68 * クロックPCLK(kHz) 73 69 * 74 * ^C}CVAÈÇüÓW 75 [p 70 * タイマ,シリアルなど周辺モジュール用 76 71 */ 77 72 #define FREQ_PCLK (48000U) … … 79 74 80 75 /* 81 * {[[gÝè76 * ボーレート設定 82 77 */ 83 78 #define BAUD_19200BPS UINT_C( 78 ) … … 90 85 91 86 /* 92 * NbN\[X87 * クロックソース 93 88 */ 94 89 #define UART_CLKSRC CLK_F1 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 6 6 $ Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 $ 8 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 $ XR[hÉÜÜêÄ¢é±ÆD 14 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 $ Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 $ ̳ÛØKèðfÚ·é±ÆD 20 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 $ ÆD 23 $ (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 $ ñ·é±ÆD 29 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 $ ÆÓ·é±ÆD 8 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 $ スコード中に含まれていること. 14 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 $ の無保証規定を掲載すること. 18 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 $ と. 21 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 $ 報告すること. 25 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 $ 免責すること. 34 30 $ 35 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 $ ÌÓCðíÈ¢D31 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 $ の責任を負わない. 40 36 $ 41 37 $ @(#) $Id$ … … 43 39 44 40 $ 45 $ ^[Qbg˶ev[giGR-SAKURApj41 $ ターゲット依存テンプレート(GR-SAKURA用) 46 42 $ 47 43 … … 53 49 54 50 $ 55 $ RX630 ˶ÌÇÝÝ51 $ RX630依存部の読み込み 56 52 $ 57 53 $INCLUDE "rx630_ccrx/rx630.tf"$ 58 54 59 55 $ 60 $ AZut@CpÌwb_t@C̶¬56 $ アセンブリファイル用のヘッダファイルの生成 61 57 $ 62 58 $INCLUDE "target_asm_config.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_asm_config.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 $ 2 $ asm_config.inc ¶¬p3 $ pX2Ì^[Qbg˶ev[giGR-SAKURApj2 $ asm_config.inc 生成用 3 $ パス2のターゲット依存テンプレート(GR-SAKURA用) 4 4 $ 5 5 $ Copyright (C) 2010 by Witz Corporation, JAPAN … … 8 8 9 9 $ 10 $ vZbT˶Ìev[gt@CÌCN[h10 $ プロセッサ依存のテンプレートファイルのインクルード 11 11 $ 12 12 $INCLUDE"rx630_ccrx/prc_asm_config.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_ccrx_echonet.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 8 8 $ Copyright (C) 2014 Cores Co., Ltd. Japan 9 9 $ 10 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 $ XR[hÉÜÜêÄ¢é±ÆD 16 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 $ Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 $ ̳ÛØKèðfÚ·é±ÆD 22 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 $ ÆD 25 $ (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 $ ñ·é±ÆD 31 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 $ ÆÓ·é±ÆD 10 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 $ スコード中に含まれていること. 16 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 $ の無保証規定を掲載すること. 20 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 $ と. 23 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 $ 報告すること. 27 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 $ 免責すること. 36 32 $ 37 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 $ ÌÓCðíÈ¢D33 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 $ の責任を負わない. 42 38 $ 43 39 $ @(#) $Id$ … … 45 41 46 42 $ 47 $ ^[Qbg˶ev[giGR-SAKURApj43 $ ターゲット依存テンプレート(GR-SAKURA用) 48 44 $ 49 45 … … 55 51 56 52 $ 57 $ RX630 ˶ÌÇÝÝ53 $ RX630依存部の読み込み 58 54 $ 59 55 $INCLUDE "rx630_ccrx/rx630.tf"$ 60 56 61 57 $ 62 $ AZut@CpÌwb_t@C̶¬58 $ アセンブリファイル用のヘッダファイルの生成 63 59 $ 64 60 $INCLUDE "target_asm_config.tf"$ 65 61 66 $ ECHONET Lite ~hEFATFt@CÌCN[h62 $ ECHONET LiteミドルウェアTFファイルのインクルード 67 63 $INCLUDE "../../echonet/echonet.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_ccrx_ecnl_lwip.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 8 8 $ Copyright (C) 2014 Cores Co., Ltd. Japan 9 9 $ 10 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 15 $ XR[hÉÜÜêÄ¢é±ÆD 16 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 $ Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 21 $ ̳ÛØKèðfÚ·é±ÆD 22 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 $ ÆD 25 $ (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 29 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 $ ñ·é±ÆD 31 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 $ ÆÓ·é±ÆD 10 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 $ スコード中に含まれていること. 16 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 $ の無保証規定を掲載すること. 20 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 $ と. 23 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 $ 報告すること. 27 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 $ 免責すること. 36 32 $ 37 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨38 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI39 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF40 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»41 $ ÌÓCðíÈ¢D33 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 $ の責任を負わない. 42 38 $ 43 39 $ @(#) $Id$ … … 45 41 46 42 $ 47 $ ^[Qbg˶ev[giGR-SAKURApj43 $ ターゲット依存テンプレート(GR-SAKURA用) 48 44 $ 49 45 … … 55 51 56 52 $ 57 $ RX630 ˶ÌÇÝÝ53 $ RX630依存部の読み込み 58 54 $ 59 55 $INCLUDE "rx630_ccrx/rx630.tf"$ 60 56 61 57 $ 62 $ AZut@CpÌwb_t@C̶¬58 $ アセンブリファイル用のヘッダファイルの生成 63 59 $ 64 60 $INCLUDE "target_asm_config.tf"$ 65 61 66 $ ECHONET Lite ~hEFATFt@CÌCN[h62 $ ECHONET LiteミドルウェアTFファイルのインクルード 67 63 $INCLUDE "../../ecnl_lwip/echonet.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_cfg1_out.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * cfg1_out.c ÌNÉKvÈX^uÌè`2 * cfg1_out.cのリンクに必要なスタブの定義 3 3 */ 4 4 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_check.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 6 6 $ Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 $ 8 $ ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 9 $ Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 10 $ ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 11 $ (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 12 $ \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 13 $ XR[hÉÜÜêÄ¢é±ÆD 14 $ (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 15 $ pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 16 gip 17 $ Ò}j 18 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 19 $ ̳ÛØKèðfÚ·é±ÆD 20 $ (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 21 $ pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 22 $ ÆD 23 $ (a) Äzzɺ¤hL 24 gipÒ}j 25 AÈÇjÉCãLÌ 26 $ ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 27 $ (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 28 $ ñ·é±ÆD 29 $ (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 30 $ Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 31 $ ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 32 $ RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 33 $ ÆÓ·é±ÆD 8 $ 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 9 $ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 10 $ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 11 $ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 12 $ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 13 $ スコード中に含まれていること. 14 $ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 15 $ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 16 $ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 17 $ の無保証規定を掲載すること. 18 $ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 19 $ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 20 $ と. 21 $ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 22 $ 作権表示,この利用条件および下記の無保証規定を掲載すること. 23 $ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 24 $ 報告すること. 25 $ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 26 $ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 27 $ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 28 $ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 29 $ 免責すること. 34 30 $ 35 $ {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨36 $ æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI37 $ ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF38 $ AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»39 $ ÌÓCðíÈ¢D31 $ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 $ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 $ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 $ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 $ の責任を負わない. 40 36 $ 41 37 $ @(#) $Id$ … … 43 39 44 40 $ 45 $ pX3Ì^[Qbg˶ev[giGR-SAKURApj41 $ パス3のターゲット依存テンプレート(GR-SAKURA用) 46 42 $ 47 43 48 44 $ 49 $ pX3ÌvZbT˶Ìev[gÌCN[h45 $ パス3のプロセッサ依存のテンプレートのインクルード 50 46 $ 51 47 $INCLUDE"rx630_ccrx/prc_check.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 11 11 * Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 * 13 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 14 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 15 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 16 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 17 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 18 * XR[hÉÜÜêÄ¢é±ÆD 19 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 20 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 21 gip 22 * Ò}j 23 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 24 * ̳ÛØKèðfÚ·é±ÆD 25 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 26 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 27 * ÆD 28 * (a) Äzzɺ¤hL 29 gipÒ}j 30 AÈÇjÉCãLÌ 31 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 32 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 33 * ñ·é±ÆD 34 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 35 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 36 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 37 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 38 * ÆÓ·é±ÆD 13 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 14 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 15 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 18 * スコード中に含まれていること. 19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 22 * の無保証規定を掲載すること. 23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 25 * と. 26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 27 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 29 * 報告すること. 30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 32 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 33 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 34 * 免責すること. 39 35 * 40 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨41 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI42 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF43 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»44 * ÌÓCðíÈ¢D36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 * の責任を負わない. 45 41 * 46 42 * @(#) $Id$ … … 48 44 49 45 /* 50 * ^[QbgVXe˶W 51 [iGR-SAKURApj 46 * ターゲットシステム依存モジュール(GR-SAKURA用) 52 47 */ 53 48 … … 58 53 59 54 /* 60 * ^[QbgVXe˶ ú»[`55 * ターゲットシステム依存 初期化ルーチン 61 56 */ 62 57 void … … 64 59 { 65 60 /* 66 * vZbT˶Ìú»61 * プロセッサ依存の初期化 67 62 */ 68 63 prc_initialize(); 69 64 70 /* IO |[gú»*/71 /* P25 ðoÍ|[gÉ·é*/65 /* IOポート初期化 */ 66 /* P25を出力ポートにする */ 72 67 sil_wrb_mem((uint8_t *)PORT2_PDR_ADDR, 73 68 sil_reb_mem((uint8_t *)PORT2_PDR_ADDR) | PORT_PDR_B5_BIT); 74 /* PA0, PA1, PA2, PA6 ðoÍ|[gÉ·é*/69 /* PA0, PA1, PA2, PA6を出力ポートにする */ 75 70 sil_wrb_mem((uint8_t *)PORTA_PDR_ADDR, 76 71 sil_reb_mem((uint8_t *)PORTA_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B1_BIT | PORT_PDR_B2_BIT | PORT_PDR_B6_BIT); 77 /* PA7 ðüÍ|[gÉ·é*/72 /* PA7を入力ポートにする */ 78 73 sil_wrb_mem((uint8_t *)PORTA_PDR_ADDR, 79 74 sil_reb_mem((uint8_t *)PORTA_PDR_ADDR) & ~PORT_PDR_B7_BIT); 80 75 81 76 /* 82 * VA|[gÌÝè77 * シリアルポートの設定 83 78 */ 84 79 rx630_uart_init(TARGET_PUTC_PORTID, UART_BAUDRATE, UART_CLKSRC); 85 80 86 /* |[gP20ðTxD0, |[gP21ðRxD0É*/81 /* ポートP20をTxD0, ポートP21をRxD0に */ 87 82 sil_wrb_mem((uint8_t *)PORT2_PMR_ADDR, 0x03); 88 83 89 /* f[^fBNVWX^(PDR)ÌÝè P21(RxD0)ðüÍ|[gÉ·é*/84 /* データディレクションレジスタ(PDR)の設定 P21(RxD0)を入力ポートにする */ 90 85 sil_wrb_mem((uint8_t *)PORT2_PDR_ADDR, 91 86 sil_reb_mem((uint8_t *)PORT2_PDR_ADDR) & ~PORT_PDR_B1_BIT); 92 87 93 /* f[^fBNVWX^(PDR)ÌÝè P20(TxD0)ðoÍ|[gÉ·é*/88 /* データディレクションレジスタ(PDR)の設定 P20(TxD0)を出力ポートにする */ 94 89 sil_wrb_mem((uint8_t *)PORT2_PDR_ADDR, 95 90 sil_reb_mem((uint8_t *)PORT2_PDR_ADDR) | PORT_PDR_B0_BIT); 96 91 97 /* |[gP40`P47ðüÓ@íÉ*/92 /* ポートP40〜P47を周辺機器に */ 98 93 sil_wrb_mem((uint8_t *)PORT4_PMR_ADDR, 0xFF); 99 94 100 /* |[gP40`P47ðüÍ|[gÉ·é*/95 /* ポートP40〜P47を入力ポートにする */ 101 96 sil_wrb_mem((uint8_t *)PORT4_PDR_ADDR, 0x00); 102 97 103 /* «ÝveNgWX^ÌÝè PFSWErbgÖÌ«ÝðÂ*/98 /* 書き込みプロテクトレジスタの設定 PFSWEビットへの書き込みを許可 */ 104 99 sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x00); 105 /* «ÝveNgWX^ÌÝè PxxFSWX^ÖÌ«ÝðÂ*/100 /* 書き込みプロテクトレジスタの設定 PxxFSレジスタへの書き込みを許可 */ 106 101 sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x40); 107 102 108 /* P21 [q@\§äWX^ RXD0Æ·é*/103 /* P21端子機能制御レジスタ RXD0とする */ 109 104 sil_wrb_mem((uint8_t *)MPC_P21PFS_ADDR, 0x0a); 110 /* P20 [q@\§äWX^ TXD0Æ·é*/105 /* P20端子機能制御レジスタ TXD0とする */ 111 106 sil_wrb_mem((uint8_t *)MPC_P20PFS_ADDR, 0x0a); 112 107 113 /* P40 [q@\§äWX^ AiOüÍAN000Æ·é*/108 /* P40端子機能制御レジスタ アナログ入力AN000とする */ 114 109 sil_wrb_mem((uint8_t *)MPC_P40PFS_ADDR, 0x80); 115 /* P41 [q@\§äWX^ AiOüÍAN001Æ·é*/110 /* P41端子機能制御レジスタ アナログ入力AN001とする */ 116 111 sil_wrb_mem((uint8_t *)MPC_P41PFS_ADDR, 0x80); 117 /* P42 [q@\§äWX^ AiOüÍAN002Æ·é*/112 /* P42端子機能制御レジスタ アナログ入力AN002とする */ 118 113 sil_wrb_mem((uint8_t *)MPC_P42PFS_ADDR, 0x80); 119 /* P43 [q@\§äWX^ AiOüÍAN003Æ·é*/114 /* P43端子機能制御レジスタ アナログ入力AN003とする */ 120 115 sil_wrb_mem((uint8_t *)MPC_P43PFS_ADDR, 0x80); 121 /* P44 [q@\§äWX^ AiOüÍAN004Æ·é*/116 /* P44端子機能制御レジスタ アナログ入力AN004とする */ 122 117 sil_wrb_mem((uint8_t *)MPC_P44PFS_ADDR, 0x80); 123 /* P45 [q@\§äWX^ AiOüÍAN005Æ·é*/118 /* P45端子機能制御レジスタ アナログ入力AN005とする */ 124 119 sil_wrb_mem((uint8_t *)MPC_P45PFS_ADDR, 0x80); 125 /* P46 [q@\§äWX^ AiOüÍAN006Æ·é*/120 /* P46端子機能制御レジスタ アナログ入力AN006とする */ 126 121 sil_wrb_mem((uint8_t *)MPC_P46PFS_ADDR, 0x80); 127 /* P47 [q@\§äWX^ AiOüÍAN007Æ·é*/122 /* P47端子機能制御レジスタ アナログ入力AN007とする */ 128 123 sil_wrb_mem((uint8_t *)MPC_P47PFS_ADDR, 0x80); 129 124 130 /* «ÝveNgWX^ÌÝè «ÝðÖ~*/125 /* 書き込みプロテクトレジスタの設定 書き込みを禁止 */ 131 126 sil_wrb_mem((uint8_t *)MPC_PWPR_ADDR, 0x80); 132 127 } … … 134 129 135 130 /* 136 * ^[QbgVXeÌI¹[`131 * ターゲットシステムの終了ルーチン 137 132 */ 138 133 void … … 140 135 { 141 136 /* 142 * vZbT˶ÌI¹137 * プロセッサ依存の終了処理 143 138 */ 144 139 prc_terminate(); … … 149 144 150 145 /* 151 * VXeOÌáxoÍ̽ß̶oÍ146 * システムログの低レベル出力のための文字出力 152 147 */ 153 148 void -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 12 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 13 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 14 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 15 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 16 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 17 * XR[hÉÜÜêÄ¢é±ÆD 18 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 19 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 20 gip 21 * Ò}j 22 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 23 * ̳ÛØKèðfÚ·é±ÆD 24 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 25 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 26 * ÆD 27 * (a) Äzzɺ¤hL 28 gipÒ}j 29 AÈÇjÉCãLÌ 30 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 31 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 32 * ñ·é±ÆD 33 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 34 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 35 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 36 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 37 * ÆÓ·é±ÆD 12 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 * スコード中に含まれていること. 18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 * の無保証規定を掲載すること. 22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 * と. 25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 * 報告すること. 29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 * 免責すること. 38 34 * 39 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨40 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI41 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF42 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»43 * ÌÓCðíÈ¢D35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 44 40 * 45 41 * @(#) $Id$ … … 47 43 48 44 /* 49 * ^[Qbg˶W 50 [iGR-SAKURApj 45 * ターゲット依存モジュール(GR-SAKURA用) 51 46 * 52 * J[lÌ^[Qbg˶ÌCN[ht@CDkernel_impl.hÌ^[53 * Qbg˶ÌÊut¯ÆÈéD47 * カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター 48 * ゲット依存部の位置付けとなる. 54 49 */ 55 50 … … 58 53 59 54 /* 60 * ^[QbgVXeÌn[hEFA¹Ìè`55 * ターゲットシステムのハードウェア資源の定義 61 56 */ 62 57 #include "grsakura.h" … … 64 59 65 60 /* 66 * ftHgÌñ^XNReLXgpÌX^bNÌæÌè`61 * デフォルトの非タスクコンテキスト用のスタック領域の定義 67 62 * 68 * X^bNTCYðÏX·éêÍ, sectrx.incÌ_DEFAULT_ISTACK69 * xÌÊuÉ é.blkb½ßÌTCYÆ, ȺDEFAULT_ISTKSZÌ70 * TCYðí¹Ä¯¶lÉÏX·é±Æ.63 * スタックサイズを変更する場合は, sectrx.incの_DEFAULT_ISTACK 64 * ラベルの位置にある.blkb命令のサイズと, 以下DEFAULT_ISTKSZの 65 * サイズを合わせて同じ値に変更すること. 71 66 */ 72 67 #ifndef _MSC_VER … … 79 74 80 75 /* 81 * ^[Qbg˶̶oÍÉgp·é|[gÌè`76 * ターゲット依存の文字出力に使用するポートの定義 82 77 */ 83 78 #define TARGET_PUTC_PORTID ( 1 ) … … 87 82 88 83 /* 89 * ^[QbgVXe˶Ìú»84 * ターゲットシステム依存の初期化 90 85 */ 91 86 extern void target_initialize( void ); 92 87 93 88 /* 94 * ^[QbgVXeÌI¹89 * ターゲットシステムの終了 95 90 * 96 * VXeðI¹·éÉg¤D91 * システムを終了する時に使う. 97 92 */ 98 93 extern void target_exit( void ) NoReturn; … … 102 97 103 98 /* 104 * vZbT˶W 105 [iRX630pj 99 * プロセッサ依存モジュール(RX630用) 106 100 */ 107 101 #ifdef __RX … … 112 106 113 107 /* 114 * g[XOÉÖ·éÝè108 * トレースログに関する設定 115 109 */ 116 110 #define TCNT_TRACE_BUFFER ( 32 ) 117 111 118 112 /* 119 * g[XOoÍ·éÓÌIð120 * OoÍ·éÓð1Åè`121 * Oo͵ȢÓð0Åè`113 * トレースログ出力する箇所の選択 114 * ログ出力する箇所を1で定義 115 * ログ出力しない箇所を0で定義 122 116 */ 123 117 #ifdef TOPPERS_ENABLE_TRACE -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_def.csv
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_kernel.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 12 12 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 13 13 * 14 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 15 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 16 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 17 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 18 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 19 * XR[hÉÜÜêÄ¢é±ÆD 20 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 21 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 22 gip 23 * Ò}j 24 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 25 * ̳ÛØKèðfÚ·é±ÆD 26 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 27 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 28 * ÆD 29 * (a) Äzzɺ¤hL 30 gipÒ}j 31 AÈÇjÉCãLÌ 32 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 33 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 34 * ñ·é±ÆD 35 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 36 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 37 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 38 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 39 * ÆÓ·é±ÆD 14 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 15 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 16 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 19 * スコード中に含まれていること. 20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 21 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 22 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 23 * の無保証規定を掲載すること. 24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 25 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 26 * と. 27 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 28 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 29 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 30 * 報告すること. 31 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 32 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 33 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 34 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 35 * 免責すること. 40 36 * 41 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨42 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI43 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF44 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»45 * ÌÓCðíÈ¢D37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 39 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 40 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 41 * の責任を負わない. 46 42 * 47 43 * @(#) $Id$ … … 49 45 50 46 /* 51 * J[lÌ^[Qbg˶è`iGR-SAKURApj47 * カーネルのターゲット依存定義(GR-SAKURA用) 52 48 */ 53 49 54 50 /* 55 * ±ÌCN[ht@CÍCkernel.hÅCN[h³êéD¼Ìt@56 * C©ç¼ÚCN[h·é±ÆÍÈ¢D±Ìt@CðCN[h57 * ·éOÉCt_stddef.hªCN[h³êéÌÅC»êçÉ˶µÄàæ58 * ¢D51 * このインクルードファイルは,kernel.hでインクルードされる.他のファ 52 * イルから直接インクルードすることはない.このファイルをインクルード 53 * する前に,t_stddef.hがインクルードされるので,それらに依存してもよ 54 * い. 59 55 */ 60 56 … … 64 60 65 61 /* 66 * vZbTŤÊÈè`62 * プロセッサで共通な定義 67 63 */ 68 64 #ifdef __RX … … 73 69 74 70 /* 75 * T|[g·é@\Ìè`71 * サポートする機能の定義 76 72 */ 77 #define TOPPERS_TARGET_SUPPORT_GET_UTM /* get_utm ðT|[g·é*/73 #define TOPPERS_TARGET_SUPPORT_GET_UTM /* get_utmをサポートする */ 78 74 79 75 80 76 /* 81 * ^CeBbNÌè`77 * タイムティックの定義 82 78 */ 83 #define TIC_NUME ( 1U ) /* ^CeBbNÌüú̪q*/84 #define TIC_DENO ( 1U ) /* ^CeBbNÌüú̪ê*/79 #define TIC_NUME ( 1U ) /* タイムティックの周期の分子 */ 80 #define TIC_DENO ( 1U ) /* タイムティックの周期の分母 */ 85 81 86 82 #endif /* TOPPERS_TARGET_KERNEL_H */ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_offset.tf
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 $ 2 $ ItZbgt@C¶¬pev[gt@CiGR-SAKURApj2 $ オフセットファイル生成用テンプレートファイル(GR-SAKURA用) 3 3 $ 4 4 5 5 $ 6 $ Wev[gt@CÌCN[h6 $ 標準テンプレートファイルのインクルード 7 7 $ 8 8 $INCLUDE "kernel/genoffset.tf"$ 9 9 10 10 $ 11 $ RA˶ev[gÌCN[hiRX630pj11 $ コア依存テンプレートのインクルード(RX630用) 12 12 $ 13 13 $INCLUDE"../../arch/rx630_ccrx/prc_offset.tf"$ -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_rename.def
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
-
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_rename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_serial.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 13 13 * Copyright (C) 2013 by Mitsuhiro Matsuura 14 14 * 15 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 16 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 17 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 18 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 19 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 20 * XR[hÉÜÜêÄ¢é±ÆD 21 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 22 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 23 gip 24 * Ò}j 25 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 26 * ̳ÛØKèðfÚ·é±ÆD 27 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 28 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 29 * ÆD 30 * (a) Äzzɺ¤hL 31 gipÒ}j 32 AÈÇjÉCãLÌ 33 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 34 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 35 * ñ·é±ÆD 36 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 37 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 38 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 39 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 40 * ÆÓ·é±ÆD 15 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 16 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 17 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 20 * スコード中に含まれていること. 21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 22 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 23 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 24 * の無保証規定を掲載すること. 25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 26 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 27 * と. 28 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 29 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 30 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 31 * 報告すること. 32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 33 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 34 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 35 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 36 * 免責すること. 41 37 * 42 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨43 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI44 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF45 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»46 * ÌÓCðíÈ¢D38 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 40 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 41 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 42 * の責任を負わない. 47 43 * 48 44 * @(#) $Id$ … … 50 46 51 47 /* 52 * RX630 UARTpVAI/OW 53 [ 48 * RX630 UART用シリアルI/Oモジュール 54 49 */ 55 50 #include "kernel_impl.h" … … 58 53 59 54 /* 60 * SIO hCoÌú»55 * SIOドライバの初期化 61 56 */ 62 57 void … … 67 62 68 63 /* 69 * VAI/O|[gÌI[v64 * シリアルI/Oポートのオープン 70 65 */ 71 66 SIOPCB * … … 77 72 78 73 /* 79 * VAI/OÝð}XN·éD80 * (dis_int ÖÍA"\kernel\interrupt.c"ÉLq)74 * シリアルI/O割込みをマスクする. 75 * (dis_int関数は、"\kernel\interrupt.c"に記述) 81 76 */ 82 77 p_siopcb = rx630_uart_get_siopcb(siopid); … … 92 87 93 88 /* 94 * VAI/OÝð}XNð·éD95 * (ena_int ÖÍA"\kernel\interrupt.c"ÉLq)89 * シリアルI/O割込みをマスク解除する. 90 * (ena_int関数は、"\kernel\interrupt.c"に記述) 96 91 */ 97 92 ercd = ena_int(intno_sio_tx); … … 104 99 105 100 /* 106 * VAI/O|[gÌN[Y101 * シリアルI/Oポートのクローズ 107 102 */ 108 103 void … … 113 108 114 109 /* 115 * foCX˶ÌN[YD110 * デバイス依存のクローズ処理. 116 111 */ 117 112 rx630_uart_cls_por(p_siopcb); 118 113 119 114 /* 120 * VAI/OÝð}XN·éD115 * シリアルI/O割込みをマスクする. 121 116 */ 122 117 intno_sio_tx = rx630_uart_intno_tx(p_siopcb); … … 129 124 130 125 /* 131 * SIO ÌÝnh126 * SIOの割込みハンドラ 132 127 */ 133 128 void sio_tx_isr(intptr_t exinf) … … 137 132 138 133 /* 139 * SIO ÌÝnh134 * SIOの割込みハンドラ 140 135 */ 141 136 void sio_rx_isr(intptr_t exinf) … … 145 140 146 141 /* 147 * VAI/O|[gÖ̶M142 * シリアルI/Oポートへの文字送信 148 143 */ 149 144 bool_t … … 154 149 155 150 /* 156 * VAI/O|[g©ç̶óM151 * シリアルI/Oポートからの文字受信 157 152 */ 158 153 int_t … … 163 158 164 159 /* 165 * VAI/O|[g©çÌR[obNÌÂ160 * シリアルI/Oポートからのコールバックの許可 166 161 */ 167 162 void … … 172 167 173 168 /* 174 * VAI/O|[g©çÌR[obNÌÖ~169 * シリアルI/Oポートからのコールバックの禁止 175 170 */ 176 171 void … … 181 176 182 177 /* 183 * VAI/O|[g©çÌMÂ\R[obN178 * シリアルI/Oポートからの送信可能コールバック 184 179 */ 185 180 void 186 181 rx630_uart_irdy_snd(intptr_t exinf) 187 182 { 188 /* ¤Êisyssvc\serial.cjÉ ésio_irdy_sndÖðÄÑoµ*/183 /* 共通部(syssvc\serial.c)にあるsio_irdy_snd関数を呼び出し*/ 189 184 sio_irdy_snd(exinf); 190 185 } 191 186 192 187 /* 193 * VAI/O|[g©çÌóMÊmR[obN188 * シリアルI/Oポートからの受信通知コールバック 194 189 */ 195 190 void 196 191 rx630_uart_irdy_rcv(intptr_t exinf) 197 192 { 198 /* ¤Êisyssvc\serial.cjÉ ésio_irdy_rcvÖðÄÑoµ*/193 /* 共通部(syssvc\serial.c)にあるsio_irdy_rcv関数を呼び出し*/ 199 194 sio_irdy_rcv(exinf); 200 195 } -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_serial.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * SIOhCoiGR-SAKURApjÌRtBM 3 [Vt@C 2 * SIOドライバ(GR-SAKURA用)のコンフィギュレーションファイル 4 3 */ 5 4 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_serial.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 13 13 * Copyright (C) 2013 by Mitsuhiro Matsuura 14 14 * 15 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 16 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 17 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 18 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 19 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 20 * XR[hÉÜÜêÄ¢é±ÆD 21 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 22 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 23 gip 24 * Ò}j 25 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 26 * ̳ÛØKèðfÚ·é±ÆD 27 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 28 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 29 * ÆD 30 * (a) Äzzɺ¤hL 31 gipÒ}j 32 AÈÇjÉCãLÌ 33 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 34 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 35 * ñ·é±ÆD 36 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 37 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 38 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 39 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 40 * ÆÓ·é±ÆD 15 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 16 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 17 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 20 * スコード中に含まれていること. 21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 22 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 23 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 24 * の無保証規定を掲載すること. 25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 26 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 27 * と. 28 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 29 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 30 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 31 * 報告すること. 32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 33 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 34 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 35 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 36 * 免責すること. 41 37 * 42 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨43 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI44 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF45 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»46 * ÌÓCðíÈ¢D38 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 40 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 41 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 42 * の責任を負わない. 47 43 * 48 44 * @(#) $Id$ … … 50 46 51 47 /* 52 * VAI/OfoCXiSIOjhCoiGR-SAKURApj48 * シリアルI/Oデバイス(SIO)ドライバ(GR-SAKURA用) 53 49 */ 54 50 … … 60 56 61 57 /* 62 * SIO ÌÝnhÌxN^Ô58 * SIOの割込みハンドラのベクタ番号 63 59 */ 64 #define INHNO_SIO_TX INT_SCI0_TEI /* ÝnhÔ*/65 #define INTNO_SIO_TX INT_SCI0_TEI /* ÝÔ*/66 #define INHNO_SIO_RX INT_SCI0_RXI /* ÝnhÔ*/67 #define INTNO_SIO_RX INT_SCI0_RXI /* ÝÔ*/68 #define INTPRI_SIO -4 /* ÝDæx*/69 #define INTATR_SIO (TA_NULL) /* Ý®«*/60 #define INHNO_SIO_TX INT_SCI0_TEI /* 割込みハンドラ番号 */ 61 #define INTNO_SIO_TX INT_SCI0_TEI /* 割込み番号 */ 62 #define INHNO_SIO_RX INT_SCI0_RXI /* 割込みハンドラ番号 */ 63 #define INTNO_SIO_RX INT_SCI0_RXI /* 割込み番号 */ 64 #define INTPRI_SIO -4 /* 割込み優先度 */ 65 #define INTATR_SIO (TA_NULL) /* 割込み属性 */ 70 66 71 67 #ifndef TOPPERS_MACRO_ONLY … … 73 69 74 70 /* 75 * SIO hCoÌú»71 * SIOドライバの初期化 76 72 */ 77 73 extern void sio_initialize(intptr_t exinf); 78 74 79 75 /* 80 * VAI/O|[gÌI[v76 * シリアルI/Oポートのオープン 81 77 */ 82 78 extern SIOPCB *sio_opn_por(ID siopid, intptr_t exinf); 83 79 84 80 /* 85 * VAI/O|[gÌN[Y81 * シリアルI/Oポートのクローズ 86 82 */ 87 83 extern void sio_cls_por(SIOPCB *p_siopcb); 88 84 89 85 /* 90 * SIO ÌÝnh86 * SIOの割込みハンドラ 91 87 */ 92 88 extern void sio_tx_isr(intptr_t exinf); … … 94 90 95 91 /* 96 * VAI/O|[gÖ̶M92 * シリアルI/Oポートへの文字送信 97 93 */ 98 94 extern bool_t sio_snd_chr(SIOPCB *siopcb, char c); 99 95 100 96 /* 101 * VAI/O|[g©ç̶óM97 * シリアルI/Oポートからの文字受信 102 98 */ 103 99 extern int_t sio_rcv_chr(SIOPCB *siopcb); 104 100 105 101 /* 106 * VAI/O|[g©çÌR[obNÌÂ102 * シリアルI/Oポートからのコールバックの許可 107 103 */ 108 104 extern void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn); 109 105 110 106 /* 111 * VAI/O|[g©çÌR[obNÌÖ~107 * シリアルI/Oポートからのコールバックの禁止 112 108 */ 113 109 extern void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn); 114 110 115 111 /* 116 * VAI/O|[g©çÌMÂ\R[obN112 * シリアルI/Oポートからの送信可能コールバック 117 113 */ 118 114 extern void sio_irdy_snd(intptr_t exinf); 119 115 120 116 /* 121 * VAI/O|[g©çÌóMÊmR[obN117 * シリアルI/Oポートからの受信通知コールバック 122 118 */ 123 119 extern void sio_irdy_rcv(intptr_t exinf); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_sil.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 7 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 8 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 9 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 10 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 11 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 12 * XR[hÉÜÜêÄ¢é±ÆD 13 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 14 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 15 gip 16 * Ò}j 17 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 18 * ̳ÛØKèðfÚ·é±ÆD 19 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 20 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 21 * ÆD 22 * (a) Äzzɺ¤hL 23 gipÒ}j 24 AÈÇjÉCãLÌ 25 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 26 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 27 * ñ·é±ÆD 28 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 29 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 30 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 31 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 32 * ÆÓ·é±ÆD 7 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 * スコード中に含まれていること. 13 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 * の無保証規定を掲載すること. 17 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 * と. 20 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 * 報告すること. 24 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 * 免責すること. 33 29 * 34 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨35 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI36 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF37 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»38 * ÌÓCðíÈ¢D30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 39 35 * 40 36 * @(#) $Id$ … … 42 38 43 39 /* 44 * sil.h Ì^[Qbg˶iGR-SAKURApj40 * sil.hのターゲット依存部(GR-SAKURA用) 45 41 * 46 * ±ÌCN[ht@CÍCsil.hÌæªÅCN[h³êéD¼Ìt@47 * C©çͼÚCN[h·é±ÆÍÈ¢D±Ìt@CðCN[48 * h·éOÉCt_stddef.hªCN[h³êéÌÅC»êçÉ˶µÄà49 * æ¢D42 * このインクルードファイルは,sil.hの先頭でインクルードされる.他のファ 43 * イルからは直接インクルードすることはない.このファイルをインクルー 44 * ドする前に,t_stddef.hがインクルードされるので,それらに依存しても 45 * よい. 50 46 */ 51 47 … … 54 50 55 51 /* 56 * ÷Ôҿ̽ßÌè`52 * 微少時間待ちのための定義 57 53 */ 58 54 #define SIL_DLY_TIM1 69 … … 60 56 61 57 /* 62 * vZbTŤÊÈè`58 * プロセッサで共通な定義 63 59 */ 64 60 #ifdef __RX -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 11 11 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 12 12 * 13 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 14 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 15 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 16 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 17 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 18 * XR[hÉÜÜêÄ¢é±ÆD 19 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 20 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 21 gip 22 * Ò}j 23 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 24 * ̳ÛØKèðfÚ·é±ÆD 25 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 26 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 27 * ÆD 28 * (a) Äzzɺ¤hL 29 gipÒ}j 30 AÈÇjÉCãLÌ 31 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 32 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 33 * ñ·é±ÆD 34 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 35 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 36 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 37 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 38 * ÆÓ·é±ÆD 13 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 14 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 15 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 18 * スコード中に含まれていること. 19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 22 * の無保証規定を掲載すること. 23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 25 * と. 26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 27 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 29 * 報告すること. 30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 32 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 33 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 34 * 免責すること. 39 35 * 40 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨41 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI42 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF43 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»44 * ÌÓCðíÈ¢D36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 * の責任を負わない. 45 41 * 46 42 * @(#) $Id$ … … 48 44 49 45 /* 50 * t_stddef.h Ì^[Qbg˶iGR-SAKURApj46 * t_stddef.hのターゲット依存部(GR-SAKURA用) 51 47 * 52 * ±ÌCN[ht@CÍCt_stddef.hÌæªÅCN[h³êéD53 * ¼Ìt@C©çͼÚCN[h·é±ÆÍÈ¢D¼ÌCN[h54 * t@CÉæ§Áijêé½ßC¼ÌCN[ht@CÉ˶µ55 * ÄÍÈçÈ¢D48 * このインクルードファイルは,t_stddef.hの先頭でインクルードされる. 49 * 他のファイルからは直接インクルードすることはない.他のインクルード 50 * ファイルに先立って処理されるため,他のインクルードファイルに依存し 51 * てはならない. 56 52 */ 57 53 … … 60 56 61 57 /* 62 * ^[Qbgð¯Ê·é½ßÌ}NÌè`58 * ターゲットを識別するためのマクロの定義 63 59 */ 64 #define TOPPERS_GRSAKURA /* VXeªÌ*/60 #define TOPPERS_GRSAKURA /* システム略称 */ 65 61 66 62 67 63 #ifdef __RX 68 64 /* 69 * J«ŤÊÈè`65 * 開発環境で共通な定義 70 66 */ 71 67 /*#define TOPPERS_STDINT_TYPE1*/ … … 74 70 75 71 /* 76 * vZbTŤÊÈè`72 * プロセッサで共通な定義 77 73 */ 78 74 #include "rx630_ccrx/prc_stddef.h" 79 75 #else /* __RX */ 80 76 /* 81 * J«ŤÊÈè`77 * 開発環境で共通な定義 82 78 */ 83 79 #include <stdint.h> … … 85 81 86 82 /* 87 * vZbTŤÊÈè`83 * プロセッサで共通な定義 88 84 */ 89 85 #include "rx630_msvc/prc_stddef.h" … … 93 89 94 90 /* 95 * AT[V̸sÌÀsf91 * アサーションの失敗時の実行中断処理 96 92 */ 97 93 #ifndef TOPPERS_MACRO_ONLY -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_support.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 7 7 8 8 /* 9 * ^[QbgVXe˶W 10 [iAP-RX62N-0Apj 9 * ターゲットシステム依存モジュール(AP-RX62N-0A用) 11 10 */ 12 11 … … 17 16 { 18 17 /* 19 * ®ì[hÝè18 * 動作モード設定 20 19 * 21 * ®ì[hÍ{[hãÌ[qÉæÁÄè³êé½ß,22 * ±±ÅÍÁÊÝèµÈ¢.23 * ½¾µ, gGfBA/VO`bv[h24 * Å é±ÆðOñÆ·é.20 * 動作モードはボード上の端子によって決定されるため, 21 * ここでは特別設定しない. 22 * ただし, リトルエンディアン/シングルチップモード 23 * であることを前提とする. 25 24 * 26 * ܽZbgã, à ROMFLø, à RAMFLø, OoXF³ø27 * Å é.25 * またリセット後, 内蔵ROM:有効, 内蔵RAM:有効, 外部バス:無効 26 * である. 28 27 */ 29 28 30 29 /* 31 * NbNÝè30 * クロック設定 32 31 * 33 * üÍF12MHz 34 * PLLñHF12 x 8 = 96MHz 35 * VXeNbNF96MHz 36 * üÓW 37 [NbNF48MHz 38 * OoXNbNF96MHz 39 * Æ·é. 32 * 入力:12MHz 33 * PLL回路:12 x 8 = 96MHz 34 * システムクロック:96MHz 35 * 周辺モジュールクロック:48MHz 36 * 外部バスクロック:96MHz 37 * とする. 40 38 */ 41 39 sil_wrb_mem(PORT3_PDR_ADDR, … … 50 48 sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa503); 51 49 52 /* CNbNUí§U*/50 /* メインクロック発振器強制発振 */ 53 51 while((sil_reb_mem(SYSTEM_MOFCR_ADDR) & SYSTEM_MOFCR_MOFXIN) == 0) 54 52 sil_wrb_mem(SYSTEM_MOFCR_ADDR, 55 53 sil_reb_mem(SYSTEM_MOFCR_ADDR) | SYSTEM_MOFCR_MOFXIN); 56 54 57 /* CNbNUí®ì*/55 /* メインクロック発振器動作 */ 58 56 while((sil_reb_mem(SYSTEM_MOSCCR_ADDR) & SYSTEM_MOSCCR_MOSTP) != 0) 59 57 sil_wrb_mem(SYSTEM_MOSCCR_ADDR, … … 69 67 sil_wrw_mem(SYSTEM_SCKCR_ADDR, 0x21021211); 70 68 71 /* PLL ñHIð*/69 /* PLL回路選択 */ 72 70 sil_wrh_mem(SYSTEM_SCKCR3_ADDR, 73 71 (sil_reh_mem(SYSTEM_SCKCR3_ADDR) & ~SYSTEM_SCKCR3_CKSEL_MASK) … … 75 73 76 74 /* 77 * W 78 [Xgbv 75 * モジュールストップ 79 76 * 80 * Zbgã, ®ìµÄ¢éà üÓW 81 [ÍDMAC, DTC, 82 * à RAMÌÝÅ é. 83 * »êÈOÌà üÓW 84 [ÉÖµÄÍgp·é¤Å 85 * Ýè·é±Æ. 77 * リセット後, 動作している内蔵周辺モジュールはDMAC, DTC, 78 * 内蔵RAMのみである. 79 * それ以外の内蔵周辺モジュールに関しては使用する側で 80 * 設定すること. 86 81 */ 87 82 sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa500); … … 91 86 { 92 87 /* 93 * {RpCÅÍweak definitionÌ@\ª³¢½ß,94 * ÁÉKvÈÍÈ¢ª, K¸ÄÑo·±ÆÆ·é.88 * 本コンパイラではweak definitionの機能が無いため, 89 * 特に必要な処理はないが, 必ず呼び出すこととする. 95 90 */ 96 91 } -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_support.src
-
Property svn:mime-type
set to
text/plain; charset=SHIFT_JIS
r164 r167 14 14 ;* Copyright (C) 2013 by Mitsuhiro Matsuura 15 15 ;* 16 ;* ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 17 ;* Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 18 ;* ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 19 ;* (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 20 ;* \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 21 ;* XR[hÉÜÜêÄ¢é±ÆD 22 ;* (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 23 ;* pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 24 gip 25 ;* Ò}j 26 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 27 ;* ̳ÛØKèðfÚ·é±ÆD 28 ;* (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 29 ;* pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 30 ;* ÆD 31 ;* (a) Äzzɺ¤hL 32 gipÒ}j 33 AÈÇjÉCãLÌ 34 ;* ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 35 ;* (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 36 ;* ñ·é±ÆD 37 ;* (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 38 ;* Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 39 ;* ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 40 ;* RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 41 ;* ÆÓ·é±ÆD 16 ;* 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 17 ;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 18 ;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 19 ;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 20 ;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 21 ;* スコード中に含まれていること. 22 ;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 23 ;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 24 ;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 25 ;* の無保証規定を掲載すること. 26 ;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 27 ;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 28 ;* と. 29 ;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 30 ;* 作権表示,この利用条件および下記の無保証規定を掲載すること. 31 ;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 32 ;* 報告すること. 33 ;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 34 ;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 35 ;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 36 ;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 37 ;* 免責すること. 42 38 ;* 43 ;* {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨44 ;* æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI45 ;* ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF46 ;* AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»47 ;* ÌÓCðíÈ¢D39 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 40 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 41 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 42 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 43 ;* の責任を負わない. 48 44 ;* 49 45 ;* @(#) $Id: target_support.src 536 2014-10-09 23:11:40Z coas-nagasima $ … … 59 55 _hardware_init_hook: 60 56 ; 61 ; ®ì[hÝè57 ; 動作モード設定 62 58 ; 63 ; ®ì[hÍ{[hãÌ[qÉæÁÄè³êé½ß,64 ; ±±ÅÍÁÊÝèµÈ¢.65 ; ½¾µ, gGfBA/VO`bv[h66 ; Å é±ÆðOñÆ·é.59 ; 動作モードはボード上の端子によって決定されるため, 60 ; ここでは特別設定しない. 61 ; ただし, リトルエンディアン/シングルチップモード 62 ; であることを前提とする. 67 63 ; 68 ; ܽZbgã, à ROMFLø, à RAMFLø, OoXF³ø69 ; Å é.64 ; またリセット後, 内蔵ROM:有効, 内蔵RAM:有効, 外部バス:無効 65 ; である. 70 66 ; 71 67 72 68 ; 73 ; NbNÝè69 ; クロック設定 74 70 ; 75 ; üÍF12MHz 76 ; PLLñHF12 x 8 = 96MHz 77 ; VXeNbNF96MHz 78 ; üÓW 79 [NbNF48MHz 80 ; OoXNbNF96MHz 81 ; Æ·é. 71 ; 入力:12MHz 72 ; PLL回路:12 x 8 = 96MHz 73 ; システムクロック:96MHz 74 ; 周辺モジュールクロック:48MHz 75 ; 外部バスクロック:96MHz 76 ; とする. 82 77 ; 83 78 … … 109 104 ;while(SYSTEM.MOFCR.BIT.MOFXIN == 0) 110 105 BRA.B _hardware_init_hook_01 111 ;SYSTEM.MOFCR.BIT.MOFXIN = 1; // CNbNUí§U106 ;SYSTEM.MOFCR.BIT.MOFXIN = 1; // メインクロック発振器強制発振 112 107 _hardware_init_hook_00: 113 108 MOV.L #080000H,R11 … … 125 120 ;while(SYSTEM.MOSCCR.BIT.MOSTP == 1) 126 121 BRA.B _hardware_init_hook_11 127 ;SYSTEM.MOSCCR.BIT.MOSTP = 0; // CNbNUí®ì122 ;SYSTEM.MOSCCR.BIT.MOSTP = 0; // メインクロック発振器動作 128 123 _hardware_init_hook_10: 129 124 MOV.L #080000H,R11 … … 155 150 MOV.L #21021211H,20H[R10] 156 151 ; 157 ;SYSTEM.SCKCR3.BIT.CKSEL = 4; // PLL ñHIð152 ;SYSTEM.SCKCR3.BIT.CKSEL = 4; // PLL回路選択 158 153 MOV.L #080000H,R10 159 154 MOV.W 26H[R10],R11 … … 163 158 164 159 ; 165 ; W 166 [Xgbv 160 ; モジュールストップ 167 161 ; 168 ; Zbgã, ®ìµÄ¢éà üÓW 169 [ÍDMAC, DTC, 170 ; à RAMÌÝÅ é. 171 ; »êÈOÌà üÓW 172 [ÉÖµÄÍgp·é¤Å 173 ; Ýè·é±Æ. 162 ; リセット後, 動作している内蔵周辺モジュールはDMAC, DTC, 163 ; 内蔵RAMのみである. 164 ; それ以外の内蔵周辺モジュールに関しては使用する側で 165 ; 設定すること. 174 166 ; 175 167 … … 182 174 _software_init_hook: 183 175 ; 184 ; {RpCÅÍweak definitionÌ@\ª³¢½ß,185 ; ÁÉKvÈÍÈ¢ª, K¸ÄÑo·±ÆÆ·é.176 ; 本コンパイラではweak definitionの機能が無いため, 177 ; 特に必要な処理はないが, 必ず呼び出すこととする. 186 178 ; 187 179 rts -
Property svn:mime-type
set to
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_syssvc.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 12 12 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 13 13 * 14 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 15 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 16 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 17 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 18 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 19 * XR[hÉÜÜêÄ¢é±ÆD 20 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 21 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 22 gip 23 * Ò}j 24 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 25 * ̳ÛØKèðfÚ·é±ÆD 26 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 27 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 28 * ÆD 29 * (a) Äzzɺ¤hL 30 gipÒ}j 31 AÈÇjÉCãLÌ 32 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 33 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 34 * ñ·é±ÆD 35 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 36 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 37 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 38 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 39 * ÆÓ·é±ÆD 14 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 15 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 16 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 19 * スコード中に含まれていること. 20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 21 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 22 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 23 * の無保証規定を掲載すること. 24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 25 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 26 * と. 27 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 28 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 29 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 30 * 報告すること. 31 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 32 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 33 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 34 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 35 * 免責すること. 40 36 * 41 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨42 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI43 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF44 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»45 * ÌÓCðíÈ¢D37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 39 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 40 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 41 * の責任を負わない. 46 42 * 47 43 * @(#) $Id$ … … 49 45 50 46 /* 51 * VXeT[rXÌ^[Qbg˶iGR-SAKURApj47 * システムサービスのターゲット依存部(GR-SAKURA用) 52 48 * 53 * VXeT[rXÌ^[Qbg˶ÌCN[ht@CD±Ìt@54 * CÌàeÍCR|[lgLqt@CÉLq³êC±Ìt@CÍ55 * ³Èé©ÝD49 * システムサービスのターゲット依存部のインクルードファイル.このファ 50 * イルの内容は,コンポーネント記述ファイルに記述され,このファイルは 51 * 無くなる見込み. 56 52 */ 57 53 … … 61 57 62 58 /* 63 * vZbT˶Ìè`59 * プロセッサ依存の定義 64 60 */ 65 61 #ifdef __RX … … 70 66 71 67 /* 72 * g[XOÉÖ·éÝè68 * トレースログに関する設定 73 69 */ 74 70 #ifdef TOPPERS_ENABLE_TRACE … … 78 74 79 75 /* 80 * {[h˶îñÌÇÝÝ76 * ボード依存情報の読み込み 81 77 */ 82 78 #include "grsakura.h" … … 84 80 85 81 /* 86 * N®bZ[WÌ^[QbgVXe¼82 * 起動メッセージのターゲットシステム名 87 83 */ 88 84 #define TARGET_NAME "GRSAKURA" … … 90 86 91 87 /* 92 * VXeOÌáxoÍ̽ß̶oÍ88 * システムログの低レベル出力のための文字出力 93 89 * 94 * ^[Qbg˶Ìû@ÅC¶cð\¦/oÍ/Û¶·éD90 * ターゲット依存の方法で,文字cを表示/出力/保存する. 95 91 */ 96 92 extern void target_fput_log( char c ); … … 98 94 99 95 /* 100 * N®bZ[WÉ^[Qbg˶Ìì \¦ð101 * ÇÁ·é½ßÌ}ND96 * 起動メッセージにターゲット依存部の著作権表示を 97 * 追加するためのマクロ. 102 98 */ 103 99 #ifdef PRC_COPYRIGHT … … 107 103 108 104 /* 109 * VA|[gÌè`105 * シリアルポート数の定義 110 106 */ 111 107 #define TNUM_PORT UINT_C( 2 ) 112 108 113 109 /* 114 * gp·éVA|[gID110 * 使用するシリアルポートID 115 111 */ 116 112 #define SIO_PORTID UINT_C( 1 ) … … 121 117 122 118 /* 123 * VXeO^XNÖAÌèÌè`119 * システムログタスク関連の定数の定義 124 120 * 125 * ftHglÌÊèD121 * デフォルト値の通り. 126 122 */ 127 123 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_test.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 12 12 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 13 13 * 14 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 15 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 16 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 17 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 18 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 19 * XR[hÉÜÜêÄ¢é±ÆD 20 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 21 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 22 gip 23 * Ò}j 24 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 25 * ̳ÛØKèðfÚ·é±ÆD 26 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 27 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 28 * ÆD 29 * (a) Äzzɺ¤hL 30 gipÒ}j 31 AÈÇjÉCãLÌ 32 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 33 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 34 * ñ·é±ÆD 35 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 36 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 37 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 38 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 39 * ÆÓ·é±ÆD 14 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 15 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 16 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 19 * スコード中に含まれていること. 20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 21 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 22 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 23 * の無保証規定を掲載すること. 24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 25 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 26 * と. 27 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 28 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 29 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 30 * 報告すること. 31 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 32 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 33 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 34 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 35 * 免責すること. 40 36 * 41 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨42 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI43 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF44 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»45 * ÌÓCðíÈ¢D37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 39 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 40 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 41 * の責任を負わない. 46 42 * 47 43 * @(#) $Id$ … … 49 45 50 46 /* 51 * eXgvOÌ^[Qbg˶è`iGR-SAKURApj47 * テストプログラムのターゲット依存定義(GR-SAKURA用) 52 48 */ 53 49 … … 56 52 57 53 /* 58 * vZbTŤÊÈè`54 * プロセッサで共通な定義 59 55 */ 60 56 #ifdef __RX … … 65 61 66 62 /* 67 * ^XNÅgp·éVA|[gID63 * タスクで使用するシリアルポートID 68 64 */ 69 65 #define TASK_PORTID ( 1 ) -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_timer.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=SHIFT_JIS
r164 r167 13 13 * Copyright (C) 2013 by Mitsuhiro Matsuura 14 14 * 15 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 16 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 17 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 18 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 19 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 20 * XR[hÉÜÜêÄ¢é±ÆD 21 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 22 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 23 gip 24 * Ò}j 25 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 26 * ̳ÛØKèðfÚ·é±ÆD 27 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 28 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 29 * ÆD 30 * (a) Äzzɺ¤hL 31 gipÒ}j 32 AÈÇjÉCãLÌ 33 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 34 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 35 * ñ·é±ÆD 36 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 37 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 38 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 39 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 40 * ÆÓ·é±ÆD 15 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 16 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 17 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 20 * スコード中に含まれていること. 21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 22 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 23 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 24 * の無保証規定を掲載すること. 25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 26 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 27 * と. 28 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 29 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 30 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 31 * 報告すること. 32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 33 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 34 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 35 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 36 * 免責すること. 41 37 * 42 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨43 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI44 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF45 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»46 * ÌÓCðíÈ¢D38 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 40 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 41 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 42 * の責任を負わない. 47 43 * 48 44 * @(#) $Id$ … … 50 46 51 47 /* 52 * ^C}hCoiGR-SAKURApj48 * タイマドライバ(GR-SAKURA用) 53 49 */ 54 50 … … 59 55 60 56 /* 61 * ^C}Ìú»57 * タイマの初期化処理 62 58 */ 63 59 void … … 65 61 { 66 62 /* 67 * W 68 [Xgbv@\ÌÝè 63 * モジュールストップ機能の設定 69 64 */ 70 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* ÝÂ*/65 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502); /* 書込み許可 */ 71 66 sil_wrw_mem((uint32_t *)SYSTEM_MSTPCRA_ADDR, 72 67 sil_rew_mem((uint32_t *)SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA15_BIT); /* CMT0 */ 73 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* ÝÖ~*/68 sil_wrh_mem((uint16_t *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500); /* 書込み禁止 */ 74 69 75 70 /* 76 * ^C}â~71 * タイマ停止 77 72 */ 78 73 sil_wrh_mem((uint16_t *)CMT_CMSTR0_ADDR, … … 80 75 81 76 /* 82 * JEgAbvÉp¢çêéNbNÝè83 * PCLK/32 ðIð77 * カウントアップに用いられるクロック設定 78 * PCLK/32を選択 84 79 */ 85 80 sil_wrh_mem((uint16_t *)CMT0_CMCR_ADDR, CMT_PCLK_DIV_8); 86 81 87 82 /* 88 * RyA}b`^C}JE^Ýè83 * コンペアマッチタイマカウンタ設定 89 84 */ 90 85 sil_wrh_mem((uint16_t *)CMT0_CMCNT_ADDR, 0U); 91 86 92 87 /* 93 * RyA}b`^C}üúÝè88 * コンペアマッチタイマ周期設定 94 89 */ 95 90 sil_wrh_mem((uint16_t *)CMT0_CMCOR_ADDR, CMCOR_PERIOD); 96 91 97 92 /* 98 * RyA}b`^C}èÝvæÝèWX^iISELR28j93 * コンペアマッチタイマ割り込み要求先設定レジスタ(ISELR28) 99 94 */ 100 95 sil_wrb_mem((uint8_t *)ICU_ISELR028_ADDR, ICU_ISEL_CPU); 101 96 102 97 /* 103 * ^C}®ìJnOÌÝvðNA98 * タイマ動作開始前の割込み要求をクリア 104 99 */ 105 100 x_clear_int(INTNO_TIMER); 106 101 107 102 /* 108 * RyA}b`^C}èÝðÂ103 * コンペアマッチタイマ割り込みを許可 109 104 */ 110 105 sil_wrh_mem((uint16_t *)CMT0_CMCR_ADDR, … … 112 107 113 108 /* 114 * ^C}®ìJn109 * タイマ動作開始 115 110 */ 116 111 sil_wrh_mem((uint16_t *)CMT_CMSTR0_ADDR, … … 119 114 120 115 /* 121 * ^C}Ìâ~116 * タイマの停止処理 122 117 */ 123 118 void … … 125 120 { 126 121 /* 127 * ^C}â~122 * タイマ停止 128 123 */ 129 124 sil_wrh_mem((uint16_t *)CMT_CMSTR0_ADDR, … … 132 127 133 128 /* 134 * ^C}Ýnh129 * タイマ割込みハンドラ 135 130 */ 136 131 void target_timer_handler(void) … … 138 133 i_begin_int(INTNO_TIMER); 139 134 140 signal_time(); /* ^CeBbNÌ*/135 signal_time(); /* タイムティックの供給 */ 141 136 142 137 i_end_int(INTNO_TIMER); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_timer.cfg
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r164 r167 1 1 /* 2 * ^C}hCoiRX630pjÌRtBM 3 [Vt@C 2 * タイマドライバ(RX630用)のコンフィギュレーションファイル 4 3 */ 5 4 -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_timer.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 13 13 * Copyright (C) 2013 by Mitsuhiro Matsuura 14 14 * 15 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 16 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 17 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 18 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 19 * \¦C±Ìpð¨æѺL̳ÛØKèªC»ÌÜÜÌ`Å\[ 20 * XR[hÉÜÜêÄ¢é±ÆD 21 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 22 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 23 gip 24 * Ò}j 25 AÈÇjÉCãLÌì \¦C±Ìpð¨æѺL 26 * ̳ÛØKèðfÚ·é±ÆD 27 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 28 * pÅ«È¢`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 29 * ÆD 30 * (a) Äzzɺ¤hL 31 gipÒ}j 32 AÈÇjÉCãLÌ 33 * ì \¦C±Ìpð¨æѺL̳ÛØKèðfÚ·é±ÆD 34 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 35 * ñ·é±ÆD 36 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 37 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 38 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 39 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 40 * ÆÓ·é±ÆD 15 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 16 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 17 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 20 * スコード中に含まれていること. 21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 22 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 23 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 24 * の無保証規定を掲載すること. 25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 26 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 27 * と. 28 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 29 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 30 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 31 * 報告すること. 32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 33 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 34 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 35 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 36 * 免責すること. 41 37 * 42 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨43 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI44 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF45 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»46 * ÌÓCðíÈ¢D38 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 40 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 41 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 42 * の責任を負わない. 47 43 * 48 44 * @(#) $Id$ … … 50 46 51 47 /* 52 * ^C}hCoiGR-SAKURApj48 * タイマドライバ(GR-SAKURA用) 53 49 */ 54 50 … … 61 57 62 58 /* 63 * ^C}Ýnho^̽ßÌè59 * タイマ割込みハンドラ登録のための定数 64 60 */ 65 #define INHNO_TIMER INT_CMT0_CMI /* ÝnhÔ*/66 #define INTNO_TIMER INT_CMT0_CMI /* ÝÔ*/67 #define INTPRI_TIMER -5 /* ÝDæx*/68 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* Ý®«*/61 #define INHNO_TIMER INT_CMT0_CMI /* 割込みハンドラ番号 */ 62 #define INTNO_TIMER INT_CMT0_CMI /* 割込み番号 */ 63 #define INTPRI_TIMER -5 /* 割込み優先度 */ 64 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* 割込み属性 */ 69 65 70 66 #ifndef TOPPERS_MACRO_ONLY 71 67 72 68 /* 73 * ^C}lÌà\»Ì^69 * タイマ値の内部表現の型 74 70 */ 75 71 typedef uint16_t CLOCK; 76 72 77 73 /* 78 * ^C}lÌà\»Æ~bPÊÆÌÏ·74 * タイマ値の内部表現とミリ秒単位との変換 79 75 * 80 * 1ms Ì^C}[èÝðgp·éÌÅ»ÌNbNðè`·éD76 * 1msのタイマー割り込みを使用するのでそのクロックを定義する. 81 77 */ 82 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/ Åáªüä8 = 6MHz */78 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/最低分周比8 = 6MHz */ 83 79 #define TO_CLOCK(nume, deno) ((CLOCK)(TIMER_CLOCK * (nume) / (deno))) 84 80 #define TO_USEC(clock) ((SYSUTM)((clock) * 1000U / TIMER_CLOCK)) 85 81 86 82 /* 87 * ÝèÅ«éÅåÌ^C}üúiPÊÍà\»j83 * 設定できる最大のタイマ周期(単位は内部表現) 88 84 */ 89 85 #define MAX_CLOCK ((CLOCK) 0xFFFFU) 90 86 91 87 /* 92 * «\]¿pVXeðæèo·ÛÌÔÌ©ÏèliPÊÍà\»j88 * 性能評価用システム時刻を取り出す際の処理時間の見積り値(単位は内部表現) 93 89 */ 94 #define GET_TOLERANCE (100U) /* xêÌ©ÏèliPÊÍà\»j*/90 #define GET_TOLERANCE (100U) /* 処理遅れの見積り値(単位は内部表現)*/ 95 91 #define BEFORE_IREQ(clock) \ 96 92 ((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)) 97 93 98 94 /* 99 * RyA}b`^C}Rg[WX^ÌÝèl95 * コンペアマッチタイマコントロールレジスタの設定値 100 96 */ 101 97 /* 102 * NbNIðrbg98 * クロック選択ビット 103 99 * 104 * bit7 Í\ñÌæÅ è, ÝÍ1Åè100 * bit7は予約領域であり, 書込みは1固定 105 101 */ 106 102 #define CMT_PCLK_DIV_8 (0x0080U) … … 110 106 111 107 /* 112 * RyA}b`^C}RX^gWX^iCMCORj108 * コンペアマッチタイマコンスタントレジスタ(CMCOR) 113 109 * 114 * RyA}b`üúð1msÆ·éD 115 * üÓW 116 [NbNiPCLKj48MHzð8ªü·éÌÅC 117 * 1üú ½è166.7nsecÆÈèC6000üúÅ1msi^CeBbNÌüújÆ·éD 110 * コンペアマッチ周期を1msとする. 111 * 周辺モジュールクロック(PCLK)48MHzを8分周するので, 112 * 1周期あたり166.7nsecとなり,6000周期で1ms(タイムティックの周期)とする. 118 113 */ 119 114 #define CMCOR_PERIOD (TIMER_CLOCK) 120 115 121 116 /* 122 * RyA}b`^C}èÝvæÝèWX^iiISELRijii= èÝxN^Ôj117 * コンペアマッチタイマ割り込み要求先設定レジスタi(ISELRi)(i= 割り込みベクタ番号) 123 118 */ 124 119 #define ICU_ISEL_CPU (0x00U) … … 128 123 129 124 /* 130 * ^C}ÌN®125 * タイマの起動処理 131 126 * 132 * ^C}ðú»µCüúIÈ^C}Ýv𶳹éD127 * タイマを初期化し,周期的なタイマ割込み要求を発生させる. 133 128 */ 134 129 extern void target_timer_initialize(intptr_t exinf); 135 130 136 131 /* 137 * ^C}Ìâ~132 * タイマの停止処理 138 133 * 139 * ^C}Ì®ìðâ~³¹éD134 * タイマの動作を停止させる. 140 135 */ 141 136 extern void target_timer_terminate(intptr_t exinf); 142 137 143 138 /* 144 * ^C}WX^lÌÇÝoµ139 * タイマレジスタ値の読み出し 145 140 */ 146 141 Inline uint16_t rx630_cmt_getcount(void) … … 150 145 151 146 /* 152 * ^C}WX^lÌ«Ý147 * タイマレジスタ値の書き込み 153 148 */ 154 149 Inline void rx630_cmt_setcount(uint16_t count) … … 158 153 159 154 /* 160 * ^C}Ì»ÝlÌÇoµ155 * タイマの現在値の読出し 161 156 */ 162 157 Inline CLOCK 163 158 target_timer_get_current(void) 164 159 { 165 /* AbvJEg̽ß^C}WX^lð»ÌÜÜÔ·*/160 /* アップカウントのためタイマレジスタ値をそのまま返す */ 166 161 return (rx630_cmt_getcount()); 167 162 } 168 163 169 164 /* 170 * ^C}ÝvÌ`FbN165 * タイマ割込み要求のチェック 171 166 */ 172 167 Inline bool_t … … 177 172 178 173 /* 179 * ^C}Ýnh174 * タイマ割込みハンドラ 180 175 */ 181 176 extern void target_timer_handler(void); -
Property svn:mime-type
changed from
-
UsbWattMeter/trunk/asp_dcre/target/grsakura_ccrx/target_unrename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
-
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.