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

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

set svn:mime-type to files

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