Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r279 r321 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 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 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * ã·ã¹ãã æå»ç®¡çæ©è½44 * システム時刻管理機能 60 45 */ 61 46 … … 70 55 71 56 /* 72 * ãã¬ã¼ã¹ãã°ãã¯ãã®ããã©ã«ãå®ç¾©57 * トレースログマクロのデフォルト定義 73 58 */ 74 59 #ifndef LOG_SET_TIM_ENTER … … 105 90 106 91 /* 107 * ã·ã¹ãã æå»ã®è¨å®ï¼»NGKI3563ï¼½92 * システム時刻の設定[NGKI3563] 108 93 */ 109 94 #ifdef TOPPERS_set_tim … … 115 100 116 101 LOG_SET_TIM_ENTER(systim); 117 CHECK_TSKCTX_UNL(); /* ï¼»NGKI3564][NGKI3565ï¼½*/102 CHECK_TSKCTX_UNL(); /*[NGKI3564][NGKI3565]*/ 118 103 119 104 lock_cpu(); 120 update_current_evttim(); /* ï¼»ASPD1059ï¼½*/121 systim_offset = systim - monotonic_evttim; /* ï¼»ASPD1060ï¼½*/105 update_current_evttim(); /*[ASPD1059]*/ 106 systim_offset = systim - monotonic_evttim; /*[ASPD1060]*/ 122 107 ercd = E_OK; 123 108 unlock_cpu(); … … 131 116 132 117 /* 133 * ã·ã¹ãã æå»ã®åç 134 §ï¼»NGKI2349ï¼½ 118 * システム時刻の参照[NGKI2349] 135 119 */ 136 120 #ifdef TOPPERS_get_tim … … 142 126 143 127 LOG_GET_TIM_ENTER(p_systim); 144 CHECK_TSKCTX_UNL(); /* ï¼»NGKI2350][NGKI2351ï¼½*/128 CHECK_TSKCTX_UNL(); /*[NGKI2350][NGKI2351]*/ 145 129 146 130 lock_cpu(); 147 update_current_evttim(); /* ï¼»ASPD1057ï¼½*/148 *p_systim = systim_offset + monotonic_evttim; /* ï¼»ASPD1058ï¼½*/131 update_current_evttim(); /*[ASPD1057]*/ 132 *p_systim = systim_offset + monotonic_evttim; /*[ASPD1058]*/ 149 133 ercd = E_OK; 150 134 unlock_cpu(); … … 158 142 159 143 /* 160 * ã·ã¹ãã æå»ã®èª¿æ´ï¼»NGKI3581ï¼½144 * システム時刻の調整[NGKI3581] 161 145 */ 162 146 #ifdef TOPPERS_adj_tim … … 169 153 170 154 LOG_ADJ_TIM_ENTER(adjtim); 171 CHECK_UNL(); /* ï¼»NGKI3583ï¼½*/155 CHECK_UNL(); /*[NGKI3583]*/ 172 156 CHECK_PAR(TMIN_ADJTIM <= adjtim && adjtim <= TMAX_ADJTIM); 173 /* ï¼»NGKI3584ï¼½*/157 /*[NGKI3584]*/ 174 158 lock_cpu(); 175 update_current_evttim(); /* ï¼»ASPD1051ï¼½*/176 if (check_adjtim(adjtim)) { /* ï¼»ASPD1052ï¼½*/159 update_current_evttim(); /*[ASPD1051]*/ 160 if (check_adjtim(adjtim)) { /*[ASPD1052]*/ 177 161 ercd = E_OBJ; 178 162 } 179 163 else { 180 164 previous_evttim = current_evttim; 181 current_evttim += adjtim; /* ï¼»ASPD1053ï¼½*/182 boundary_evttim = current_evttim - BOUNDARY_MARGIN; /* ï¼»ASPD1055ï¼½*/165 current_evttim += adjtim; /*[ASPD1053]*/ 166 boundary_evttim = current_evttim - BOUNDARY_MARGIN; /*[ASPD1055]*/ 183 167 184 168 if (adjtim > 0 … … 189 173 } 190 174 #endif /* UINT64_MAX */ 191 monotonic_evttim = current_evttim; /* ï¼»ASPD1054ï¼½*/175 monotonic_evttim = current_evttim; /*[ASPD1054]*/ 192 176 } 193 177 194 set_hrt_event(); /* ï¼»ASPD1056ï¼½*/178 set_hrt_event(); /*[ASPD1056]*/ 195 179 ercd = E_OK; 196 180 } … … 205 189 206 190 /* 207 * é«å解è½ã¿ã¤ãã®åç 208 §ï¼»NGKI3569ï¼½ 191 * 高分解能タイマの参照[NGKI3569] 209 192 * 210 * ä»»æã®ç¶æ 211 ããå¼ã³åºããããã«ããããã«ï¼SILã®å 212 ¨å²è¾¼ã¿ããã¯ç¶æ 213 ã® 214 * å¶å¾¡æ©è½ãç¨ãã¦ï¼æä»å¶å¾¡ãå®ç¾ãã¦ããï¼»NGKI3572ï¼½ï¼ 193 * 任意の状態から呼び出せるようにするために,SILの全割込みロック状態の 194 * 制御機能を用いて,排他制御を実現している[NGKI3572]. 215 195 */ 216 196 #ifdef TOPPERS_fch_hrt … … 225 205 226 206 SIL_LOC_INT(); 227 hrtcnt = target_hrt_get_current(); /* ï¼»NGKI3571ï¼½*/207 hrtcnt = target_hrt_get_current(); /*[NGKI3571]*/ 228 208 SIL_UNL_INT(); 229 209 … … 235 215 236 216 /* 237 * éç¥æ¹æ³ã®ã¨ã©ã¼ãã§ãã¯217 * 通知方法のエラーチェック 238 218 */ 239 219 #ifdef TOPPERS_chknfy … … 319 299 320 300 /* 321 * éç¥ãã³ãã©301 * 通知ハンドラ 322 302 */ 323 303 #ifdef TOPPERS_nfyhdr
Note:
See TracChangeset
for help on using the changeset viewer.