source: rubycfg_ssp/kernel_check.trb@ 283

Last change on this file since 283 was 283, checked in by nmir-saito, 7 years ago

ファイルの追加

File size: 4.9 KB
Line 
1# -*- coding: utf-8 -*-
2#
3# TOPPERS/SSP Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# Advanced Standard Profile Kernel
6#
7# Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
8# Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
9# Graduate School of Information Science, Nagoya Univ., JAPAN
10# Copyright (C) 2017 by Naoki Saito
11# Nagoya Municipal Industrial Research Institute, JAPAN
12#
13# 上記著作権者
14は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
15# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
16# 変・再é…
17å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
18# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20# スコード中に含まれていること.
21# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
22# 用できる形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
24å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
25# 者
26マニュアルなど)に,上記の著作権表示,この利用条件および下記
27# の無保証規定を掲載すること.
28# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
29# 用できない形で再é…
30å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
31# と.
32# (a) 再é…
33å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
34マニュアルなど)に,上記の著
35# 作権表示,この利用条件および下記の無保証規定を掲載すること.
36# (b) 再é…
37å¸ƒã®å½¢æ…
38‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
39# 報告すること.
40# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
41# 害からも,上記著作権者
42およびTOPPERSプロジェクトをå…
43è²¬ã™ã‚‹ã“と.
44# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
45# 由に基づく請求からも,上記著作権者
46およびTOPPERSプロジェクトを
47# å…
48è²¬ã™ã‚‹ã“と.
49#
50# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
51お
52# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
53# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
54# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
55# の責任を負わない.
56#
57# $Id: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
58#
59
60#
61# コンフィギュレータのパス3の生成スクリプト
62#
63
64#
65# タイムスタンプファイルの指定
66#
67$timeStampFileName = "check.timestamp"
68
69#
70# タスクに関するチェック
71#
72tinib_task = SYMBOL("_kernel_tinib_task")
73$cfgData[:CRE_TSK].sort.each do |key, params|
74 task = PEEK(tinib_task, $sizeof_TASK)
75
76 # タスクのå…
77ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
78 if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
79 error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
80 end
81 if $CHECK_FUNC_NONNULL && task == 0
82 error_wrong_id("E_PAR", params, :task, :tskid, "null")
83 end
84
85 tinib_task += $sizeof_TASK
86end
87
88#
89# 周期通知に関するチェック
90#
91cycinib_cychdr = SYMBOL("_kernel_cycinib_cychdr")
92$cfgData[:CRE_CYC].sort.each do |key, params|
93 cychdr = PEEK(cycinib_cychdr, $sizeof_CYCHDR)
94
95 # 周期ハンドラå…
96ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
97 if (cychdr & ($CHECK_FUNC_ALIGN - 1)) != 0
98 error_wrong_id("E_PAR", params, :cychdr, :cycid, "not aligned")
99 end
100 if $CHECK_FUNC_NONNULL && cychdr == 0
101 error_wrong_id("E_PAR", params, :cychdr , :cycid, "null")
102 end
103
104 cycinib_cychdr += $sizeof_CYCHDR
105end
106
107#
108# アラーム通知に関するチェック
109#
110alminib_almhdr = SYMBOL("_kernel_alminib_almhdr")
111$cfgData[:CRE_ALM].sort.each do |key, params|
112 almhdr = PEEK(alminib_almhdr, $sizeof_ALMHDR)
113
114 # アラームハンドラå…
115ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
116 if (almhdr & ($CHECK_FUNC_ALIGN - 1)) != 0
117 error_wrong_id("E_PAR", params, :almhdr, :almid, "not aligned")
118 end
119 if $CHECK_FUNC_NONNULL && almhdr == 0
120 error_wrong_id("E_PAR", params, :almhdr , :almid, "null")
121 end
122
123 alminib_almhdr += $sizeof_ALMHDR
124end
125
126#
127# å…
128±æœ‰ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
129#
130stkAddr = SYMBOL("_kernel_stk")
131if !stkAddr.nil?
132 stk = PEEK(stkAddr, $sizeof_void_ptr)
133
134 # å…
135±æœ‰ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã®å…
136ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
137 if (stk & ($CHECK_STACK_ALIGN - 1)) != 0
138 error_wrong("E_PAR", $cfgData[:DEF_STK][1], :stk, "not aligned")
139 end
140 if $CHECK_STACK_NONNULL && stk == 0
141 error_wrong("E_PAR", $cfgData[:DEF_STK][1], :stk, "null")
142 end
143end
Note: See TracBrowser for help on using the repository browser.