Changeset 167 for UsbWattMeter/trunk/asp_dcre/kernel/kernel_impl.h
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.