source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb@ 374

Last change on this file since 374 was 374, checked in by coas-nagasima, 5 years ago

mbed関連を更新
シリアルドライバをmbedのHALを使うよう変更
ファイルディスクリプタの処理を更新

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