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

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

initial

File size: 4.7 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:25:47 honda Exp $
56#
57
58
59#
60# ベクタテーブル生成スクリプト
61#  直前に生成されるtmp_script.plを読み込むことによって実行できるようになる。
62#
63
64require "getopt.pl";
65
66# オプションの定義
67#
68# -s <vector size> ベクターテーブルのサイズ
69
70#
71# tmp_script.pl内
72から呼ばれる関数の定義
73#  割込みハンドラをベクタテーブルに登録する。
74#
75sub define_inh {
76 my($inhno, $inthdr) = @_;
77
78 if ($inhno == 0) {
79 print STDERR <<ERRMESSAGE
80In generating vector.src
81Error in DEF_INH($inhno, {TA_HLNG, $inthdr});
82\t Macro of interrupt handler number $inhno isn't defined.
83\t If you define macro $inhno in header files,
84\t it's necessary to use "#include" directive in configuration files
85\t to genarate vector.src.
86\t (And it's also necessary to use static API "INCLUDE()"
87\t in configuration files to genarate kernel_cfg.c. )
88\t Check configuration files and header files.
89
90ERRMESSAGE
91 ;
92 exit(1);
93 }
94 else {
95 # ベクタテーブルに割込みハンドラを登録
96 #   割込みハンドラ名の前後に"__kernel_"と"_entry"を付加
97 $vector_table[$inhno] = "__kernel_" . $inthdr . "_entry";
98 }
99}
100
101#
102# オプションの処理
103#
104do Getopt("s");
105
106if ($opt_s == 0) {
107 print STDERR "genvector.pl:\n";
108 print STDERR "\t -s option(vector size) is necessary.\n";
109 print STDERR "\t check jsp/tools/\$(CPU)/configuration/call_configurator.bat.\n";
110 print STDERR "\t \$(CPU) is H8-RENESAS or H8S-RENESAS.\n";
111 exit(1);
112}
113
114$vector_size = $opt_s;
115
116# すべてのベクタを「未登録」として初期化
117for ($i=0; $i<$vector_size; $i++) {
118 $vector_table[$i] = "_no_reg_exception";
119}
120
121# リセットベクタの定義
122$vector_table[0] = "_start";
123
124# 自動生成されたスクリプトの読み込みと実行
125require "./tmp_script.pl";
126
127# ベクタテーブルの出力
128for ($i=0; $i<$vector_size; $i++) {
129 printf "\t.DATA.L %s\t; %d, 0x%02x\n", $vector_table[$i] , $i, $i;
130}
131
Note: See TracBrowser for help on using the repository browser.