source: atk2-sc3_fl850f1l/arch/v850_gcc/prc_common.tf@ 117

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

ATK2-SC3 1.3.2 FL850F1L(RH850F1L)依存部(GCC/GHS/CCRH)を追加

File size: 6.8 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-2014 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$ 上記著作権者は,以下の(1)(4)の条件を満たす場合に限り,本ソフトウェ
16$ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
17$ 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
18$ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
19$ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
20$ スコード中に含まれていること.
21$ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
22$ 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
23$ 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
24$ の無保証規定を掲載すること.
25$ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
26$ 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
27$ と.
28$ (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
29$ 作権表示,この利用条件および下記の無保証規定を掲載すること.
30$ (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
31$ 報告すること.
32$ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
33$ 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
34$ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
35$ 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
36$ 免責すること.
37$
38$ 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
39$ 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
40$ はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
41$ 用する者に対して,AUTOSARパートナーになることを求めている.
42$
43$ 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
44$ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
45$ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
46$ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
47$ の責任を負わない.
48$
49$ $Id: prc_common.tf 187 2015-06-25 03:39:04Z t_ishikawa $
50$
51
52$
53$ 有効な割込み番号
54$
55$
56$ V850ではリセット,NMI,WDTは割込みに分類されるが,リセットは
57$ カーネルが用いるため除外する
58
59$INTNO_VALID = {}$
60$FOREACH intno RANGE(0, TNUM_INT - 1)$
61 $INTNO_VALID = APPEND(INTNO_VALID, intno)$
62$END$
63
64$EXCNO_VALID = {1,2,3,4,5,7}$
65
66$TNUM_EXC = {1,2,3,4,5,6,7}$
67
68$
69$ CRE_ISR2で使用できる割込み番号
70$
71$INTNO_CREISR2_VALID = INTNO_VALID$
72
73$
74$ 標準テンプレートファイルのインクルード
75$
76$INCLUDE "kernel/kernel.tf"$
77
78$FOREACH intno INTNO_VALID$
79 $FOREACH isrid ISR.ID_LIST$
80 $IF intno == ISR.INTNO[isrid]$
81 $INT.ISRID[intno] = isrid$
82 $END$
83 $END$
84$END$
85
86
87$FILE "Os_Lcfg.c"$
88
89$
90$ C2ISRの優先度下限
91$
92$n = 0$
93$pmr_isr2_mask = 0xffff$
94$WHILE (n < (MIN_PRI_ISR2 + TNUM_INTPRI))$
95$pmr_isr2_mask = pmr_isr2_mask & ~(0x01 << n)$
96$n = n + 1$
97$END$
98$pmr_isr1_mask = ~pmr_isr2_mask & 0xffff $
99
100const uint16 pmr_isr2_mask = $FORMAT("0x%x",pmr_isr2_mask)$;$NL$
101const uint16 pmr_isr1_mask = $FORMAT("0x%x",pmr_isr1_mask)$;$NL$
102
103$
104$ 割込みハンドラテーブル(EIレベル マスカブル割込み用)
105$
106const FunctionRefType isr_tbl[TNUM_INT] = {$NL$
107$JOINEACH intno INTNO_VALID "\n"$
108 $isrid = INT.ISRID[intno]$
109 $IF LENGTH(isrid)$
110 $TAB$$ISR.INT_ENTRY[isrid]$
111 $ELSE$
112 $TAB$default_int_handler
113 $END$
114$ //カンマの出力(最後の要素の後ろに出力しない)
115 $IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
116 ,
117 $END$
118 $TAB$$FORMAT("/* %d */", intno)$
119$END$
120$NL$};$NL$
121$NL$
122
123$
124$ ISRCBの取得テーブル(EIレベル マスカブル割込み用)
125$
126ISRCB *const isr_p_isrcb_tbl[TNUM_INT] = {$NL$
127$JOINEACH intno INTNO_VALID "\n"$
128 $isrid = INT.ISRID[intno]$
129 $IF LENGTH(isrid) && EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
130 $TAB$&(isrcb_table[$ISR.ID[isrid]$])
131 $ELSE$
132 $TAB$NULL
133 $END$
134$ //カンマの出力(最後の要素の後ろに出力しない)
135 $IF intno != AT(INTNO_VALID,LENGTH(INTNO_VALID) - 1)$
136 ,
137 $END$
138 $TAB$$FORMAT("/* %d */", intno)$
139$END$
140$NL$};$NL$
141$NL$
142
143
144$
145$ 割込みベクタと各割込み入口処理の出力関数
146$
147
148$FUNCTION VECTOR_ASMOUT$
149
150$EXCEPTION_VECTOR_SECTION()$
151
152$ASM_GLOBAL("__reset")$
153$NL$
154$ASM_LABEL("__reset")$
155$NL$
156$TAB$$ASM_COMMENT()$
157$FORMAT(" Exception 0x%x ", 0)$$NL$
158$TAB$jr __start$NL$
159$TAB$nop$NL$
160$TAB$nop$NL$
161$TAB$nop$NL$
162$TAB$nop$NL$
163$TAB$nop$NL$
164$TAB$nop$NL$
165
166$
167$ ベクタテーブル(例外 No1-7)
168$
169$ 例外 No1
170$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 1)$$NL$
171$TAB$ldsr r2, eiwr$NL$
172$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
173$TAB$jr _fe_exception_entry$NL$
174$TAB$nop$NL$
175$TAB$nop$NL$
176$ 例外 No2
177$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 2)$$NL$
178$TAB$ldsr r2, eiwr$NL$
179$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
180$TAB$jr _fe_exception_entry$NL$
181$TAB$nop$NL$
182$TAB$nop$NL$
183$ 例外 No3
184$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 3)$$NL$
185$TAB$ldsr r2, eiwr$NL$
186$TAB$movea $E_OS_PROTECTION_MEMORY$, r0, r2$NL$
187$TAB$jr _fe_exception_entry$NL$
188$TAB$nop$NL$
189$TAB$nop$NL$
190$ 例外 No4
191$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 4)$$NL$
192$TAB$ldsr r2, eiwr$NL$
193$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
194$TAB$jr _ei_exception_entry$NL$
195$TAB$nop$NL$
196$TAB$nop$NL$
197$ 例外 No5
198$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 5)$$NL$
199$TAB$ldsr r2, eiwr$NL$
200$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
201$TAB$jr _fe_exception_entry$NL$
202$TAB$nop$NL$
203$TAB$nop$NL$
204$ 例外 No6
205$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 6)$$NL$
206$TAB$nop$NL$
207$TAB$nop$NL$
208$TAB$nop$NL$
209$TAB$nop$NL$
210$TAB$nop$NL$
211$TAB$nop$NL$
212$TAB$nop$NL$
213$TAB$nop$NL$
214$ 例外 No7
215$TAB$$ASM_COMMENT()$$FORMAT(" Exception 0x%x ", 7)$$NL$
216$TAB$ldsr r2, eiwr$NL$
217$TAB$movea $E_OS_PROTECTION_EXCEPTION$, r0, r2$NL$
218$TAB$jr _fe_exception_entry$NL$
219$TAB$nop$NL$
220$TAB$nop$NL$
221
222$
223$ ベクタテーブル(EIレベル マスカブル割込み用(8-255)
224$
225$NL$$FOREACH intno INTNO_VALID$
226$TAB$$ASM_COMMENT()$$FORMAT("0x%x",intno*16 + 0x80)$ $NL$
227 $isrid = INT.ISRID[intno]$
228 $IF LENGTH(isrid)$
229 $IF EQ(ISR.CATEGORY[isrid], "CATEGORY_2")$
230 $TAB$ldsr r2, eiwr$NL$
231 $TAB$movea $intno$, r0, r2$NL$
232 $TAB$jr _interrupt$NL$
233 $TAB$nop$NL$
234 $TAB$nop$NL$
235 $ELSE$
236 $TAB$jr _$ISR.INT_ENTRY[isrid]$$NL$
237 $TAB$nop$NL$
238 $TAB$nop$NL$
239 $TAB$nop$NL$
240 $TAB$nop$NL$
241 $TAB$nop$NL$
242 $TAB$nop$NL$
243 $END$
244 $ELSE$
245$ // 割込みハンドラの登録がない場合
246 $TAB$jr _default_int_handler$NL$
247 $TAB$nop$NL$
248 $TAB$nop$NL$
249 $TAB$nop$NL$
250 $TAB$nop$NL$
251 $TAB$nop$NL$
252 $TAB$nop$NL$
253 $END$
254$END$
255
256$END$
257
Note: See TracBrowser for help on using the repository browser.