source: ssp_aarch64/trunk/arm64_gcc/prc_kernel.trb@ 353

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

initial import

File size: 5.4 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# 上記著作権者
15は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
16# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
17# 変・再é…
18å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
19# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
20# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
21# スコード中に含まれていること.
22# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
23# 用できる形で再é…
24å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
25å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
26# 者
27マニュアルなど)に,上記の著作権表示,この利用条件および下記
28# の無保証規定を掲載すること.
29# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30# 用できない形で再é…
31å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
32# と.
33# (a) 再é…
34å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
35マニュアルなど)に,上記の著
36# 作権表示,この利用条件および下記の無保証規定を掲載すること.
37# (b) 再é…
38å¸ƒã®å½¢æ…
39‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
40# 報告すること.
41# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
42# 害からも,上記著作権者
43およびTOPPERSプロジェクトをå…
44è²¬ã™ã‚‹ã“と.
45# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
46# 由に基づく請求からも,上記著作権者
47およびTOPPERSプロジェクトを
48# å…
49è²¬ã™ã‚‹ã“と.
50#
51# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
52お
53# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
54# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
55# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
56# の責任を負わない.
57#
58# $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
59#
60
61#
62# パス2の生成スクリプトのコア依存部(ARM用)
63#
64
65#
66# 有効な割込み番号,割込みハンドラ番号
67#
68$INTNO_VALID = [ *(0..63) ]
69$INHNO_VALID = $INTNO_VALID
70
71#
72# 有効なCPU例外ハンドラ番号
73#
74$EXCNO_VALID = [ *(0..7) ]
75
76#
77# ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
78#
79$INTNO_ATTISR_VALID = $INTNO_VALID
80$INHNO_ATTISR_VALID = $INHNO_VALID
81
82#
83# DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
84#
85$INHNO_DEFINH_VALID = $INHNO_VALID
86$EXCNO_DEFEXC_VALID = $EXCNO_VALID
87
88#
89# チェック方法の指定
90#
91$CHECK_STKSZ_ALIGN = 16
92
93#
94# CFG_INTで使用できる割込み番号と割込み優å…
95ˆåº¦
96#
97$INTNO_CFGINT_VALID = $INTNO_VALID
98$INTPRI_CFGINT_VALID = Array(-15..-1)
99
100#
101# 割込み属性中のターゲット依存に用いるビット
102#
103#$TARGET_INTATR =
104
105#
106# ターゲット非依存部のインクルード
107#
108IncludeTrb("kernel/kernel.trb")
109
110$kernelCfgC.comment_header("Target-dependent Definitions (ARMv8-A)")
111
112#
113# 割込み要求ライン設定テーブル
114#
115
116$kernelCfgC.comment_header("Interrupt Configuration Table")
117
118$kernelCfgC.add("const uint8_t _kernel_intcfg_table[] = {")
119$INTNO_VALID.each_with_index do |intnoVal, index|
120 $kernelCfgC.add(",") if index > 0
121 $kernelCfgC.append("\t/* 0x#{sprintf("%03x", intnoVal)} */ ")
122 if $cfgData[:CFG_INT].has_key?(intnoVal)
123 $kernelCfgC.append("1U")
124 else
125 $kernelCfgC.append("0U")
126 end
127end
128
129$kernelCfgC.add
130$kernelCfgC.add2("};")
131
132
133#
134# 割込みハンドラテーブル
135#
136$kernelCfgC.comment_header("Interrupt Handler Table")
137
138$kernelCfgC.add("const INTHDR _kernel_inh_table[] = {")
139$INHNO_VALID.each_with_index do |inhnoVal, index|
140 $kernelCfgC.add(",") if index > 0
141 $kernelCfgC.append("\t/* 0x#{sprintf("%03x", inhnoVal)} */ ")
142 if $cfgData[:DEF_INH].has_key?(inhnoVal)
143 $kernelCfgC.append("(INTHDR)(#{$cfgData[:DEF_INH][inhnoVal][:inthdr]})")
144 else
145 $kernelCfgC.append("(INTHDR)(_kernel_default_int_handler)")
146 end
147end
148$kernelCfgC.add
149$kernelCfgC.add2("};")
150
151#
152# CPU例外ハンドラテーブル
153#
154$kernelCfgC.comment_header("CPU Exception Handler Table")
155
156$kernelCfgC.add("const EXCHDR _kernel_exc_table[] = {")
157$EXCNO_VALID.each_with_index do |excnoVal, index|
158 $kernelCfgC.add(",") if index > 0
159 $kernelCfgC.append("\t/* #{excnoVal} */ ")
160 if $cfgData[:DEF_EXC].has_key?(excnoVal)
161 $kernelCfgC.append("(EXCHDR)(#{$cfgData[:DEF_EXC][excnoVal][:exchdr]})")
162 else
163 $kernelCfgC.append("(EXCHDR)(_kernel_default_exc_handler)")
164 end
165end
166$kernelCfgC.add
167$kernelCfgC.add2("};")
Note: See TracBrowser for help on using the repository browser.