source: anotherchoice/tags/jsp-1.4.4-full-UTF8/utils/h8/genvector.pl@ 26

Last change on this file since 26 was 26, checked in by ykominami, 10 years ago

initial

File size: 5.0 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS/JSP Kernel
4# Toyohashi Open Platform for Embedded Real-Time Systems/
5# Just Standard Profile Kernel
6#
7# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
8# Toyohashi Univ. of Technology, JAPAN
9# Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
10# Graduate School of Information Science, Nagoya Univ., JAPAN
11# Copyright (C) 2005-2007 by Industrial Technology Institute,
12# Miyagi Prefectural Government, JAPAN
13#
14# 上記著作権者
15は,以下の (1)〜(4) の条件か,Free Software Foundation
16# によってå…
17¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
18# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
19# を改変したものを含む.以下同じ)を使用・複製・改変・再é…
20å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
21# 利用と呼ぶ)することを無償で許諾する.
22# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24# スコード中に含まれていること.
25# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26# 用できる形で再é…
27å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
28å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
29# 者
30マニュアルなど)に,上記の著作権表示,この利用条件および下記
31# の無保証規定を掲載すること.
32# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
33# 用できない形で再é…
34å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
35# と.
36# (a) 再é…
37å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
38マニュアルなど)に,上記の著
39# 作権表示,この利用条件および下記の無保証規定を掲載すること.
40# (b) 再é…
41å¸ƒã®å½¢æ…
42‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
43# 報告すること.
44# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
45# 害からも,上記著作権者
46およびTOPPERSプロジェクトをå…
47è²¬ã™ã‚‹ã“と.
48#
49# 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50お
51# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
52# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
53# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
54#
55# @(#) $Id: genvector.pl,v 1.5 2007/03/23 07:19:00 honda Exp $
56#
57
58
59#
60# ベクタテーブル生成スクリプト
61#  make depend時に生成されるtmp_script.plを読み込むことによって
62#  実行できるようになる
63
64# オプションの定義
65#
66# -s <vector size> ベクターテーブルのサイズ
67# -z 登録されていない割込みベクタには0を書き込む
68# -zオプションを指定しない場合は、_no_reg_expretionを
69# 書き込む
70# 実行環境(Makefileで定義しているDBGENVマクロの値)や
71# モニタの仕様により、必
72要に応じて用いる
73
74
75require "getopt.pl";
76
77
78#
79# 割込みハンドラをベクタテーブルに登録
80#   tmp_script.pl内
81から呼ばれる。
82
83sub define_inh {
84 my($inhno, $inthdr) = @_;
85
86 if ($inhno == 0) {
87 print STDERR <<ERRMESSAGE
88In generating vector.S
89Error in DEF_INH($inhno, {TA_HLNG, $inthdr});
90\t Macro of interrupt handler number $inhno isn't defined.
91\t If you define macro $inhno in header files,
92\t it's necessary to use "#include" directive in configuration files
93\t to genarate vector.S.
94\t (And it's also necessary to use static API "INCLUDE()"
95\t in configuration files to genarate kernel_cfg.c. )
96\t Check configuration files and header files.
97
98ERRMESSAGE
99 ;
100 exit(1);
101 }
102 else {
103 # ベクタテーブルに割込みハンドラを登録
104 #   割込みハンドラ名の前後に"__kernel_"と"_entry"を付加
105 $vector_table[$inhno] = "__kernel_" . $inthdr . "_entry";
106 }
107}
108
109
110#
111# オプションの処理
112#
113do Getopt("s");
114
115if ($opt_s == 0) {
116 print STDERR "genvector.pl:\n";
117 print STDERR "\t -s option(vector size) is necessary.\n";
118 print STDERR "\t check jsp/config/h8/\$(SYS)/Makefile.config\n";
119 exit(1);
120}
121
122$vector_size = $opt_s;
123
124# 実行環境によって、未登録の割込み処理の記述を切り分ける
125if ($opt_z) {
126 $no_reg_exception = "0";
127}
128else {
129 $no_reg_exception = "_no_reg_exception";
130}
131
132for ($i=0; $i<$vector_size; $i++) {
133 $vector_table[$i]=$no_reg_exception;
134}
135
136# リセットベクタの定義
137$vector_table[0] = "_start";
138
139# 自動生成されたスクリプトの読み込み
140require "./tmp_script.pl";
141
142# ベクタテーブルの出力
143for ($i=0; $i<$vector_size; $i++) {
144 printf "\t.long %s\t\t/* %d(0x%02x) */\n", $vector_table[$i], $i, $i;
145}
146
Note: See TracBrowser for help on using the repository browser.