source: atk2-sc3-1.4.0-ntisr/arch/v850_ccrh/prc.tf@ 172

Last change on this file since 172 was 172, checked in by ertl-ishikawa, 8 years ago

ATK2-SC3 1.4.0 RH850依存部 非信頼C2ISR対応を追加

  • Property svn:executable set to *
File size: 8.3 KB
Line 
1$
2$ TOPPERS ATK2
3$ Toyohashi Open Platform for Embedded Real-Time Systems
4$ Automotive Kernel Version 2
5$
6$ Copyright (C) 2013-2015 by Center for Embedded Computing Systems
7$ Graduate School of Information Science, Nagoya Univ., JAPAN
8$ Copyright (C) 2013-2014 by FUJI SOFT INCORPORATED, JAPAN
9$ Copyright (C) 2013-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
10$ Copyright (C) 2013-2014 by Renesas Electronics Corporation, JAPAN
11$ Copyright (C) 2013-2014 by Sunny Giken Inc., JAPAN
12$ Copyright (C) 2013-2014 by TOSHIBA CORPORATION, JAPAN
13$ Copyright (C) 2013-2014 by Witz Corporation, JAPAN
14$
15$ 上記著作権者
16は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
17$ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
18$ 変・再é…
19å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
20$ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21$ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22$ スコード中に含まれていること.
23$ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24$ 用できる形で再é…
25å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
26å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
27$ 者
28マニュアルなど)に,上記の著作権表示,この利用条件および下記
29$ の無保証規定を掲載すること.
30$ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
31$ 用できない形で再é…
32å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
33$ と.
34$ (a) 再é…
35å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
36マニュアルなど)に,上記の著
37$ 作権表示,この利用条件および下記の無保証規定を掲載すること.
38$ (b) 再é…
39å¸ƒã®å½¢æ…
40‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
41$ 報告すること.
42$ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
43$ 害からも,上記著作権者
44およびTOPPERSプロジェクトをå…
45è²¬ã™ã‚‹ã“と.
46$ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
47$ 由に基づく請求からも,上記著作権者
48およびTOPPERSプロジェクトを
49$ å…
50è²¬ã™ã‚‹ã“と.
51$
52$ 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
53$ 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
54$ はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
55$ 用する者
56に対して,AUTOSARパートナーになることを求めている.
57$
58$ 本ソフトウェアは,無保証で提供されているものである.上記著作権者
59お
60$ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
61$ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
62$ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
63$ の責任を負わない.
64$
65$ $Id: prc.tf 189 2015-06-26 01:54:57Z t_ishikawa $
66$
67
68$
69$ パス2のアーキテクチャ依存テンプレート(V850用)
70$
71
72$FILE "kernel_mem2.c"$
73#pragma section kernel
74
75$FILE "Os_Lcfg.c"$
76#pragma section kernel
77
78$
79$ kernel/kernel.tf のターゲット依存部
80$
81
82$
83$ ユーザスタック領域を確保するコードを出力する
84$ ARGV[1]:タスクID
85$ ARGV[2]:スタックサイズ
86$
87$FUNCTION ALLOC_USTACK$
88 #pragma section $FORMAT(".user_stack.%s", ARGV[1])$$NL$
89 StackType _kernel_ustack_$ARGV[1]$[COUNT_STK_T($ARGV[2]$)];$NL$
90 #pragma section kernel$NL$
91
92 $TSK.TINIB_USTKSZ[ARGV[1]] = VALUE(FORMAT("ROUND_STK_T(%s)", ARGV[2]), +ARGV[2])$
93 $TSK.TINIB_USTK[ARGV[1]] = FORMAT("_kernel_ustack_%s", ARGV[1])$
94$END$
95
96$
97$ ユーザスタック領域のセクション名を返す
98$ ARGV[1]:タスクID
99$
100$FUNCTION SECTION_USTACK$
101 $RESULT = FORMAT(".user_stack.%s.bss", ARGV[1])$
102$END$
103
104$
105$ ユーザスタックのアライメント制約に合わせたサイズを返す
106$ ARGV[1]:スタックサイズ(アライン前)
107$ kernel.tfから呼ばれる
108$
109$FUNCTION USTACK_ALIGN_SIZE$
110 $RESULT = (ARGV[1] + CHECK_USTKSZ_ALIGN - 1) & ~(CHECK_USTKSZ_ALIGN - 1)$
111$END$
112
113$
114$ 基本タスクのå…
115±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ç¢ºä¿
116$ ARGV[1]:å…
117±æœ‰ã‚¹ã‚¿ãƒƒã‚¯å
118$ ARGV[2]:å…
119±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ID(タスク優å…
120ˆåº¦)
121$ ARGV[3]:スタックサイズ(アライメント調整済み)
122$ kernel.tfから呼ばれる
123$
124$FUNCTION ALLOC_SHARED_USTACK$
125 #pragma section $FORMAT(".shared_user_stack.%s", ARGV[2])$$NL$
126 StackType $ARGV[1]$[COUNT_STK_T(ROUND_STK_T($ARGV[3]$))];$NL$
127 #pragma section kernel$NL$
128$END$
129
130$
131$ 基本タスクのå…
132±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³å
133$ ARGV[1]:å…
134±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ID(タスク優å…
135ˆåº¦)
136$ kernel.tfから呼ばれる
137$
138$FUNCTION SECTION_SHARED_USTACK$
139 $RESULT = FORMAT(".shared_user_stack.%s.bss", ARGV[1])$
140$END$
141
142$
143$ OsMemoryModule はサポートしない
144$
145$TOPPERS_SUPPORT_ATT_MOD = 0$
146$FUNCTION HOOK_ERRORCHECK_MOD$
147 $ERROR$
148 OsMemoryModule is not supported.$NL$
149 $END$
150$END$
151
152$
153$ OSAP初期化コンテキストブロックのための宣言
154$
155$FUNCTION PREPARE_OSAPINICTXB$
156 $NOOP()$
157$END$
158
159$FUNCTION ASM_MACRO$
160 $ARGV[1]$ .macro $ARGV[2]$
161$END$
162
163$INCLUDE "arch/v850_gcc/prc_common.tf"$
164
165$IF __v850e3v5__$
166
167$
168$ テーブル参ç…
169§æ–¹å¼ç”¨ãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル(v850e3v5)
170$
171
172$FILE "Os_Lcfg_asm.asm"$
173
174.extern _interrupt$NL$
175
176$NL$$FOREACH intno INTNO_VALID$
177 $isrid = INT.ISRID[intno]$
178 $IF LENGTH(isrid)$
179 $IF EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
180 .extern _$ISR.INT_ENTRY[isrid]$$NL$
181 $END$
182 $END$
183$END$
184$NL$
185 .section "EIINTTBL", const$NL$
186 .extern _intbp_tbl$NL$
187 .align 512$NL$
188 _intbp_tbl:$NL$
189$JOINEACH intno INTNO_VALID "\n"$
190 $isrid = INT.ISRID[intno]$
191 $IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_1")$
192 $TAB$.dw #_$ISR.INT_ENTRY[isrid]$
193 $ELSE$
194 $TAB$.dw #_interrupt
195 $END$
196 $TAB$$FORMAT(";/* %d */", intno)$
197$END$
198
199$NL$
200;/* in order to restrain warning */$NL$
201$NL$
202$FOREACH mo MO_ORDER$
203 $IF MO.LINKER[mo]$
204 $seg = ""$
205 $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.text$", "")$
206 $IF !EQ(e, MO.SECTION[mo])$
207 $seg = "text"$
208 $END$
209 $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.const$", "")$
210 $IF !EQ(e, MO.SECTION[mo])$
211 $seg = "const"$
212 $END$
213 $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.data$", "")$
214 $IF !EQ(e, MO.SECTION[mo])$
215 $seg = "data"$
216 $END$
217 $e = REGEX_REPLACE(MO.SECTION[mo], ".*\\.bss$", "")$
218 $IF !EQ(e, MO.SECTION[mo])$
219 $seg = "bss"$
220 $END$
221 $IF !EQ(seg, "")$
222 $TAB$.section "$MO.SECTION[mo]$", $seg$$NL$
223 _dummy$MO.SECTION[mo]$:$NL$
224 $NL$
225 $END$
226 $END$
227$END$
228
229$END$
230$ //$IF __v850e3v5__$
231
232$
233$ arch/ccrh/ldscript.tfのターゲット依存部
234$
235
236$
237$ CCRH依存部のテンプレートファイルのインクルード
238$
239$INCLUDE "ccrh/ldscript.tf"$
240
241$FILE "kernel_mem2.c"$
242
243$IF TNUM_MPU_SHARED > 0$
244uint8 * const shared_meminib_table[$TNUM_MPU_SHARED * 3$] = {$NL$
245$FOREACH memid RANGE(0, TNUM_MPU_SHARED - 1)$
246 $TAB$((uint8 *)NULL),$TAB$/* MPUL $TNUM_MPU_REG - memid$ */$NL$
247 $TAB$((uint8 *)NULL),$TAB$/* MPUA $TNUM_MPU_REG - memid$ */$NL$
248 $TAB$((uint8 *)NULL),$TAB$/* MPAT $TNUM_MPU_REG - memid$ */$NL$
249$END$
250};$NL$
251$NL$
252$END$
253
254$FILE "cfg2_out.tf"$
255$ LNKSEC.*の出力
256$$numls = $numls$$$$NL$
257$NL$
258$FOREACH lsid RANGE(1, numls)$
259 $$LNKSEC.MEMREG[$lsid$] = $LNKSEC.MEMREG[lsid]$$$$NL$
260 $$LNKSEC.SECTION[$lsid$] = $ESCSTR(LNKSEC.SECTION[lsid])$$$$NL$
261 $NL$
262$END$
263
264$JOINEACH tskid TSK.ID_LIST "\n"$
265 $$TSK.ID[$+tskid$] = $TSK.ID[tskid]$$$
266$END$
267$NL$
268
269$lma = 0$
270$FOREACH moid MO_ORDER$
271 $IF MO.LINKER[moid] && ((MO.SEFLAG[moid] & 0x01) != 0)$
272 $IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
273 $$LMA.START_IDATA[$lma$] = "__s$MO.SECTION[moid]$"$$$NL$
274 $$LMA.START_DATA[$lma$] = "__s$MO.SECTION[moid]$.R"$$$NL$
275 $$LMA.END_DATA[$lma$] = "__e$MO.SECTION[moid]$.R"$$$NL$
276 $lma = lma + 1$
277 $END$
278 $END$
279$END$
280$$LMA.ORDER_LIST = RANGE(0, $lma - 1$)$$$NL$
281$NL$
Note: See TracBrowser for help on using the repository browser.