Changeset 315 for rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 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: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $ … … 57 42 58 43 # 59 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®çæã¹ã¯ãªãã60 # 61 62 # 63 # ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®44 # コンフィギュレータのパス3の生成スクリプト 45 # 46 47 # 48 # タイムスタンプファイルの指定 64 49 # 65 50 $timeStampFileName = "check.timestamp" 66 51 67 52 # 68 # ãã¼ã¿ã»ã¯ã·ã§ã³ã®LMAããVMAã¸ã®ã³ãã¼53 # データセクションのLMAからVMAへのコピー 69 54 # 70 55 if !$lmaList.nil? … … 86 71 87 72 # 88 # éç¥æ 89 å ±ã®ãã§ãã¯é¢æ° 73 # 通知情報のチェック関数 90 74 # 91 75 $tmax_tskid = $TMIN_TSKID + $cfgData[:CRE_TSK].size - 1 … … 96 80 97 81 # 98 # ã¿ã¹ã¯ã«é¢ãããã§ãã¯82 # タスクに関するチェック 99 83 # 100 84 tinib = SYMBOL("_kernel_tinib_table") … … 102 86 task = PEEK(tinib + $offsetof_TINIB_task, $sizeof_TASK) 103 87 104 # ã¿ã¹ã¯ã®å 105 é çªå°ã®ãã§ãã¯ï¼»NGKI1033ï¼½ 88 # タスクの先頭番地のチェック[NGKI1033] 106 89 if (task & ($CHECK_FUNC_ALIGN - 1)) != 0 107 90 error_wrong_id("E_PAR", params, :task, :tskid, "not aligned") … … 111 94 end 112 95 113 # ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å 114 é çªå°ã®ãã§ãã¯ï¼»NGKI1056ï¼½ 96 # タスクのスタック領域の先頭番地のチェック[NGKI1056] 115 97 if $USE_TSKINICTXB 116 98 stk = GetStackTskinictxb(key, params, tinib) … … 129 111 130 112 # 131 # åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ãããã§ãã¯113 # 固定長メモリプールに関するチェック 132 114 # 133 115 mpfinib = SYMBOL("_kernel_mpfinib_table") … … 135 117 mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr) 136 118 137 # åºå®é·ã¡ã¢ãªãã¼ã«é åã®å 138 é çªå°ã®ãã§ãã¯ï¼»NGKI2249ï¼½ 119 # 固定長メモリプール領域の先頭番地のチェック[NGKI2249] 139 120 if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0 140 121 error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned") … … 148 129 149 130 # 150 # å¨æéç¥ã«é¢ãããã§ãã¯131 # 周期通知に関するチェック 151 132 # 152 133 cycinib = SYMBOL("_kernel_cycinib_table") … … 155 136 cychdr = PEEK(cycinib + $offsetof_CYCINIB_cychdr, $sizeof_CYCHDR) 156 137 157 # ãã³ãã©ã®å 158 é çªå°ã®ãã§ãã¯ï¼»NGKI3135ï¼½ 138 # ハンドラの先頭番地のチェック[NGKI3135] 159 139 if (cychdr && ($CHECK_FUNC_ALIGN - 1)) != 0 160 140 error_wrong_id("E_PAR", params, :cychdr, :cycid, "not aligned") … … 168 148 169 149 # 170 # ã¢ã©ã¼ã éç¥ã«é¢ãããã§ãã¯150 # アラーム通知に関するチェック 171 151 # 172 152 alminib = SYMBOL("_kernel_alminib_table") … … 175 155 almhdr = PEEK(alminib + $offsetof_ALMINIB_almhdr, $sizeof_ALMHDR) 176 156 177 # ãã³ãã©ã®å 178 é çªå°ã®ãã§ãã¯ï¼»NGKI3135ï¼½ 157 # ハンドラの先頭番地のチェック[NGKI3135] 179 158 if (almhdr && ($CHECK_FUNC_ALIGN - 1)) != 0 180 159 error_wrong_id("E_PAR", params, :almhdr, :almid, "not aligned") … … 188 167 189 168 # 190 # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ãããã§ãã¯169 # 割込みサービスルーチンに関するチェック 191 170 # 192 171 isrinib = SYMBOL("_kernel_sisrinib_table") … … 194 173 isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR) 195 174 196 # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å 197 é çªå°ã®ãã§ãã¯ï¼»NGKI3004ï¼½ 175 # 割込みサービスルーチンの先頭番地のチェック[NGKI3004] 198 176 if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0 199 177 error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned") … … 207 185 208 186 # 209 # éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ãããã§ãã¯187 # 非タスクコンテキスト用のスタック領域に関するチェック 210 188 # 211 189 istkAddr = SYMBOL("_kernel_istk") … … 213 191 istk = PEEK(istkAddr, $sizeof_void_ptr) 214 192 215 # éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯é åã®å 216 é çªå°ã®ãã§ãã¯ï¼»NGKI3222ï¼½ 193 # 非タスクコンテキスト用のスタック領域の先頭番地のチェック[NGKI3222] 217 194 if (istk & ($CHECK_STACK_ALIGN - 1)) != 0 218 195 error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned") … … 224 201 225 202 # 226 # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã«é¢ãããã§ãã¯203 # カーネルが割り付けるメモリ領域に関するチェック 227 204 # 228 205 kmmAddr = SYMBOL("_kernel_kmm") … … 230 207 kmm = PEEK(kmmAddr, $sizeof_void_ptr) 231 208 232 # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å 233 é çªå°ã®ãã§ã㯠209 # カーネルが割り付けるメモリ領域の先頭番地のチェック 234 210 if (kmm & ($CHECK_MB_ALIGN - 1)) != 0 235 211 error_wrong("E_PAR", $cfgData[:DEF_KMM][1], :kmm, "not aligned") -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.