Ignore:
Timestamp:
Jul 23, 2017, 2:29:40 PM (7 years ago)
Author:
coas-nagasima
Message:

SVNプロパティを設定

Location:
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile; charset=UTF-8
    r313 r315  
    11#
    2 #               Makefileのプロセッサ依存部(M68040用)
     2#               Makefileのプロセッサ依存部(M68040用)
    33#
    44
    55#
    6 #  GNU開発環境のターゲットアーキテクチャの定義
     6#  GNU開発環境のターゲットアーキテクチャの定義
    77#
    88GCC_TARGET = rx-elf
    99
    1010#
    11 ãƒ—ロセッサ依存部ディレクトリ名の定義
     11プロセッサ依存部ディレクトリ名の定義
    1212#
    1313PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)
    1414
    1515#
    16 ã‚³ãƒ³ãƒ‘イルオプション
     16コンパイルオプション
    1717#
    1818COPTS := $(COPTS) -ffunction-sections -fno-function-cse -fsigned-char -fdata-sections -mlittle-endian-data -mcpu=rx600 -m64bit-doubles
     
    2020
    2121#
    22 ã‚«ãƒ¼ãƒãƒ«ã«é–¢ã™ã‚‹å®šç¾©
     22カーネルに関する定義
    2323#
    2424KERNEL_DIR := $(KERNEL_DIR) $(PRCDIR)
     
    2727
    2828#
    29 ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿é–¢ä¿‚の変数の定義
     29コンフィギュレータ関係の変数の定義
    3030#
    3131CFG_TABS := $(CFG_TABS) --symval-table $(PRCDIR)/prc_sym.def
    3232
    3333#
    34 ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆã®ãŸã‚ã®å®šç¾©
     34オフセットファイル生成のための定義
    3535#
    3636OFFSET_TRB = $(PRCDIR)/prc_offset.trb
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    88 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  @(#) $Id$
     
    5742
    5843/*
    59  *      offset.inc (もしくは offset.h) について
    60  *
    61  *        offset.inc は構造体の特定の要素が構造体のå
    62 ˆé ­ã‹ã‚‰ä½•ãƒã‚¤ãƒˆç›®ã«
    63  *      存在するかということや, 特定のビットフィールドがå
    64 ˆé ­ã‹ã‚‰
    65  *      何バイトå
    66 ˆã®ä½•ãƒ“ット目に存在するか, というæƒ
    67 å ±ã‚’
    68  *      アセンブリ言語ファイルに与えるために存在している.
    69  *
    70  *        offset.inc ファイルの中身は, 単なるシンボル定義ファイルである.
    71  *      シンボルといっても定義するシンボルの名称にはパターンがあり,
    72  *      大きく分けて次の3種類に分類できる.
    73  *
    74  *      <構造体名>_<要素名>      (例) TCB_sp, TCB_pc, TCB_enatex など
    75  *      <構造体名>_<要素名>_bit  (例) TCB_enatex_bit など
    76  *      <構造体名>_<要素名>_mask (例) TCB_enatex_mask など
    77  *
    78  *      (例)
     44 *      offset.inc (もしくは offset.h) について
     45 *
     46 *        offset.inc は構造体の特定の要素が構造体の先頭から何バイト目に
     47 *      存在するかということや, 特定のビットフィールドが先頭から
     48 *      何バイト先の何ビット目に存在するか, という情報を
     49 *      アセンブリ言語ファイルに与えるために存在している.
     50 *
     51 *        offset.inc ファイルの中身は, 単なるシンボル定義ファイルである.
     52 *      シンボルといっても定義するシンボルの名称にはパターンがあり,
     53 *      大きく分けて次の3種類に分類できる.
     54 *
     55 *      <構造体名>_<要素名>    (例) TCB_sp, TCB_pc, TCB_enatex など
     56 *      <構造体名>_<要素名>_bit        (例) TCB_enatex_bit など
     57 *      <構造体名>_<要素名>_mask (例) TCB_enatex_mask など
     58 *
     59 *      (例)
    7960 *              TCB_texptn              .equ    14
    8061 *              TCB_sp                  .equ    20
     
    8465 *              TCB_enatex_mask         .equ    0040H
    8566 *
    86  *        一番はじめは特定の要素が構造体のå
    87 ˆé ­ã‹ã‚‰ä½•ãƒã‚¤ãƒˆå
    88 ˆã«ã‚るか
    89  *      ということを示す数値につけるラベルの名称.
    90  *        二番目は特定のビットフィールド中のビットが, 下位から数えて
    91  *      何ビット目にあるかということを示す数値につけるラベルの名称.
    92  *      0から始まる数値で表現する. 最も下位のビットは第0ビットである.
    93  *        三番目はå
    94 ˆã»ã©ã® <構造体名>_<要素名>_bit とも関連するが,
    95  *      特定のビットフィールド中のビットのマスク値の名称.
    96  *      _bit と *_mask の値の間には次の関係がある.
     67 *        一番はじめは特定の要素が構造体の先頭から何バイト先にあるか
     68 *      ということを示す数値につけるラベルの名称.
     69 *        二番目は特定のビットフィールド中のビットが, 下位から数えて
     70 *      何ビット目にあるかということを示す数値につけるラベルの名称.
     71 *      0から始まる数値で表現する. 最も下位のビットは第0ビットである.
     72 *        三番目は先ほどの <構造体名>_<要素名>_bit とも関連するが,
     73 *      特定のビットフィールド中のビットのマスク値の名称.
     74 *      _bit と *_mask の値の間には次の関係がある.
    9775 *              (*_mask) == (1 << *_bit)
    98  * *    (例) TCB_enatex_bit が 6 の時, TCB_enatex_mask は 40H
    99  *
    100  *        ちなみにM32C依存部の実è£
    101 ã§ã¯, 特定ビットのチェックなどに
    102  *      ビット命令アドレッシングを使用しているので *_mask というラベルは
    103  *      使用していない.
     76 * *    (例) TCB_enatex_bit が 6 の時, TCB_enatex_mask は 40H
     77 *
     78 *        ちなみにM32C依存部の実装では, 特定ビットのチェックなどに
     79 *      ビット命令アドレッシングを使用しているので *_mask というラベルは
     80 *      使用していない.
    10481 */
    10582
    10683/*
    107  *      offset.inc の作り方(M32Cターゲット依存部向け)
    108  *
    109  *        GNU Cコンパイラを用いているターゲット依存部については,
    110  *      カーネルのトップディレクトリの下にある util というディレクトリの
    111  *      下に genoffset という perl スクリプトが用意されているので,
    112  *      特に手動で offset.h を作成するå¿
    113 è¦ã¯ãªã„.
    114  *        genoffset は GNU 開発環境を想定して作成されているので,
    115  *      生成されるアセンブリ言語疑似命令や生成規則の異なる他の
    116  *      Cコンパイラにはそのまま適用できない可能性がある.
    117  *        そこで, ここではWindows環境 向けの genoffset を用意せず,
    118  *      作り方をここに記し, 手作業で offset.inc を作成してもらうことと
    119  *      する. 以下にその方法を示す. なお, この方法はM32Cの開発環境や
    120  *      命令セットに依存しているため, 他のターゲットを使用している場合は
    121  *      そのまま適用できない.
    122  *
    123  *  1.  makeoffset.c というファイルからCコンパイラを使用して
    124  *      アセンブリ言語ファイル makeoffset.a30 を生成する.
    125  *      コンパイルオプションはカーネルコードに与えるものと同じ
    126  *      ものを与える.
    127  *      ルネサス製ツール TM を使用している場合は, プロジェクトエディタの
    128  *      生成手順ビューから makeoffset.a30 を選び, 右クリックメニューの
    129  *      「部分ビルド」を選択することで生成できる.
    130  *      もしくはコマンドプロンプトでメイクファイルと同じディレクトリに
    131  *      移動し, "make -f メイクファイル名 makeoffset.a30" を
    132  *      実行しても同様の結果が得られる. (メイクファイルはTMが使用して
    133  *      いるものと同じファイルを指定可能)
    134  *
    135  *  2.  å
    136 ˆã»ã©ã® 1. の作業で得られた, makeoffset.a30 ファイルから
    137  *      "! BEGIN XXXX"  ではじまり "! END" で終わっている部分を探す.
    138  *
    139  *      4箇所あり, それぞれ少しずつ異なるので順に説明する.
    140  *      (以下, 説明中ではアセンブリ言語ファイルのコメント行は省く)
    141  *
    142  * (1)  構造体のå
    143 ˆé ­ã‹ã‚‰ãƒ¡ãƒ³ãƒã¸ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆ
     84 *      offset.inc の作り方(M32Cターゲット依存部向け)
     85 *
     86 *        GNU Cコンパイラを用いているターゲット依存部については,
     87 *      カーネルのトップディレクトリの下にある util というディレクトリの
     88 *      下に genoffset という perl スクリプトが用意されているので,
     89 *      特に手動で offset.h を作成する必要はない.
     90 *        genoffset は GNU 開発環境を想定して作成されているので,
     91 *      生成されるアセンブリ言語疑似命令や生成規則の異なる他の
     92 *      Cコンパイラにはそのまま適用できない可能性がある.
     93 *        そこで, ここではWindows環境 向けの genoffset を用意せず,
     94 *      作り方をここに記し, 手作業で offset.inc を作成してもらうことと
     95 *      する. 以下にその方法を示す. なお, この方法はM32Cの開発環境や
     96 *      命令セットに依存しているため, 他のターゲットを使用している場合は
     97 *      そのまま適用できない.
     98 *
     99 *  1.  makeoffset.c というファイルからCコンパイラを使用して
     100 *      アセンブリ言語ファイル makeoffset.a30 を生成する.
     101 *      コンパイルオプションはカーネルコードに与えるものと同じ
     102 *      ものを与える.
     103 *      ルネサス製ツール TM を使用している場合は, プロジェクトエディタの
     104 *      生成手順ビューから makeoffset.a30 を選び, 右クリックメニューの
     105 *      「部分ビルド」を選択することで生成できる.
     106 *      もしくはコマンドプロンプトでメイクファイルと同じディレクトリに
     107 *      移動し, "make -f メイクファイル名 makeoffset.a30" を
     108 *      実行しても同様の結果が得られる. (メイクファイルはTMが使用して
     109 *      いるものと同じファイルを指定可能)
     110 *
     111 *  2.  先ほどの 1. の作業で得られた, makeoffset.a30 ファイルから
     112 *      "! BEGIN XXXX"  ではじまり "! END" で終わっている部分を探す.
     113 *
     114 *      4箇所あり, それぞれ少しずつ異なるので順に説明する.
     115 *      (以下, 説明中ではアセンブリ言語ファイルのコメント行は省く)
     116 *
     117 * (1)  構造体の先頭からメンバへのオフセット
    144118 *
    145119 *      ! BEGIN TCB_texptn
     
    147121 *      ! END
    148122 *
    149  *      上記"! BEGIN"の後ろの文字列がoffset.incで定義するシンボル名となる.
    150  *      そのシンボルの値は, 次行のbset命令の第2オペランドの値である
    151  *      0000000eHがそれに相当する. これが構造体のå
    152 ˆé ­ã‹ã‚‰texptnまでの
    153  *      オフセット値となる. したがってこの場合, offset.inc には
     123 *      上記"! BEGIN"の後ろの文字列がoffset.incで定義するシンボル名となる.
     124 *      そのシンボルの値は, 次行のbset命令の第2オペランドの値である
     125 *      0000000eHがそれに相当する. これが構造体の先頭からtexptnまでの
     126 *      オフセット値となる. したがってこの場合, offset.inc には
    154127 *      TCB_texptn      .equ    14
    155  *      という行を記述する.
    156  *
    157  * (2)  構造体のメンバが構造体で, その中のメンバに対するオフセット
    158  *
    159  *      TCB_sp についてもほぼ同様だが, sp はTCB構造体の直接の
    160  *      メンバでなくTCB構造体のメンバであるTSKCTXB構造体のメンバで
    161  *      ある点が異なる. それでも定義するシンボル名としては
    162  *      TCB_sp のように表現する. アセンブリ言語ファイルでは
     128 *      という行を記述する.
     129 *
     130 * (2)  構造体のメンバが構造体で, その中のメンバに対するオフセット
     131 *
     132 *      TCB_sp についてもほぼ同様だが, sp はTCB構造体の直接の
     133 *      メンバでなくTCB構造体のメンバであるTSKCTXB構造体のメンバで
     134 *      ある点が異なる. それでも定義するシンボル名としては
     135 *      TCB_sp のように表現する. アセンブリ言語ファイルでは
    163136 *
    164137 *      ! BEGIN TCB_sp
     
    170143 *      ! END *
    171144 *
    172  *      のようになり,14H(=20) が求める値なのでoffset.inc には次のように
    173  *      記述する.
     145 *      のようになり,14H(=20) が求める値なのでoffset.inc には次のように
     146 *      記述する.
    174147 *
    175148 *      TCB_sp  .equ    20
    176149 *
    177  * (3)  メンバが関数へのポインタであった場合
    178  *
    179  *      次は TCB_pc の場合.
     150 * (3)  メンバが関数へのポインタであった場合
     151 *
     152 *      次は TCB_pc の場合.
    180153 *
    181154 *      ! BEGIN TCB_pc
     
    184157 *      ! END
    185158 *
    186  *      pc も sp と同じく, TCB構造体の直接のメンバではないが
    187  *      TCB_pc と表現している. これは関数のアドレスを格納する変数なので,
     159 *      pc も sp と同じく, TCB構造体の直接のメンバではないが
     160 *      TCB_pc と表現している. これは関数のアドレスを格納する変数なので,
    188161 *      (((TCB *)0)->tskctxb.pc)();
    189  *      として関数呼び出しのように記述すると上記のようなアセンブリ言語
    190  *      コードを出力する. シンボル定義する際のシンボル名は今までと
    191  *      同じく, TCB_pc とする.
    192  *      求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l
    193  *      命令の結果から   00000018H(=24) となる.
    194  *      したがって, offset.inc には次のように記述する.
     162 *      として関数呼び出しのように記述すると上記のようなアセンブリ言語
     163 *      コードを出力する. シンボル定義する際のシンボル名は今までと
     164 *      同じく, TCB_pc とする.
     165 *      求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l
     166 *      命令の結果から         00000018H(=24) となる.
     167 *      したがって, offset.inc には次のように記述する.
    195168 *
    196169 *      TCB_pc  .equ    24
    197170 *
    198  * (4)  構造体のメンバがビットフィールドでそのビット位置も知りたい場合
     171 * (4)  構造体のメンバがビットフィールドでそのビット位置も知りたい場合
    199172 *
    200173 *      ! BEGIN TCB_enatex
     
    202175 *      ! END
    203176 *
    204  *      今までと同様, BEGIN の後の文字列をシンボル名とする.
    205  *      ここでのTCB_enatexの値は構造体のå
    206 ˆé ­ã‹ã‚‰ãƒ“ットフィールドを含むバ
    207  *      イトまでのオフセットで, M32Cのビット命令アドレッシングは指定でき
    208  *      るビット位置が0から7の間に収まるようにアクセスするアドレスに適当
    209  *      数が加えられるので cH+1(=13) となっている. また, ビットフィールド
    210  *      中の最下位ビットからのビット位置は 6となる.
    211  *      以上より次のように書くことができる.
     177 *      今までと同様, BEGIN の後の文字列をシンボル名とする.
     178 *      ここでのTCB_enatexの値は構造体の先頭からビットフィールドを含むバ
     179 *      イトまでのオフセットで, M32Cのビット命令アドレッシングは指定でき
     180 *      るビット位置が0から7の間に収まるようにアクセスするアドレスに適当
     181 *      数が加えられるので cH+1(=13) となっている. また, ビットフィールド
     182 *      中の最下位ビットからのビット位置は 6となる.
     183 *      以上より次のように書くことができる.
    212184 *
    213185 *              TCB_enatex      .equ    13
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_cfg1_out.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    11/*
    2  *              cfg1_out.cのリンクにå¿
    3 è¦ãªã‚¹ã‚¿ãƒ–の定義
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    43 */
    54
     
    2120
    2221/*
    23  *  オフセットファイルを生成するための定義
     22 *  オフセットファイルを生成するための定義
    2423 */
    2524const uint8_t   MAGIC_1 = 0x12;
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_check.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス3の生成スクリプトのコア依存部(ARM用)
     3#               パス3の生成スクリプトのコア依存部(ARM用)
    44#
    55#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
     
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/kernel_check.trb")
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    1010 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111 *
    12  *  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15  *  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30  *      と.
    31  *    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35  *    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38  *        報告すること.
    39  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40  *      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44  *      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46  *      å
    47 è²¬ã™ã‚‹ã“と.
    48  *
    49  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54  *  の責任を負わない.
     12 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
     34 *
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    5540 *
    5641 *  @(#) $Id$
     
    5843
    5944/*
    60  *              プロセッサ依存モジュール(RX630用)
     45 *              プロセッサ依存モジュール(RX630用)
    6146 */
    6247
     
    6651
    6752/*
    68  *  割込み発生回数を保存する変数
     53 *  割込み発生回数を保存する変数
    6954 */
    7055uint16_t        intnest;
    7156
    7257/*
    73  *  CPUロックフラグ実現のための変数
     58 *  CPUロックフラグ実現のための変数
    7459 */
    7560#if TIPM_LOCK != -15
    76 bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
    77 uint32_t        saved_ipl;              /* 割込み優å
    78 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     61bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
     62uint32_t        saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    7963#endif  /* TIPM_LOCK != -15     */
    8064
    8165
    8266/*
    83  *  プロセッサ依存の初期化
     67 *  プロセッサ依存の初期化
    8468 */
    8569void
     
    8771{
    8872        /*
    89          *  割込み発生回数の初期化
    90          *
    91          *  スタートアップはå
    92 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    93 ‹ & 非タスクコンテキスト
    94          *  にて動作するため, 非タスクコンテキストに偽è£
    95 ã™ã‚‹.
     73         *  割込み発生回数の初期化
     74         *
     75         *  スタートアップは全割込みロック状態 & 非タスクコンテキスト
     76         *  にて動作するため, 非タスクコンテキストに偽装する.
    9677         */
    9778        intnest = 1U;
     
    9980#if TIPM_LOCK != -15
    10081        /*
    101          *  CPUロックフラグ実現のための変数の初期化
     82         *  CPUロックフラグ実現のための変数の初期化
    10283         */
    10384        lock_flag = true;
     
    10889
    10990/*
    110  *  プロセッサ依存の終了処理
     91 *  プロセッサ依存の終了処理
    11192 */
    11293void
     
    11495{
    11596        /*
    116          *  特にå¿
    117 è¦ãªå‡¦ç†ã¯ãªã„
    118          */
    119 }
    120 
    121 
    122 /*
    123  *  CPU例外の発生状況のログ出力
     97         *  特に必要な処理はない
     98         */
     99}
     100
     101
     102/*
     103 *  CPU例外の発生状況のログ出力
    124104 *
    125  *  CPU例外ハンドラの中から,CPU例外æƒ
    126 å ±ãƒã‚¤ãƒ³ã‚¿ï¼ˆp_excinf)を引数とし
    127  *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
     105 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     106 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    128107 */
    129108#ifdef SUPPORT_XLOG_SYS
     
    156135
    157136/*
    158  *  割込み要求ラインの属性の設定
     137 *  割込み要求ラインの属性の設定
    159138 *
    160  *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
    161  *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
    162  *  にすべきであろう.
     139 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     140 *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
     141 *  にすべきであろう.
    163142 */
    164143void
     
    181160
    182161        /*
    183          *  割込みのマスク
    184          *
    185          *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
    186          *  込み優å
    187 ˆåº¦ã®è¨­å®šã‚’行うのは危険なため,割込み属性にかかわらず,
    188          *  一旦マスクする.
     162         *  割込みのマスク
     163         *
     164         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     165         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     166         *  一旦マスクする.
    189167         */
    190168        ( void )x_disable_int( intno );
    191169
    192170        /*
    193          *  レベルトリガ/エッジトリガの設定
    194          *
    195          *  IRQのみサポートする
     171         *  レベルトリガ/エッジトリガの設定
     172         *
     173         *  IRQのみサポートする
    196174         */
    197175        if( INTNO_IRQ( intno ) != 0U ){
     
    212190                else{
    213191                        /*
    214                          *  コンフィギュレータにてチェックしているため,
    215                          *  ここへくることはありえない.
     192                         *  コンフィギュレータにてチェックしているため,
     193                         *  ここへくることはありえない.
    216194                         */
    217195                        irq_val = 0U;
     
    222200
    223201        /*
    224          *  割込みレベルの設定
    225          *
    226          *  割込み番号に対応したIPR値を設定する.
     202         *  割込みレベルの設定
     203         *
     204         *  割込み番号に対応したIPR値を設定する.
    227205         */
    228206        sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri);
    229207
    230208        /*
    231          *  割込みのマスク解除
     209         *  割込みのマスク解除
    232210         */
    233211        if( ( intatr & TA_ENAINT ) != 0U ){
     
    239217#ifndef OMIT_DEFAULT_INT_HANDLER
    240218/*
    241  *  未登録の割込みが発生した場合に呼び出される
     219 *  未登録の割込みが発生した場合に呼び出される
    242220 */
    243221void
     
    250228#ifndef OMIT_DEFAULT_EXC_HANDLER
    251229/*
    252  *  未登録の例外が発生した場合に呼び出される
     230 *  未登録の例外が発生した場合に呼び出される
    253231 */
    254232void
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    1111 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1212 *
    13  *  上記著作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    15  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    16  *  変・再é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    20  *      スコード中に含まれていること.
    21  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22  *      用できる形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25  *      è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27  *      の無保証規定を掲載すること.
    28  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29  *      用できない形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31  *      と.
    32  *    (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    36  *    (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39  *        報告すること.
    40  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41  *      害からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    45  *      由に基づく請求からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47  *      å
    48 è²¬ã™ã‚‹ã“と.
     13 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    4935 *
    50  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    51 ãŠ
    52  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    54  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    55  *  の責任を負わない.
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    5641 *
    5742 *  @(#) $Id$
     
    5944
    6045/*
    61  *              プロセッサ依存モジュール(RX630用)
    62  *
    63  *  このインクルードファイルは,target_config.h(または,そこからインク
    64  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    65  *  直接インクルードしてはならない.
     46 *              プロセッサ依存モジュール(RX630用)
     47 *
     48 *  このインクルードファイルは,target_config.h(または,そこからインク
     49 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     50 *  直接インクルードしてはならない.
    6651 */
    6752
     
    7055
    7156/*
    72  *  プロセッサの特殊命令のインライン関数定義
     57 *  プロセッサの特殊命令のインライン関数定義
    7358 */
    7459#include "prc_insn.h"
     
    7863
    7964/*
    80  *  非タスクコンテキスト用のスタック初期値
     65 *  非タスクコンテキスト用のスタック初期値
    8166 */
    8267
     
    8469
    8570/*
    86  *  タスクコンテキストブロックの定義
     71 *  タスクコンテキストブロックの定義
    8772 */
    8873typedef struct task_context_block {
    89         void    *sp;            /* スタックポインタ */
    90         FP              pc;                     /* プログラムカウンタ */
     74        void    *sp;            /* スタックポインタ */
     75        FP              pc;                     /* プログラムカウンタ */
    9176} TSKCTXB;
    9277
    9378
    9479/*
    95  *  割込み発生回数を保存する変数
     80 *  割込み発生回数を保存する変数
    9681 */
    9782extern uint16_t intnest;
     
    10085
    10186/*
    102  *  CPUロック状æ
    103 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    104 ˆåº¦ãƒžã‚¹ã‚¯
    105  *
    106  *  TIPM_LOCKは,CPUロック状æ
    107 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    108 ˆåº¦ãƒžã‚¹ã‚¯ï¼Œã™ãªã‚ã¡ï¼Œã‚«ãƒ¼ãƒ
    109  *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
    110  *
    111  *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
    112  *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
    113  *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    114  *  設けないことになる(この場合には-15に設定することを推奨する).
     87 *  CPUロック状態での割込み優先度マスク
     88 *
     89 *  TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ
     90 *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
     91 *
     92 *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
     93 *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
     94 *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     95 *  設けないことになる(この場合には-15に設定することを推奨する).
    11596 */
    11697#ifndef TIPM_LOCK
     
    121102
    122103/*
    123  *  TOPPERS標準割込み処理モデルの実現
    124  */
    125 /*
    126  *  コンテキストの参ç
    127 §
    128  *
    129  *  RXでは,割込みの戻りå
    130 ˆãŒã‚¿ã‚¹ã‚¯ã‹ã©ã†ã‹ã‚’判断するために intnest
    131  *  を使用している.これを用いてコンテキストを判断する.
     104 *  TOPPERS標準割込み処理モデルの実現
     105 */
     106/*
     107 *  コンテキストの参照
     108 *
     109 *  RXでは,割込みの戻り先がタスクかどうかを判断するために intnest
     110 *  を使用している.これを用いてコンテキストを判断する.
    132111 */
    133112Inline bool_t
    134113sense_context( void )
    135114{
    136         /*  ネストカウンタ0より大なら非タスクコンテキスト  */
     115        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    137116        return ( intnest > 0U );
    138117}
     
    140119
    141120/*
    142  *  CPUロックフラグ実現のための変数
    143  *
    144  *  これらの変数は,CPUロック状æ
    145 ‹ã®æ™‚のみ書き換えてよいものとする.
     121 *  CPUロックフラグ実現のための変数
     122 *
     123 *  これらの変数は,CPUロック状態の時のみ書き換えてよいものとする.
    146124 */
    147125#if TIPM_LOCK != -15
    148 extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
    149 extern uint32_t saved_ipl;              /* 割込み優å
    150 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     126extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
     127extern uint32_t saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    151128#endif  /* TIPM_LOCK != -15     */
    152129
     
    155132
    156133/*
    157  *  割込み優å
    158 ˆåº¦ãƒžã‚¹ã‚¯ã®å¤–部表現とå†
    159 éƒ¨è¡¨ç¾ã®å¤‰æ›
    160  *
    161  *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
    162  *  24~27ビット目の4ビットに割込み優å
    163 ˆåº¦ãƒ¬ãƒ™ãƒ«ï¼ˆIPL)が置かれている.
    164  *  カーネル管理外割込みを実è£
    165 ã™ã‚‹å ´åˆã«IPLを使用した制御を行う.
    166  *  カーネルは割込み優å
    167 ˆåº¦ãƒžã‚¹ã‚¯ï¼ˆ-1から連続した負の値)で管理されて
    168  *  いるためIPLとの変換がå¿
    169 è¦ã¨ãªã‚‹ï¼Ž
    170  */
    171 #define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに */
    172 #define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに */
    173 
    174 
    175 /*
    176  *  CPUロック状æ
    177 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    178 ˆåº¦ãƒžã‚¹ã‚¯ã®IPL
     134 *  割込み優先度マスクの外部表現と内部表現の変換
     135 *
     136 *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
     137 *  24~27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている.
     138 *  カーネル管理外割込みを実装する場合にIPLを使用した制御を行う.
     139 *  カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて
     140 *  いるためIPLとの変換が必要となる.
     141 */
     142#define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに     */
     143#define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに     */
     144
     145
     146/*
     147 *  CPUロック状態での割込み優先度マスクのIPL
    179148 */
    180149#define IPL_LOCK                ( IPM_TO_IPL( TIPM_LOCK ) )
    181150
    182151/*
    183  *  TIPM_ENAALL(割込み優å
    184 ˆåº¦ãƒžã‚¹ã‚¯å
    185 ¨è§£é™¤ï¼‰ã®IPL
     152 *  TIPM_ENAALL(割込み優先度マスク全解除)のIPL
    186153 */
    187154#define IPL_ENAALL              ( IPM_TO_IPL( TIPM_ENAALL ) )
     
    191158
    192159/*
    193  *  割込み要因毎のレベル & 属性定義テーブル
    194  *  (テンプレートファイルによる出力)
     160 *  割込み要因毎のレベル & 属性定義テーブル
     161 *  (テンプレートファイルによる出力)
    195162 */
    196163typedef struct cfg_int_info {
     
    203170
    204171/*
    205  *  割込み番号の範囲の判定
    206  *
    207  *  割込み番号が有効な値か厳密にチェックするため,
    208  *  コンフィギュレータ出力テーブルを参ç
    209 §ã™ã‚‹.
     172 *  割込み番号の範囲の判定
     173 *
     174 *  割込み番号が有効な値か厳密にチェックするため,
     175 *  コンフィギュレータ出力テーブルを参照する.
    210176 */
    211177#define VALID_INTNO( intno )    \
     
    214180#define VALID_INTNO_CFGINT( intno )     VALID_INTNO( intno )
    215181
    216 /* cre_intで有効な割込み番号の指定  */
     182/* cre_intで有効な割込み番号の指定  */
    217183#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
    218184
    219 /* cre_isrで有効な割込み番号の指定  */
     185/* cre_isrで有効な割込み番号の指定  */
    220186#define VALID_INTNO_CREISR(intno)       VALID_INTNO_CFGINT((intno))
    221187
    222188
    223189/*
    224  *  割込み制御レジスタ関連の定義
     190 *  割込み制御レジスタ関連の定義
    225191 */
    226192#define IRQ_POSEDGE                     ( 0x08U )
     
    231197
    232198/*
    233  *  CPUロック状æ
    234 ‹ã¸ã®ç§»è¡Œ
    235  *
    236  *  IPM(ハードウェアの割込み優å
    237 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,saved_iipmに保存し,カー
    238  *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
    239  *  に設定する.また,lock_flagをTRUEにする.
    240  *
    241  *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
    242  *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
    243  *  上の割込み優å
    244 ˆåº¦ãƒžã‚¹ã‚¯ãŒï¼ŒTIPM_LOCKと同じかそれより高いレベルに設定
    245  *  されている状æ
    246 ‹ã«ã‚たる.
    247  *
    248  *  この関数は,CPUロック状æ
    249 ‹ï¼ˆlock_flagがTRUEの状æ
    250 ‹ï¼‰ã§å‘¼ã°ã‚Œã‚‹ã“とは
    251  *  ないものと想定している.
     199 *  CPUロック状態への移行
     200 *
     201 *  IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー
     202 *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
     203 *  に設定する.また,lock_flagをTRUEにする.
     204 *
     205 *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
     206 *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
     207 *  上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定
     208 *  されている状態にあたる.
     209 *
     210 *  この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは
     211 *  ないものと想定している.
    252212 */
    253213Inline void
     
    260220
    261221        /*
    262          *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
    263          *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
    264          *  起動された割込み処理でsaved_iplが変更される可能性があるためで
    265          *  ある.
     222         *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
     223         *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
     224         *  起動された割込み処理でsaved_iplが変更される可能性があるためで
     225         *  ある.
    266226         */
    267227        ipl = current_ipl();
     
    280240
    281241/*
    282  *  CPUロック状æ
    283 ‹ã®è§£é™¤
    284  *
    285  *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優å
    286 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,
    287  *  saved_iipmに保存した値に戻す.
    288  *
    289  *  この関数は,CPUロック状æ
    290 ‹ï¼ˆlock_flagがtrueの状æ
    291 ‹ï¼‰ã§ã®ã¿å‘¼ã°ã‚Œã‚‹ã‚‚
    292  *  のと想定している.
     242 *  CPUロック状態の解除
     243 *
     244 *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を,
     245 *  saved_iipmに保存した値に戻す.
     246 *
     247 *  この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも
     248 *  のと想定している.
    293249 */
    294250Inline void
     
    308264
    309265/*
    310  *  CPUロック状æ
    311 ‹ã®å‚ç
    312 §
     266 *  CPUロック状態の参照
    313267 */
    314268Inline bool_t
     
    327281
    328282/*
    329  * (モデル上の)割込み優å
    330 ˆåº¦ãƒžã‚¹ã‚¯ã®è¨­å®š
    331  *
    332  *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優å
    333 ˆåº¦ãƒž
    334  *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
    335  *  を設定し,さらに,ハードウェアの割込み優å
    336 ˆåº¦ãƒžã‚¹ã‚¯ã‚’,設定しようと
    337  *  した(モデル上の)割込み優å
    338 ˆåº¦ãƒžã‚¹ã‚¯ã¨TIPM_LOCKの高い方に設定する.
     283 * (モデル上の)割込み優先度マスクの設定
     284 *
     285 *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ
     286 *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
     287 *  を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと
     288 *  した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する.
    339289 */
    340290Inline void
     
    360310
    361311/*
    362  * (モデル上の)割込み優å
    363 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    364 §
    365  *
    366  *  CPUロックフラグがクリアされている時はハードウェアの割込み優å
    367 ˆåº¦ãƒž
    368  *  スクを,セットされている時はsaved_iipmを参ç
    369 §ã™ã‚‹ï¼Ž
     312 * (モデル上の)割込み優先度マスクの参照
     313 *
     314 *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
     315 *  スクを,セットされている時はsaved_iipmを参照する.
    370316 */
    371317Inline PRI
     
    391337
    392338/*
    393  *  割込み要求禁止フラグのセット
    394  *
    395  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    396  *  フラグをセットしようとした場合には,FALSEを返す.
     339 *  割込み要求禁止フラグのセット
     340 *
     341 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     342 *  フラグをセットしようとした場合には,FALSEを返す.
    397343 */
    398344Inline bool_t
     
    400346{
    401347        /*
    402          *  レベル定義が0である場合はCFG_INTされていない
     348         *  レベル定義が0である場合はCFG_INTされていない
    403349         */
    404350        if( cfg_int_table[intno].intpri == 0 ){
     
    416362
    417363/*
    418  *  割込み要求禁止フラグのクリア
    419  *
    420  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    421  *  フラグをクリアしようとした場合には,FALSEを返す.
     364 *  割込み要求禁止フラグのクリア
     365 *
     366 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     367 *  フラグをクリアしようとした場合には,FALSEを返す.
    422368 */
    423369Inline bool_t
     
    425371{
    426372        /*
    427          *  レベル定義が0である場合はCFG_INTされていない
     373         *  レベル定義が0である場合はCFG_INTされていない
    428374         */
    429375        if( cfg_int_table[intno].intpri == 0 ){
     
    441387
    442388/*
    443  *  割込み要求のクリア
     389 *  割込み要求のクリア
    444390 */
    445391Inline void
     
    454400
    455401/*
    456  *  割込み要求のチェック
     402 *  割込み要求のチェック
    457403 */
    458404Inline bool_t
     
    460406{
    461407        /*
    462          *  割込み要求レジスタは0 or 1でしかないため,
    463          *  そのままの値を返す.
     408         *  割込み要求レジスタは0 or 1でしかないため,
     409         *  そのままの値を返す.
    464410         */
    465411        return ( *IR_REG(intno) );
     
    471417
    472418/*
    473  *  割込み要求ラインの属性の設定
     419 *  割込み要求ラインの属性の設定
    474420 */
    475421extern void     x_config_int( INTNO intno, ATR intatr, PRI intpri );
     
    477423
    478424/*
    479  *  割込みハンドラのå
    480 ¥å£ã§å¿
    481 è¦ãªIRC操作
     425 *  割込みハンドラの入口で必要なIRC操作
    482426 *
    483427 */
     
    488432
    489433        /*
    490          *  レベル検出の割込みに対しては割込みステータス
    491          *  フラグをクリアする.
     434         *  レベル検出の割込みに対しては割込みステータス
     435         *  フラグをクリアする.
    492436         */
    493437        if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){
    494438                if( *IR_REG(intno) > 0U ){
    495439                        /*
    496                          *  外部割込みの場合, IRQ端子がHighに戻っている
    497                          *  ことを確認する旨が記載されているが, 省略する.
     440                         *  外部割込みの場合, IRQ端子がHighに戻っている
     441                         *  ことを確認する旨が記載されているが, 省略する.
    498442                         */
    499443                //      *ir_reg_addr[intno] = 0U;
    500444
    501445                        /*
    502                          *  ハードウェアマニュアルに0になったことを
    503                          *  確認する旨が記載あるため, レジスタ値を読み出す.
     446                         *  ハードウェアマニュアルに0になったことを
     447                         *  確認する旨が記載あるため, レジスタ値を読み出す.
    504448                         */
    505449                //      reg = *ir_reg_addr[intno];
     
    510454
    511455/*
    512  *  割込みハンドラの出口でå¿
    513 è¦ãªIRC操作
     456 *  割込みハンドラの出口で必要なIRC操作
    514457 *
    515458 */
     
    517460i_end_int( INTNO intno )
    518461{
    519         /* 特に行うべき処理はない */
    520 }
    521 
    522 
    523 /*
    524  *  最高優å
    525 ˆé †ä½ã‚¿ã‚¹ã‚¯ã¸ã®ãƒ‡ã‚£ã‚¹ãƒ‘ッチ(prc_support.a30)
    526  *
    527  *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
    528  *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状æ
    529 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッ
    530  *  チ許可状æ
    531 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    532 ˆåº¦ãƒžã‚¹ã‚¯å
    533 ¨è§£é™¤çŠ¶æ
    534 ‹ã§å‘¼ã³å‡ºã•ãª
    535  *  ければならない.
     462        /* 特に行うべき処理はない */
     463}
     464
     465
     466/*
     467 *  最高優先順位タスクへのディスパッチ(prc_support.a30)
     468 *
     469 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     470 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     471 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     472 *  ければならない.
    536473 */
    537474extern void     dispatch( void );
    538475
    539476/*
    540  *  ディスパッチャの動作開始(prc_support.a30)
    541  *
    542  *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
    543  *  みを禁止した状æ
    544 ‹ï¼ˆå
    545 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    546 ‹ã¨åŒç­‰ã®çŠ¶æ
    547 ‹ï¼‰ã§å‘¼ã³å‡ºã•ãªã‘れば
    548  *  ならない.
     477 *  ディスパッチャの動作開始(prc_support.a30)
     478 *
     479 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     480 *  みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ
     481 *  ならない.
    549482 */
    550483extern void     start_dispatch( void ) NoReturn;
    551484
    552485/*
    553  *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
    554  *
    555  *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
    556  *  スト・CPUロック状æ
    557 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    558 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    559 ˆ
    560  *  度マスクå
    561 ¨è§£é™¤çŠ¶æ
    562 ‹ã§å‘¼ã³å‡ºã•ãªã‘ればならない.
     486 *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
     487 *
     488 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     489 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     490 *  度マスク全解除状態で呼び出さなければならない.
    563491 */
    564492#define _kernel_exit_and_dispatch();    \
     
    569497
    570498/*
    571  *  カーネルの終了処理の呼出し(prc_support.a30)
    572  *
    573  *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
    574  *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
    575  *  す.
     499 *  カーネルの終了処理の呼出し(prc_support.a30)
     500 *
     501 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     502 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     503 *  す.
    576504 */
    577505extern void call_exit_kernel( void ) NoReturn;
    578506
    579507/*
    580  *  タスクコンテキストの初期化
    581  *
    582  *  タスクが休止状æ
    583 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    584 ‹ã«ç§»è¡Œã™ã‚‹æ™‚に呼ばれる.この時点
    585  *  でスタック領域を使ってはならない.
    586  *
    587  *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
    588  *  この時点ではTCBが定義されていないためである.
     508 *  タスクコンテキストの初期化
     509 *
     510 *  タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点
     511 *  でスタック領域を使ってはならない.
     512 *
     513 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     514 *  この時点ではTCBが定義されていないためである.
    589515 */
    590516extern void     start_r( void );
     
    594520        {                                                                                                                                                                       \
    595521                                                                                                                                                                                \
    596                 /*  スタックポインタ初期値の設定  */                                                                                      \
     522                /*  スタックポインタ初期値の設定  */                                                                                  \
    597523                ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) +    \
    598524                                                                ( p_tcb )->p_tinib->stksz );                                                    \
    599                 /* 起動番地の設定 */                                                                                                                     \
     525                /* 起動番地の設定 */                                                                                                                   \
    600526                ( p_tcb )->tskctxb.pc = ( FP ) start_r;                                                                                 \
    601527        }                                                                                                                                                                       \
     
    604530
    605531/*
    606  *  calltexは使用しない
     532 *  calltexは使用しない
    607533 */
    608534#define OMIT_CALLTEX
     
    610536
    611537/*
    612  *  割込みハンドラの設定
    613  *
    614  *  RX630はROMに割込みベクタをé
    615 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    616 ã™ã‚‹ï¼Ž
     538 *  割込みハンドラの設定
     539 *
     540 *  RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する.
    617541 */
    618542Inline void
     
    623547
    624548/*
    625  *  CPU例外ハンドラの設定
    626  *
    627  *  RX630はROMに例外ベクタをé
    628 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    629 ã™ã‚‹ï¼Ž
     549 *  CPU例外ハンドラの設定
     550 *
     551 *  RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する.
    630552 */
    631553Inline void
     
    636558
    637559/*
    638  *  割込み/例外ハンドラのå
    639 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
    640  *
    641  *  テンプレートファイルにより生成するため空マクロとする.
     560 *  割込み/例外ハンドラの入口処理の生成マクロ
     561 *
     562 *  テンプレートファイルにより生成するため空マクロとする.
    642563 */
    643564#define HDR_ENTRY(hdr, intexc_num , tobejmp)
    644565
    645566/*
    646  *  割込みハンドラのå
    647 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     567 *  割込みハンドラの入口処理の生成マクロ
    648568 */
    649569#define _INT_ENTRY(inhno, inthdr)                               _kernel_##inthdr##_##inhno##_entry
     
    656576
    657577/*
    658  *  CPU例外ハンドラのå
    659 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     578 *  CPU例外ハンドラの入口処理の生成マクロ
    660579 */
    661580#define _EXC_ENTRY(excno , exchdr)                                      _kernel_##exchdr##_##excno##_entry
     
    668587
    669588/*
    670  *  CPU例外の発生した時のコンテキストの参ç
    671 §
    672  *
    673  *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
    674  *  そうでない時にtrueを返す.
     589 *  CPU例外の発生した時のコンテキストの参照
     590 *
     591 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
     592 *  そうでない時にtrueを返す.
    675593 */
    676594Inline bool_t
     
    678596{
    679597        /*
    680          *  ネストカウンタが1より大なら非タスクコンテキスト
     598         *  ネストカウンタが1より大なら非タスクコンテキスト
    681599         */
    682600        return( intnest > 1U );
     
    686604
    687605/*
    688  *  CPU例外æƒ
    689 å ± p_excinf から PSW の値を取得するためのオフセット値
    690  *  EXCNO + ACC + FPSW + R1~R15 + PC
     606 *  CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値
     607 *  EXCNO + ACC + FPSW + R1~R15 + PC
    691608 */
    692609#define EXC_GET_PSW_OFFSET      (4+8+4+60+4)
     
    695612
    696613/*
    697  *  CPU例外の発生した時のIPLの参ç
    698 §
     614 *  CPU例外の発生した時のIPLの参照
    699615 */
    700616Inline uint32_t
     
    714630
    715631/*
    716  *  CPU例外の発生した時のコンテキストと割込みのマスク状æ
    717 ‹ã®å‚ç
    718 §
    719  *
    720  *  CPU例外の発生した時のシステム状æ
    721 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    722  *  ンテキストであり,å
    723 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    724 ‹ã§ãªãï¼ŒCPUロック状æ
    725 ‹ã§ãªãï¼Œï¼ˆãƒ¢
    726  *  デル上の)割込み優å
    727 ˆåº¦ãƒžã‚¹ã‚¯å
    728 ¨è§£é™¤çŠ¶æ
    729 ‹ã§ã‚る時にtrue,そうでない時
    730  *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
    731  *  にもFALSEを返す).
     632 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     633 *
     634 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     635 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ
     636 *  デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時
     637 *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
     638 *  にもFALSEを返す).
    732639 * 
    733  *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
     640 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    734641 *                         (else)           IPL < IPL_LOCK
    735  *  タスクコンテキストである→intnest == 0
    736  *  å
    737 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ã§ãªã„→ Iフラグ == 1
    738  *  割込み優å
    739 ˆåº¦ãƒžã‚¹ã‚¯ãŒå
    740 ¨è§£é™¤â†’IPL == 0
     642 *  タスクコンテキストである→intnest == 0
     643 *  全割込みロックでない→ Iフラグ == 1
     644 *  割込み優先度マスクが全解除→IPL == 0
    741645 * 
    742646 * 
     
    751655
    752656/*
    753  *  CPU例外の発生した時のコンテキストと割込み/CPUロック状æ
    754 ‹ã®å‚ç
    755 §
    756  *
    757  *  CPU例外の発生した時のシステム状æ
    758 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    759  *  ンテキストであり,å
    760 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    761 ‹ã§ãªãï¼ŒCPUロック状æ
    762 ‹ã§ãªã„時に
    763  *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
    764  *  理中で発生した場合にもfalseを返す).
     657 *  CPU例外の発生した時のコンテキストと割込み/CPUロック状態の参照
     658 *
     659 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     660 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でない時に
     661 *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
     662 *  理中で発生した場合にもfalseを返す).
    765663 * 
    766  *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
     664 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    767665 *                         (else)           IPL < TIPM_LOCK
    768  *  タスクコンテキストである→intnest < 1
    769  *  å
    770 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ã§ãªã„→ Iフラグ == 1
    771  *  CPUロック状æ
    772 ‹ã§ãªã„→(TIPM_LOCK== -15) Iフラグ == 1
     666 *  タスクコンテキストである→intnest < 1
     667 *  全割込みロックでない→ Iフラグ == 1
     668 *  CPUロック状態でない→(TIPM_LOCK== -15) Iフラグ == 1
    773669 *                         (else)           IPL < TIPM_LOCK
    774670 */
     
    788684
    789685/*
    790  *  プロセッサ依存の初期化
     686 *  プロセッサ依存の初期化
    791687 */
    792688extern void     prc_initialize( void );
    793689
    794690/*
    795  *  プロセッサ依存の終了時処理
     691 *  プロセッサ依存の終了時処理
    796692 */
    797693extern void     prc_terminate( void );
     
    800696#ifndef OMIT_DEFAULT_INT_HANDLER
    801697/*
    802  *  未登録の割込みが発生した場合に呼び出される
     698 *  未登録の割込みが発生した場合に呼び出される
    803699 */
    804700void default_int_handler( void );
     
    807703#ifndef OMIT_DEFAULT_EXC_HANDLER
    808704/*
    809  *  未登録の例外が発生した場合に呼び出される
     705 *  未登録の例外が発生した場合に呼び出される
    810706 */
    811707void default_exc_handler( void );
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_insn.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    1010 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111 *
    12  *  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15  *  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30  *      と.
    31  *    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35  *    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38  *        報告すること.
    39  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40  *      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44  *      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46  *      å
    47 è²¬ã™ã‚‹ã“と.
     12 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    4834 *
    49  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54  *  の責任を負わない.
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    5540 *
    5641 *  @(#) $Id$
     
    5843
    5944/*
    60  *              プロセッサの特殊命令のインライン関数定義(RX630用)
     45 *              プロセッサの特殊命令のインライン関数定義(RX630用)
    6146 */
    6247
     
    7661
    7762/*
    78  *  Iフラグ, IPLを取得するためのマクロ定義
     63 *  Iフラグ, IPLを取得するためのマクロ定義
    7964 */
    8065#define PSW_I_MASK              ( 0x00010000UL )
     
    8469
    8570/*
    86  *  Iフラグ, IPLを取得するためのマクロ定義
     71 *  Iフラグ, IPLを取得するためのマクロ定義
    8772 */
    8873#define PSW_I_MASK              ( 0x00010000 )
     
    9479
    9580/*
    96  *  プロセッサステータスレジスタ(PSW)の現在値の読出し
     81 *  プロセッサステータスレジスタ(PSW)の現在値の読出し
    9782 */
    9883static uint32_t
     
    10691
    10792/*
    108  *  プロセッサステータスレジスタ(PSW)へ設定
     93 *  プロセッサステータスレジスタ(PSW)へ設定
    10994 */
    11095static void
     
    116101
    117102/*
    118  *  IPLの現在値の読出し
     103 *  IPLの現在値の読出し
    119104 */
    120105Inline uint32_t
     
    126111
    127112/*
    128  *  IPLへ設定
     113 *  IPLへ設定
    129114 */
    130115Inline void
     
    136121
    137122/*
    138  *  NMIを除くすべての割込みの禁止
     123 *  NMIを除くすべての割込みの禁止
    139124 */
    140125static void
     
    146131
    147132/*
    148  *  NMIを除くすべての割込みの許可
     133 *  NMIを除くすべての割込みの許可
    149134 */
    150135static void
     
    156141
    157142/*
    158  *  エンディアン変換 16bit
     143 *  エンディアン変換 16bit
    159144 */
    160145static uint16_t
     
    166151
    167152/*
    168  *  エンディアン変換 32bit
     153 *  エンディアン変換 32bit
    169154 */
    170155static uint32_t
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    66 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *              kernel.hのプロセッサ依存部(RX630用)
     41 *              kernel.hのプロセッサ依存部(RX630用)
    5742 *
    58  *  このインクルードファイルは,target_kernel.h(または,そこからインク
    59  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    60  *  直接インクルードしてはならない.
     43 *  このインクルードファイルは,target_kernel.h(または,そこからインク
     44 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     45 *  直接インクルードしてはならない.
    6146 */
    6247
     
    6550
    6651/*
    67  *  カーネル本体をコンパイルするためのマクロ定義
     52 *  カーネル本体をコンパイルするためのマクロ定義
    6853 */
    6954//#define ALLFUNC
     
    7156
    7257/*
    73  *  サポートする機能の定義
     58 *  サポートする機能の定義
    7459 */
    75 #define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
    76 #define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
     60#define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
     61#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
    7762
    7863/*
    79  *  カーネル管理の割込み優å
    80 ˆåº¦ã®ç¯„囲
     64 *  カーネル管理の割込み優先度の範囲
    8165 *
    82  *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優å
    83 ˆåº¦
    84  *  を持つものをカーネル管理外の割込みとするかを変更できる.
     66 *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度
     67 *  を持つものをカーネル管理外の割込みとするかを変更できる.
    8568 *
    86  *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
    87  *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
    88  *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    89  *  設けないことになる.
     69 *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
     70 *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
     71 *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     72 *  設けないことになる.
    9073 */
    9174#ifndef TMIN_INTPRI
    92 #define TMIN_INTPRI             ( -15 )         /* 割込み優å
    93 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
     75#define TMIN_INTPRI             ( -15 )         /* 割込み優先度の最小値(最高値)*/
    9476#endif /* TMIN_INTPRI */
    95 #define TMAX_INTPRI             ( -1 )          /* 割込み優å
    96 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰ */
     77#define TMAX_INTPRI             ( -1 )          /* 割込み優先度の最大値(最低値) */
    9778
    9879
    9980/*
    100  *  割込み属性の定義
     81 *  割込み属性の定義
    10182 */
    102 #define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
    103 #define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
    104 #define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
     83#define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
     84#define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
     85#define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
    10586
    106 #define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
     87#define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
    10788
    10889
    10990/*
    110  *  デフォルトの割込み/例外ハンドラの有無
     91 *  デフォルトの割込み/例外ハンドラの有無
    11192 */
    11293/*#define       OMIT_DEFAULT_INT_HANDLER*/
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
    47 #
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     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#   の責任を負わない.
    5439#
    5540#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    5742
    5843#
    59 #               ãƒ‘ス2の生成スクリプトのコア依存部(RX用)
    60 #
    61 
    62 #
    63 å‰²è¾¼ã¿ç•ªå·ã¨å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ã®å®šç¾©
    64 #
    65 #  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
     44#               パス2の生成スクリプトのコア依存部(RX用)
     45#
     46
     47#
     48割込み番号と割込みハンドラ番号の定義
     49#
     50#  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
    6651#
    6752$INTNO_VALID = [ 16, 21, 23, *(27..59), 62, *(64..79), 90, 91, 92, 93, 98, 102, *(106..112), 114, *(122..167), *(170..203), *(214..253) ]
     
    6954
    7055#
    71 ä¾‹å¤–番号の定義
    72 #
    73 å›ºå®šãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
    74 #  (予約領域も含む)
     56例外番号の定義
     57#
     58固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
     59#  (予約領域も含む)
    7560#
    7661
     
    7863
    7964#
    80 #  INT割込みの番号
     65#  INT割込みの番号
    8166#
    8267
     
    8469
    8570#
    86 å‰²è¾¼ã¿ç•ªå·ï¼Œå‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ï¼Œä¾‹å¤–番号の範囲
    87 #
    88 # (予約領域も含む)
     71割込み番号,割込みハンドラ番号,例外番号の範囲
     72#
     73# (予約領域も含む)
    8974#
    9075
     
    9479
    9580#
    96 #  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
     81#  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    9782#
    9883
     
    10287
    10388#
    104 #  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
     89#  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    10590#
    10691
     
    11095
    11196#
    112 #  CFG_INTで使用できる割込み番号と割込み優å
    113 ˆåº¦
     97#  CFG_INTで使用できる割込み番号と割込み優先度
    11498#
    11599
     
    119103
    120104#
    121 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã«å«ã¾ã‚Œã‚‹æ¨™æº–の割込み管理機能/例外管理機能の初期化処理を使用する
     105ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する
    122106#
    123107
     
    127111
    128112#
    129 ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚ºã®ãƒã‚§ãƒƒã‚¯æ–¹æ³•æŒ‡å®š
     113スタックサイズのチェック方法指定
    130114#
    131115
     
    134118
    135119#
    136 #  タスクスタックサイズの最小値
    137 #
    138 #  タスク起動時に4byte,
    139 #  割込みå
    140 ¥å£å‡¦ç†ã«ã¦48byte, CPU例外å
    141 ¥å£å‡¦ç†ã«ã¦84byte,
    142 #  であるため, 最小値は88byteとする.
     120#  タスクスタックサイズの最小値
     121#
     122#  タスク起動時に4byte,
     123#  割込み入口処理にて48byte, CPU例外入口処理にて84byte,
     124#  であるため, 最小値は88byteとする.
    143125#
    144126
     
    146128
    147129#
    148 å®šæ•°å®šç¾©
     130定数定義
    149131#
    150132
     
    152134
    153135#
    154 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆå®šç¾©ã®å‰²è¾¼ã¿è¦æ±‚ライン属性
     136ターゲット定義の割込み要求ライン属性
    155137#
    156138$TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL
    157139
    158140#
    159 # ターゲット依存の割込みハンドラ属性の定義
     141# ターゲット依存の割込みハンドラ属性の定義
    160142#
    161143
     
    164146
    165147#
    166 # カーネル管理外割込みハンドラは固定させないため,
     148# カーネル管理外割込みハンドラは固定させないため,
    167149# INTNO_FIX_KERNEL
    168150# INHNO_FIX_KERNEL
    169151# INHNO_FIX_NONKERNEL
    170152# INHNO_FIX_NONKERNEL
    171 # を定義しない.
     153# を定義しない.
    172154#
    173155
     
    176158
    177159#
    178 æ¨™æº–テンプレートファイルのインクルード
     160標準テンプレートファイルのインクルード
    179161#
    180162IncludeTrb("kernel/kernel.trb")
    181163
    182164#
    183 #  割込み番号から割込み優å
    184 ˆåº¦åŠã³å±žæ€§ã‚’取り出すテーブル
     165#  割込み番号から割込み優先度及び属性を取り出すテーブル
    185166#
    186167$kernelCfgC.comment_header("Interrupt Level and Attribute Table")
     
    201182
    202183#
    203 å‰²è¾¼ã¿ãƒ™ã‚¯ã‚¿åŠã³å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©å®šç¾©
     184割込みベクタ及び割込みハンドラ定義
    204185#
    205186$kernelCfgAsm.add(<<EOS)
    206187;
    207 ;  RX630アーキテクチャ依存出力ファイル
    208 ;
    209 å‰²è¾¼ã¿ãƒ™ã‚¯ã‚¿åŠã³å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©å®šç¾©
     188;  RX630アーキテクチャ依存出力ファイル
     189;
     190割込みベクタ及び割込みハンドラ定義
    210191;
    211192
     
    277258$kernelCfgAsm.append(<<EOS)
    278259;
    279 å¯å¤‰ãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     260可変ベクタテーブル
    280261;
    281262
     
    305286$kernelCfgAsm.append(<<EOS)
    306287;
    307 å›ºå®šãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     288固定ベクタテーブル
    308289;
    309290
     
    318299         .word   0FFFFFFFFH      ; OFS0
    319300         .space  010H
    320          .word   0FFFFFFFFH      ; 制御コード, IDコード1 - 3
    321          .word   0FFFFFFFFH      ; IDコード4 - 7
    322          .word   0FFFFFFFFH      ; IDコード8 - 11
    323          .word   0FFFFFFFFH      ; IDコード12 - 15
     301         .word   0FFFFFFFFH      ; 制御コード, IDコード1 - 3
     302         .word   0FFFFFFFFH      ; IDコード4 - 7
     303         .word   0FFFFFFFFH      ; IDコード8 - 11
     304         .word   0FFFFFFFFH      ; IDコード12 - 15
    324305EOS
    325306(12..30).each do |excnoVal|
     
    338319
    339320#
    340 å‰²è¾¼ã¿è¦æ±‚ライン属性に関するターゲット依存のエラーチェック
     321割込み要求ライン属性に関するターゲット依存のエラーチェック
    341322#
    342323$cfgData[:CFG_INT].each do |key, params|
    343   # IRQ割込み番号かどうかをチェック
     324  # IRQ割込み番号かどうかをチェック
    344325  if $INTNO_INT.include?(key)
    345     # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
     326    # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
    346327    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE
    347328      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    348329    end
    349     # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
     330    # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
    350331    if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE
    351332      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    352333    end
    353     # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     334    # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    354335    if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE
    355336      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    356337    end
    357     # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     338    # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    358339    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE
    359340      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    360341    end
    361342  else
    362     # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
     343    # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
    363344    if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0
    364345      error_illegal_sym("E_RSATR", params, :intatr, :intno)
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_offset.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆç”¨Rubyテンプレート(ARM用)
     3#               オフセットファイル生成用Rubyテンプレート(ARM用)
    44#
    55#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/genoffset.trb")
    1212
    1313#
    14 ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å®šç¾©ã®ç”Ÿæˆ
     14フィールドのオフセットの定義の生成
    1515#
    1616GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sil.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    9  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    10  *  変・再é
    11 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    12  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    13  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    14  *      スコード中に含まれていること.
    15  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    16  *      用できる形で再é
    17 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    18 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    19  *      è€
    20 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    21  *      の無保証規定を掲載すること.
    22  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    23  *      用できない形で再é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    25  *      と.
    26  *    (a) 再é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    29  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    30  *    (b) 再é
    31 å¸ƒã®å½¢æ
    32 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    33  *        報告すること.
    34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    35  *      害からも,上記著作権è€
    36 ãŠã‚ˆã³TOPPERSプロジェクトをå
    37 è²¬ã™ã‚‹ã“と.
    38  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    39  *      由に基づく請求からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトを
    41  *      å
    42 è²¬ã™ã‚‹ã“と.
    43  *
    44  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    45 ãŠ
    46  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    47  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    48  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    49  *  の責任を負わない.
     7 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
     29 *
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    5035 *
    5136 *  @(#) $Id$
     
    5338
    5439/*
    55  *              sil.hのプロセッサ依存部(RX630用)
     40 *              sil.hのプロセッサ依存部(RX630用)
    5641 */
    5742
     
    6550
    6651/*
    67  *  å
    68 ¨å‰²è¾¼ã¿ç¦æ­¢
     52 *  全割込み禁止
    6953 */
    7054Inline uint32_t
     
    8165
    8266/*
    83  *  å
    84 ¨å‰²è¾¼ã¿è¨±å¯
     67 *  全割込み許可
    8568 */
    8669Inline void
     
    9477
    9578/*
    96  *  å
    97 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    98 ‹ã®åˆ¶å¾¡
     79 *  全割込みロック状態の制御
    9980 */
    10081#define SIL_PRE_LOC             uint32_t TOPPERS_i_psw;
     
    10485
    10586/*
    106  *  エンディアンの反転
     87 *  エンディアンの反転
    10788 *
    108  *  本開発環境ではエンディアン変換命令が存在するため,
    109  *  アーキテクチャ依存部にてマクロを上書きする.
     89 *  本開発環境ではエンディアン変換命令が存在するため,
     90 *  アーキテクチャ依存部にてマクロを上書きする.
    11091 */
    11192#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )   \
     
    11697
    11798/*
    118  *  微少時間å¾
    119 ã¡
     99 *  微少時間待ち
    120100 */
    121101extern void sil_dly_nse( ulong_t dlytim ) throw();
     
    125105
    126106/*
    127  *  プロセッサのエンディアン
    128  */
    129 #define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
     107 *  プロセッサのエンディアン
     108 */
     109#define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
    130110
    131111#ifndef TOPPERS_MACRO_ONLY
    132112
    133113/*
    134  *  メモリ空間アクセス関数
     114 *  メモリ空間アクセス関数
    135115 */
    136116#define TOPPERS_OMIT_SIL_ACCESS
    137117
    138118/*
    139  *  8ビット単位の読出し/書込み
     119 *  8ビット単位の読出し/書込み
    140120 */
    141121#ifdef UINT8_MAX
     
    159139
    160140/*
    161  *  16ビット単位の読出し/書込み
     141 *  16ビット単位の読出し/書込み
    162142 */
    163143
     
    177157}
    178158
    179 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     159#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    180160
    181161#define sil_reh_bem(mem)                sil_reh_mem(mem)
     
    204184#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
    205185#else /* SIL_ENDIAN_BIG */
    206 #ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
     186#ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
    207187
    208188#define sil_reh_lem(mem)                sil_reh_mem(mem)
     
    238218
    239219/*
    240  *  32ビット単位の読出し/書込み
     220 *  32ビット単位の読出し/書込み
    241221 */
    242222
     
    256236}
    257237
    258 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     238#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    259239
    260240#define sil_rew_bem(mem)                sil_rew_mem(mem)
     
    282262
    283263#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
    284 #else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
     264#else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
    285265
    286266#define sil_rew_lem(mem)                sil_rew_mem(mem)
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_stddef.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    9  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    10  *  変・再é
    11 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    12  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    13  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    14  *      スコード中に含まれていること.
    15  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    16  *      用できる形で再é
    17 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    18 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    19  *      è€
    20 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    21  *      の無保証規定を掲載すること.
    22  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    23  *      用できない形で再é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    25  *      と.
    26  *    (a) 再é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    29  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    30  *    (b) 再é
    31 å¸ƒã®å½¢æ
    32 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    33  *        報告すること.
    34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    35  *      害からも,上記著作権è€
    36 ãŠã‚ˆã³TOPPERSプロジェクトをå
    37 è²¬ã™ã‚‹ã“と.
    38  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    39  *      由に基づく請求からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトを
    41  *      å
    42 è²¬ã™ã‚‹ã“と.
     7 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    4329 *
    44  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    45 ãŠ
    46  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    47  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    48  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    49  *  の責任を負わない.
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    5035 *
    5136 *  @(#) $Id$
     
    5338
    5439/*
    55  *              t_stddef.hのプロセッサ依存部(RX630用)
     40 *              t_stddef.hのプロセッサ依存部(RX630用)
    5641 *
    57  *  このインクルードファイルは,target_stddef.h(または,そこからインク
    58  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    59  *  直接インクルードしてはならない.
     42 *  このインクルードファイルは,target_stddef.h(または,そこからインク
     43 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     44 *  直接インクルードしてはならない.
    6045 */
    6146
     
    6449
    6550/*
    66  *  ターゲットを識別するためのマクロの定義
     51 *  ターゲットを識別するためのマクロの定義
    6752 */
    68 #define TOPPERS_RX630                           /* プロセッサ略称 */
     53#define TOPPERS_RX630                           /* プロセッサ略称 */
    6954
    7055#endif /* TOPPERS_PRC_STDDEF_H */
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_support.S

    • Property svn:mime-type changed from text/plain to text/gas; charset=UTF-8
    r313 r315  
    1111;   Copyright (C) 2013      by Mitsuhiro Matsuura
    1212
    13 ;   ä¸Šè¨˜è‘—作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    15 ;   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    16 ;   å¤‰ãƒ»å†é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18 ;   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19 ;       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    20 ;       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    21 ;   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22 ;       ç”¨ã§ãã‚‹å½¢ã§å†é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25 ;       è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27 ;       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    28 ;   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29 ;       ç”¨ã§ããªã„形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31 ;       ã¨ï¼Ž
    32 ;     (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35 ;         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    36 ;     (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39 ;         å ±å‘Šã™ã‚‹ã“と.
    40 ;   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41 ;       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44 ;       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    45 ;       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47 ;       å
    48 è²¬ã™ã‚‹ã“と.
     13;   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     14;   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15;   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16;   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17;       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18;       スコード中に含まれていること.
     19;   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20;       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21;       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22;       の無保証規定を掲載すること.
     23;   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24;       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25;       と.
     26;     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27;         作権表示,この利用条件および下記の無保証規定を掲載すること.
     28;     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29;         報告すること.
     30;   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31;       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32;       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33;       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34;       免責すること.
    4935
    50 ;   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    51 ãŠ
    52 ;   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53 ;   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    54 ;   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    55 ;   ã®è²¬ä»»ã‚’負わない.
     36;   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37;   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38;   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39;   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40;   の責任を負わない.
    5641
    5742;  @(#) $Id$
     
    5944
    6045;
    61 ãƒ—ロセッサ依存モジュール アセンブリ言語部(RX630用)
     46プロセッサ依存モジュール アセンブリ言語部(RX630用)
    6247;
    6348#define TOPPERS_MACRO_ONLY
    64 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    65 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    66 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     49#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     50#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     51#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6752#include "kernel_impl.h"
    6853
    6954;
    70 ;  ディスパッチャおよび割込み(CPU例外)出å
    71 ¥ã‚Šå£ã®ãƒ«ãƒ¼ãƒ«:
    72 ;       å‹•ä½œãƒ¢ãƒ¼ãƒ‰ã‚’以下のように定義する.
    73 ;               ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード:
    74 ;                       CPUロック状æ
    75 ‹, 割込み優å
    76 ˆåº¦ãƒžã‚¹ã‚¯å
    77 ¨è§£é™¤çŠ¶æ
    78 ‹,
    79 ;                       ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest = 0), タスクスタック
    80 ;               å‰²è¾¼ã¿(CPU例外)処理モード
    81 ;                       å
    82 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    83 ‹(PSWレジスタIビット = 0),
    84 ;                       å‰²è¾¼ã¿å„ªå
    85 ˆåº¦ãƒžã‚¹ã‚¯å
    86 ¨è§£é™¤ã§ãªã„状æ
    87 ‹(IPL != 0)
    88 ;                       å‰²è¾¼ã¿ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest != 0), 割込みスタック
    89 ;
    90 ;       ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みのサポート有無と, CPUロック状æ
    91 ‹, 割込み優å
    92 ˆåº¦
    93 ;       ãƒžã‚¹ã‚¯å
    94 ¨è§£é™¤çŠ¶æ
    95 ‹ã®é–¢ä¿‚は以下の通りである.
    96 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込み未サポート時:
    97 ;                       CPUロック状æ
    98 ‹(PSWレジスタIビット = 0)
    99 ;                       å‰²è¾¼ã¿å„ªå
    100 ˆåº¦ãƒžã‚¹ã‚¯å
    101 ¨è§£é™¤çŠ¶æ
    102 ‹(IPL = 0)
    103 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みサポート時:
    104 ;                       CPUロック状æ
    105 ‹
    106 ;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
    107 ;                       å‰²è¾¼ã¿å„ªå
    108 ˆåº¦ãƒžã‚¹ã‚¯å
    109 ¨è§£é™¤çŠ¶æ
    110 ‹(saved_ipl = 0)
    111 ;
    112 ;       å„構造体ポインタを以下のように各レジスタにアサインする.
    113 ;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
    114 ;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
    115 ;       å„å
    116 ¥ã‚Šå£ã‹ã‚‰æœ€åˆã«å¤‰æ•°ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã¨ãã«ä¸Šè¨˜ãƒ¬ã‚¸ã‚¹ã‚¿ã«ä¿å­˜ã™ã‚‹.
    117 ;
    118 ;       æ§‹é€ ä½“アライメントへの対応
    119 ;               æ§‹é€ ä½“アライメントが4Byte(アンパック)の場合:
    120 ;                       ä¸€èˆ¬çš„なレジスタ相対アドレッシングが可能
    121 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     55;  ディスパッチャおよび割込み(CPU例外)出入り口のルール:
     56;       動作モードを以下のように定義する.
     57;               ディスパッチャモード:
     58;                       CPUロック状態, 割込み優先度マスク全解除状態,
     59;                       タスクコンテキスト(intnest = 0), タスクスタック
     60;               割込み(CPU例外)処理モード
     61;                       全割込みロック状態(PSWレジスタIビット = 0),
     62;                       割込み優先度マスク全解除でない状態(IPL != 0)
     63;                       割込みコンテキスト(intnest != 0), 割込みスタック
     64;
     65;       カーネル管理外割込みのサポート有無と, CPUロック状態, 割込み優先度
     66;       マスク全解除状態の関係は以下の通りである.
     67;               カーネル管理外割込み未サポート時:
     68;                       CPUロック状態(PSWレジスタIビット = 0)
     69;                       割込み優先度マスク全解除状態(IPL = 0)
     70;               カーネル管理外割込みサポート時:
     71;                       CPUロック状態
     72;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
     73;                       割込み優先度マスク全解除状態(saved_ipl = 0)
     74;
     75;       各構造体ポインタを以下のように各レジスタにアサインする.
     76;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
     77;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
     78;       各入り口から最初に変数アクセスするときに上記レジスタに保存する.
     79;
     80;       構造体アライメントへの対応
     81;               構造体アライメントが4Byte(アンパック)の場合:
     82;                       一般的なレジスタ相対アドレッシングが可能
     83;                               例:      mov.l   #__kernel_p_runtsk, r15
    12284;                                       mov.l   r0, TCB_sp[r15]
    123 ;               æ§‹é€ ä½“アライメントが4Byteではない(パック)の場合:
    124 ;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
    125 ;                       ã“のため, 一度対象アドレスを求めてからアクセスするå¿
    126 è¦ãŒã‚ã‚‹
    127 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     85;               構造体アライメントが4Byteではない(パック)の場合:
     86;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
     87;                       このため, 一度対象アドレスを求めてからアクセスする必要がある
     88;                               例:      mov.l   #__kernel_p_runtsk, r15
    12889;                                       add             #TCB_sp, r15, r5
    12990;                                       mov.l   r0, [r5]
    130 ;               å„オフセット値を判断し, 条件アセンブルによりコードを切り替える
    131 ;
    132 
    133 ;
    134 æ§‹é€ ä½“アクセスのオフセット定義
     91;               各オフセット値を判断し, 条件アセンブルによりコードを切り替える
     92;
     93
     94;
     95構造体アクセスのオフセット定義
    13596;
    13697#include "offset.h"
    13798
    13899;
    139 å„種EQU定義(Hファイルの#define定義)
     100各種EQU定義(Hファイルの#define定義)
    140101;
    141102#include "target_config.h"
     
    190151
    191152;
    192 ;  TCB_sp への書込みマクロ
     153;  TCB_sp への書込みマクロ
    193154;
    194155.macro  st_TCB_sp       src, tcb, tmp
     
    202163
    203164;
    204 ;  TCB_sp からの読出しマクロ
     165;  TCB_sp からの読出しマクロ
    205166;
    206167.macro  ld_TCB_sp       dst, tcb, tmp
     
    214175
    215176;
    216 ;  TCB_pc への書込みマクロ
     177;  TCB_pc への書込みマクロ
    217178;
    218179.macro  st_TCB_pc       src, tcb, tmp
     
    226187
    227188;
    228 ;  TCB_pc からの読出しマクロ
     189;  TCB_pc からの読出しマクロ
    229190;
    230191.macro  ld_TCB_pc       dst, tcb, tmp
     
    238199
    239200;
    240 ;  TCB_texptn からの読出しマクロ
     201;  TCB_texptn からの読出しマクロ
    241202;
    242203.macro  ld_TCB_texptn   dst, tcb, tmp
     
    250211
    251212;
    252 ;  TCB_p_tinib からの読出しマクロ
     213;  TCB_p_tinib からの読出しマクロ
    253214;
    254215.macro  ld_TCB_p_tinib  dst, tcb, tmp
     
    262223
    263224;
    264 ;  TINIB_exinf からの読出しマクロ
     225;  TINIB_exinf からの読出しマクロ
    265226;
    266227.macro  ld_TINIB_exinf  dst, tinib, tmp
     
    274235
    275236;
    276 ;  TINIB_task からの読出しマクロ
     237;  TINIB_task からの読出しマクロ
    277238;
    278239.macro  ld_TINIB_task   dst, tinib, tmp
     
    289250
    290251;
    291 ;  APIからのタスクディスパッチャå
    292 ¥å£
    293 ;
    294 ;  呼び出し条件:
    295 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    296 §)
    297 ;
    298 ;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
     252;  APIからのタスクディスパッチャ入口
     253;
     254;  呼び出し条件:
     255;       ・ディスパッチャモード(ファイルヘッダ参照)
     256;
     257;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
    299258;
    300259__kernel_dispatch:
    301         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     260        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    302261        mov.l   #__kernel_p_runtsk, r15
    303262        mov.l   [r15], r14
    304         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    305         st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
     263        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     264        st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
    306265        bra             dispatcher
    307266
    308267;
    309 ;  APIへのタスクディスパッチャ出口
    310 ;
    311 ;  呼び出し条件:
    312 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    313 §)
    314 ;
    315 ;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
     268;  APIへのタスクディスパッチャ出口
     269;
     270;  呼び出し条件:
     271;       ・ディスパッチャモード(ファイルヘッダ参照)
     272;
     273;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
    316274;
    317275dispatch_r:
    318         btst    #TCB_enatex_bit, TCB_enatex[r14].b      ; タスク例外処理許可?
     276        btst    #TCB_enatex_bit, TCB_enatex[r14].b      ; タスク例外処理許可?
    319277        bz      dispatch_r_rts
    320         ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
     278        ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
    321279        cmp             #0, r5
    322280        bz      dispatch_r_rts
    323         bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
     281        bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
    324282dispatch_r_rts:
    325         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    326         rts                                     ; dispatch 呼び出しå
    327 ƒã¸æˆ»ã‚‹.
    328 
    329 ;
    330 ;  タスク起動処理(タスクå
    331 ˆé ­ã¸ã®ã‚¿ã‚¹ã‚¯ãƒ‡ã‚£ã‚¹ãƒ‘ッチャ出口)
    332 ;
    333 ;  呼び出し条件:
    334 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    335 §)
    336 ;
    337 ;  ここでは, CPUロック解除状æ
    338 ‹ã«ã—, タスクを起動する.
     283        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     284        rts                                     ; dispatch 呼び出し元へ戻る.
     285
     286;
     287;  タスク起動処理(タスク先頭へのタスクディスパッチャ出口)
     288;
     289;  呼び出し条件:
     290;       ・ディスパッチャモード(ファイルヘッダ参照)
     291;
     292;  ここでは, CPUロック解除状態にし, タスクを起動する.
    339293;
    340294__kernel_start_r:
    341295        mov.l   #_ext_tsk, r5
    342         push.l  r5                                                      ; 戻り番地をスタックに積む
     296        push.l  r5                                                      ; 戻り番地をスタックに積む
    343297        ld_TCB_p_tinib  r5, r14, r4
    344         ld_TINIB_exinf  r1, r5, r4                      ; 拡張æƒ
    345 å ±ã‚’第一引数に設定
    346         ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
     298        ld_TINIB_exinf  r1, r5, r4                      ; 拡張情報を第一引数に設定
     299        ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
    347300.if     TIPM_LOCK == -15
    348         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    349 ‹)
     301        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
    350302.else
    351         mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状æ
    352 ‹ã¸
    353         mov.l   #0, [r4]                                        ; ここに来るときはå¿
    354 ãš saved_ipl の
    355         mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
    356                                                                 ; å
    357 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    358 ‹( I = 1 )
    359                                                                 ; 割込み優å
    360 ˆåº¦ãƒžã‚¹ã‚¯å
    361 ¨è§£é™¤çŠ¶æ
    362 ‹( IPL = 0 )
     303        mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状態へ
     304        mov.l   #0, [r4]                                        ; ここに来るときは必ず saved_ipl の
     305        mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
     306                                                                ; 全割込みロック解除状態( I = 1 )
     307                                                                ; 割込み優先度マスク全解除状態( IPL = 0 )
    363308.endif
    364309        jmp             r5
    365310
    366311;
    367 ;  カーネル起動からのタスクディスパッチャå
    368 ¥å£
    369 ;
    370 ;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状æ
    371 ‹
    372 ; (割込みロック状æ
    373 ‹ã¨åŒç­‰ï¼‰ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žã¾ãŸï¼Œå‰²è¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ï¼ˆéž
    374 ;  タスクコンテキストと同等)で呼び出されることを想定している.
    375 ;
    376 ;  呼び出し条件:
    377 ;       ãƒ»å‰²è¾¼ã¿(CPU例外)処理モード(ファイルヘッダ参ç
    378 §)
    379 ;
    380 ;  ここでは, ディスパッチャモードに変更する.
     312;  カーネル起動からのタスクディスパッチャ入口
     313;
     314;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状態
     315; (割込みロック状態と同等)で呼び出される.また,割込みモード(非
     316;  タスクコンテキストと同等)で呼び出されることを想定している.
     317;
     318;  呼び出し条件:
     319;       ・割込み(CPU例外)処理モード(ファイルヘッダ参照)
     320;
     321;  ここでは, ディスパッチャモードに変更する.
    381322;
    382323__kernel_start_dispatch:
    383324        mov.l   #__kernel_intnest, r5
    384         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     325        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    385326#if     TIPM_LOCK != -15
    386         mvtc    #(IPL_LOCK | 00010000H), psw    ; å
    387 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    388 ‹
    389                                                                                 ; 割込み優å
    390 ˆåº¦ãƒžã‚¹ã‚¯å
    391 ¨è§£é™¤ã§ãªã„状æ
    392 ‹
    393 #endif
    394 
    395 ;
    396 ; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャå
    397 ¥å£
    398 ;
    399 ;  呼び出し条件:
    400 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    401 §)
    402 ;
    403 ;  ここでは, 何もすることはない.
    404 ;  なお, p_runtsk のアドレス取得だけは行なう.
     327        mvtc    #(IPL_LOCK | 00010000H), psw    ; 全割込みロック解除状態
     328                                                                                ; 割込み優先度マスク全解除でない状態
     329#endif
     330
     331;
     332; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャ入口
     333;
     334;  呼び出し条件:
     335;       ・ディスパッチャモード(ファイルヘッダ参照)
     336;
     337;  ここでは, 何もすることはない.
     338;  なお, p_runtsk のアドレス取得だけは行なう.
    405339;
    406340__exit_and_dispatch:
     
    408342
    409343;
    410 ; ディスパッチャ本体
    411 ;
    412 å‘¼ã³å‡ºã—条件:
    413 ;       ãƒ»ã™ã¹ã¦ã®ã‚¿ã‚¹ã‚¯ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã¯ä¿å­˜ã•ã‚Œã¦ã„ã‚‹.
    414 ;
    415 ;  dispatcher 呼出時のスタック:
    416 ;       ãƒ»__kernel_dispatch からきた場合                 : タスクスタック
    417 ;       ãƒ»exit_and_dispatch からきた場合:
    418 ;               exit_task からきた場合                                    : タスクスタック
    419 ;               ã‚«ãƒ¼ãƒãƒ«èµ·å‹•æ™‚(__kernel_start_dispatch)  : 割込みスタック
    420 ;       ãƒ»ret_int からきた場合                                           : タスクスタック
    421 ;       ãƒ»dispatcher_idle_loop からきた場合                      : 割込みスタック
     344; ディスパッチャ本体
     345;
     346呼び出し条件:
     347;       ・すべてのタスクのコンテキストは保存されている.
     348;
     349;  dispatcher 呼出時のスタック:
     350;       ・__kernel_dispatch からきた場合                       : タスクスタック
     351;       ・exit_and_dispatch からきた場合:
     352;               exit_task からきた場合                                        : タスクスタック
     353;               カーネル起動時(__kernel_start_dispatch)        : 割込みスタック
     354;       ・ret_int からきた場合                                         : タスクスタック
     355;       ・dispatcher_idle_loop からきた場合                    : 割込みスタック
    422356;
    423357dispatcher:
    424358.if     LOG_DSP_ENTER == 1
    425359        push.l  r15
    426         mov.l   r14, r1                                         ; 引数(ディスパッチå
    427 ƒTCB)を設定
     360        mov.l   r14, r1                                         ; 引数(ディスパッチ元TCB)を設定
    428361        bsr             _kernel_log_dsp_enter
    429362        pop.l   r15
    430363.endif
    431364        mov.l   #__kernel_p_schedtsk, r5     
    432         mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
     365        mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
    433366        mov.l   [r15], r14
    434367        cmp             #0, r14
    435         bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
    436         ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
     368        bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
     369        ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
    437370.if     LOG_DSP_LEAVE == 1
    438371        push.l  r14
    439         mov.l   r14, r1                                         ; 引数(ディスパッチå
    440 ˆTCB)を設定
     372        mov.l   r14, r1                                         ; 引数(ディスパッチ先TCB)を設定
    441373        bsr             _kernel_log_dsp_leave
    442374        pop.l   r14
    443375.endif
    444376        ld_TCB_pc       r5, r14, r4
    445         jmp             r5                                      ; 実行再開番地へジャンプ
    446 
    447 ;
    448 ;  schdedtskがNULLの場合はアイドルループにå
    449 ¥ã‚‹
    450 ;  アイドルループは割込み処理モードで動作させる
    451 ;
    452 ;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
    453 ;  どのスタックを使うかという問題の解決と,割込みハンドラå†
    454 ã§ã®ã‚¿
    455 ;  スクディスパッチの防止という2つの意味がある.
     377        jmp             r5                                      ; 実行再開番地へジャンプ
     378
     379;
     380;  schdedtskがNULLの場合はアイドルループに入る
     381;  アイドルループは割込み処理モードで動作させる
     382;
     383;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
     384;  どのスタックを使うかという問題の解決と,割込みハンドラ内でのタ
     385;  スクディスパッチの防止という2つの意味がある.
    456386;
    457387dispatcher_pre_idle:
    458388        mov.l   #__kernel_istkpt,r5
    459         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    460         mov.l   #__kernel_intnest, r5
    461         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     389        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     390        mov.l   #__kernel_intnest, r5
     391        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    462392#if     TIPM_LOCK != -15
    463         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    464 ‹ã¸
     393        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    465394        mov.l   #0, [r5]
    466         mvtc    #0, psw                                         ; 優å
    467 ˆåº¦0の割込み処理中を偽è£
    468 
     395        mvtc    #0, psw                                         ; 優先度0の割込み処理中を偽装
    469396#endif
    470397
    471398dispatcher_idle_loop:
    472         setpsw  i                                                       ; å
    473 ¨å‰²è¾¼ã¿è¨±å¯
    474         clrpsw  i                                                       ; å
    475 ¨å‰²è¾¼ã¿ç¦æ­¢
    476 
    477         mov.l   #__kernel_reqflg, r5            ; reqflg が FALSE なら
     399        setpsw  i                                                       ; 全割込み許可
     400        clrpsw  i                                                       ; 全割込み禁止
     401
     402        mov.l   #__kernel_reqflg, r5            ; reqflg が FALSE なら
    478403        mov.l   [r5], r4
    479404        cmp             #0, r4
    480         bz      dispatcher_idle_loop            ; アイドルループを繰り返す
    481         mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
    482         mov.l   #__kernel_intnest, r5
    483         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     405        bz      dispatcher_idle_loop            ; アイドルループを繰り返す
     406        mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
     407        mov.l   #__kernel_intnest, r5
     408        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    484409#if     TIPM_LOCK != -15
    485         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    486 ‹ã¸
     410        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    487411        mov.l   #1, [r5]
    488412        mov.l   #__kernel_saved_ipl, r5
    489413        mov.l   #0, [r5]
    490         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    491 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    492 ‹
    493                                                                                 ; 割込み優å
    494 ˆåº¦ãƒžã‚¹ã‚¯å
    495 ¨è§£é™¤ã§ãªã„状æ
    496 ‹
    497 #endif
    498         bra             dispatcher                                      ; dispatcher へ戻る
    499 
    500 
    501 ;
    502 ; カーネルの終了処理の呼出し
    503 ;
    504 ; モードとスタックを非タスクコンテキスト用に切り替え.
     414        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     415                                                                                ; 割込み優先度マスク全解除でない状態
     416#endif
     417        bra             dispatcher                                      ; dispatcher へ戻る
     418
     419
     420;
     421; カーネルの終了処理の呼出し
     422;
     423; モードとスタックを非タスクコンテキスト用に切り替え.
    505424;
    506425        .global __kernel_call_exit_kernel
    507426__kernel_call_exit_kernel:
    508427#if     TIPM_LOCK != -15
    509         clrpsw  i                                                       ; å
    510 ¨å‰²è¾¼ã¿ç¦æ­¢
    511         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    512 ‹ã¸
     428        clrpsw  i                                                       ; 全割込み禁止
     429        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    513430        mov.l   #0, [r5]
    514431#endif
    515432        mov.l   #__kernel_istkpt, r5
    516         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    517         mov.l   #__kernel_intnest, r5
    518         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     433        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     434        mov.l   #__kernel_intnest, r5
     435        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    519436        bsr             __kernel_exit_kernel
    520437        bra             __kernel_call_exit_kernel
     
    522439
    523440;
    524 ;  割込み(CPU例外)からのタスクディスパッチャå
    525 ¥å£
    526 ;
    527 ;       å‘¼å‡ºã—条件:
    528 ;       ãƒ»å
    529 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    530 ‹(PSWレジスタIビット = 0)
    531 ;       ãƒ»å‰²è¾¼ã¿å„ªå
    532 ˆåº¦ãƒžã‚¹ã‚¯å
    533 ¨è§£é™¤ã§ãªã„状æ
    534 ‹(IPL != 0)
    535 ;       ãƒ»ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest=0)
    536 ;       ãƒ»ä½¿ç”¨ã‚¹ã‚¿ãƒƒã‚¯ã¯ã‚¿ã‚¹ã‚¯ã‚¹ã‚¿ãƒƒã‚¯
    537 ;       ãƒ»reqflg = true
    538 ;
    539 ;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
    540 ;  é
    541 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチの有無を判断する.
    542 ;
    543 
    544 ;
    545 ;  ret_intå
    546 ˆé ­ã§ã‚¹ã‚¿ãƒƒã‚¯ã«ç©ã¾ã‚Œã¦ã„ã‚‹PSWレジスタへのオフセット
     441;  割込み(CPU例外)からのタスクディスパッチャ入口
     442;
     443;       呼出し条件:
     444;       ・全割込みロック状態(PSWレジスタIビット = 0)
     445;       ・割込み優先度マスク全解除でない状態(IPL != 0)
     446;       ・タスクコンテキスト(intnest=0)
     447;       ・使用スタックはタスクスタック
     448;       ・reqflg = true
     449;
     450;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
     451;  遅延ディスパッチの有無を判断する.
     452;
     453
     454;
     455;  ret_int先頭でスタックに積まれているPSWレジスタへのオフセット
    547456;  ACC + FPSW + R14--R15 + R1--R5 + PC
    548457;
     
    551460ret_int:
    552461.if     TIPM_LOCK == -15
    553         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     462        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    554463        and             #PSW_IPL_MASK, r5
    555         mvtc    r5, psw                                         ; å
    556 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯(CPUロック)状æ
    557 ‹
    558                                                                                 ; 割込み/CPU例外発生前の割込み優å
    559 ˆåº¦
     464        mvtc    r5, psw                                         ; 全割込みロック(CPUロック)状態
     465                                                                                ; 割込み/CPU例外発生前の割込み優先度
    560466.else
    561         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    562 ‹ã¸
     467        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    563468        mov.l   #1, [r5]
    564         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     469        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    565470        and             #PSW_IPL_MASK, r5
    566471        mov.l   #__kernel_saved_ipl, r4
    567472        mov.l   r5, [r4]
    568         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    569 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    570 ‹
    571                                                                                 ; 割込み優å
    572 ˆåº¦ãƒžã‚¹ã‚¯å
    573 ¨è§£é™¤ã§ãªã„状æ
    574 ‹
     473        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     474                                                                                ; 割込み優先度マスク全解除でない状態
    575475.endif
    576476        mov.l   #__kernel_reqflg, r5
     
    578478        mov.l   #__kernel_p_runtsk, r15     
    579479        mov.l   [r15], r14
    580         mov.l   #__kernel_dspflg, r5            ; dspflg が FALSE なら ret_int_r へ
     480        mov.l   #__kernel_dspflg, r5            ; dspflg が FALSE なら ret_int_r へ
    581481        mov.l   [r5], r5
    582482        cmp             #0, r5
     
    584484        mov.l   #__kernel_p_schedtsk, r5
    585485        mov.l   [r5], r5
    586         cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
    587         beq     ret_int_r_call_tex                      ; ret_int_r_call_tex へ
    588         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    589         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    590         st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
     486        cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
     487        beq     ret_int_r_call_tex                      ; ret_int_r_call_tex
     488        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     489        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     490        st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
    591491        bra             dispatcher
    592492
    593493;
    594 ;  割込み(CPU例外)へのタスクディスパッチャ出口
    595 ;
    596 ;  呼び出し条件:
    597 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    598 §)
    599 ;
    600 ;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
    601 ;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生å
    602 ƒã¸æˆ»ã‚‹.
    603 ;
    604 __kernel_break_wait:                                    ;タスクモニタ用ラベル
     494;  割込み(CPU例外)へのタスクディスパッチャ出口
     495;
     496;  呼び出し条件:
     497;       ・ディスパッチャモード(ファイルヘッダ参照)
     498;
     499;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
     500;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生元へ戻る.
     501;
     502__kernel_break_wait:                                    ;タスクモニタ用ラベル
    605503ret_int_r:
    606         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     504        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    607505ret_int_r_call_tex:
    608         btst    #TCB_enatex_bit, TCB_enatex[r14].b      ; タスク例外処理許可?
     506        btst    #TCB_enatex_bit, TCB_enatex[r14].b      ; タスク例外処理許可?
    609507        bz      ret_int_r_rte
    610         ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
     508        ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
    611509        cmp             #0, r5
    612510        bz      ret_int_r_rte
    613         bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
     511        bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
    614512ret_int_r_rte:
    615513#if     TIPM_LOCK != -15
    616         clrpsw  i                                                       ; å
    617 ¨å‰²è¾¼ã¿ç¦æ­¢
    618         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    619 ‹ã¸
     514        clrpsw  i                                                       ; 全割込み禁止
     515        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    620516        mov.l   #0, [r5]
    621517#endif
    622         popm    r4-r5                                           ; アキュムレータ復帰
    623         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     518        popm    r4-r5                                           ; アキュムレータ復帰
     519        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    624520        mvtachi r4
    625         popc    fpsw                                            ; FPUステータスレジスタ復帰
    626         popm    r14-r15                                         ; レジスタ復帰
     521        popc    fpsw                                            ; FPUステータスレジスタ復帰
     522        popm    r14-r15                                         ; レジスタ復帰
    627523        popm    r1-r5
    628         rte                                                                     ; 割込み前の処理に戻る
    629 
    630 
    631 ;
    632 ;  割込みの出å
    633 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    634 ;
    635 ;  呼出し条件:
    636 ;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
    637 ;    た割込みのIPL.
    638 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    639 ;    タスクスタック
    640 ;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
    641 ;    保存されている.
    642 ;  ・ベクタテーブルに登録された個別のå
    643 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    644 ;    スクラッチレジスタ(R1-R5)が保存されている.
    645 ;
    646 ;  引数:
    647 ;  ・r1:割込み要因番号
    648 ;  ・r2:割込みハンドラのアドレス
    649 ;
    650 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    651 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    652 ;  上方向に向かって積み上げられるものとする.
     524        rte                                                                     ; 割込み前の処理に戻る
     525
     526
     527;
     528;  割込みの出入口処理(アセンブリ言語記述部分)
     529;
     530;  呼出し条件:
     531;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
     532;    た割込みのIPL.
     533;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     534;    タスクスタック
     535;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
     536;    保存されている.
     537;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     538;    スクラッチレジスタ(R1-R5)が保存されている.
     539;
     540;  引数:
     541;  ・r1:割込み要因番号
     542;  ・r2:割込みハンドラのアドレス
     543;
     544;  レジスタがスタック上にどのように保存されているかを以下に示す.
     545;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     546;  上方向に向かって積み上げられるものとする.
    653547;
    654548;       -------------------------
     
    678572;       -------------------------(SP + 44)
    679573;
    680 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    681 ;
    682 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    683 ;  TRUE になった時に,ret_int へ分岐(é
    684 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    685 ;
    686 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    687 ;  intnest != 0 ならば多重割込みであると判定する.
    688 ;
    689 ;  reqflg はCPUロック状æ
    690 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    691 ;  reqflg チェック後に起動された割込みハンドラå†
    692 ã§
    693 ;  ディスパッチが要求された場合に,ディスパッチされない.
     574;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     575;
     576;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     577;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     578;
     579;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     580;  intnest != 0 ならば多重割込みであると判定する.
     581;
     582;  reqflg はCPUロック状態でチェックする. そうでないと,
     583;  reqflg チェック後に起動された割込みハンドラ内で
     584;  ディスパッチが要求された場合に,ディスパッチされない.
    694585;
    695586_kernel_interrupt:
    696         pushm   r14-r15                                         ; スクラッチレジスタを退避
    697         pushc   fpsw                                            ; FPUステータスレジスタ退避
     587        pushm   r14-r15                                         ; スクラッチレジスタを退避
     588        pushc   fpsw                                            ; FPUステータスレジスタ退避
    698589        mvfacmi r5
    699         shll    #16, r5                                         ; ACC最下位16bitは0とする
     590        shll    #16, r5                                         ; ACC最下位16bitは0とする
    700591        mvfachi r4
    701         pushm   r4-r5                                           ; アキュムレータ退避
     592        pushm   r4-r5                                           ; アキュムレータ退避
    702593        mov.l   #__kernel_intnest, r5
    703594        mov.w   [r5], r4
    704         add             #1, r4                                          ; ネスト回数をインクリメント
     595        add             #1, r4                                          ; ネスト回数をインクリメント
    705596        mov.w   r4, [r5]
    706         cmp             #1, r4                                          ; 多重割り込みかどうか
    707         bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
    708                                                 ; 初段の割込み
    709         mov.l   r0, r3                                          ; スタックポインタを取り出し
    710         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     597        cmp             #1, r4                                          ; 多重割り込みかどうか
     598        bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
     599                                                ; 初段の割込み
     600        mov.l   r0, r3                                          ; スタックポインタを取り出し
     601        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    711602        mov.l   [r5], r0
    712         push.l  r3                                                      ; タスクスタックを保持
    713 interrupt_from_int:             ; 多重割込み
    714         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    715 ‹)
     603        push.l  r3                                                      ; タスクスタックを保持
     604interrupt_from_int:             ; 多重割込み
     605        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
    716606
    717607.if     LOG_INH_LEAVE == 1
    718         push.l  r1                                                      ; ログトレースの引数を保持
     608        push.l  r1                                                      ; ログトレースの引数を保持
    719609.endif
    720610
    721611.if     LOG_INH_ENTER == 1
    722612        push.l  r2
    723         bsr             _kernel_log_inh_enter           ; ログトレース関数の呼出し
    724                                                         ; 引数の割込み要因番号は既にr1にå
    725 ¥ã£ã¦ã„ã‚‹
     613        bsr             _kernel_log_inh_enter           ; ログトレース関数の呼出し
     614                                                        ; 引数の割込み要因番号は既にr1に入っている
    726615        pop             r2
    727616.endif
    728617
    729         jsr     r2                                                      ; Cルーチン呼び出し
     618        jsr     r2                                                      ; Cルーチン呼び出し
    730619
    731620.if     LOG_INH_LEAVE == 1
    732         pop             r1                                                      ; 引数に割込み要因番号を設定
    733         bsr             _kernel_log_inh_leave           ; ログトレース関数の呼出し
     621        pop             r1                                                      ; 引数に割込み要因番号を設定
     622        bsr             _kernel_log_inh_leave           ; ログトレース関数の呼出し
    734623.endif
    735624
    736         clrpsw  i                                                       ; 割込み禁止(CPUロック状æ
    737 ‹)
     625        clrpsw  i                                                       ; 割込み禁止(CPUロック状態)
    738626        mov.l   #__kernel_intnest, r5
    739627        mov.w   [r5], r4
    740         sub             #1, r4                                          ; ネスト回数をデクリメント
     628        sub             #1, r4                                          ; ネスト回数をデクリメント
    741629        mov.w   r4, [r5]
    742         cmp             #0, r4                                          ; 多重割り込みかどうか
    743         bnz             interrupt_return                        ; 多重割り込みならリターン
    744         ; 初段の割込み
    745         pop             r0                                                      ; タスクのスタックに戻す
    746         mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
     630        cmp             #0, r4                                          ; 多重割り込みかどうか
     631        bnz             interrupt_return                        ; 多重割り込みならリターン
     632        ; 初段の割込み
     633        pop             r0                                                      ; タスクのスタックに戻す
     634        mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
    747635        mov.l   [r5], r5
    748636        cmp             #1, r5
    749         bz              ret_int                                         ; あれば ret_int へジャンプ
     637        bz              ret_int                                         ; あれば ret_int へジャンプ
    750638interrupt_return:
    751         popm    r4-r5                                           ; アキュムレータ復帰
    752         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     639        popm    r4-r5                                           ; アキュムレータ復帰
     640        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    753641        mvtachi r4
    754         popc    fpsw                                            ; FPUステータスレジスタ復帰
    755         popm    r14-r15                                         ; レジスタ復帰
     642        popc    fpsw                                            ; FPUステータスレジスタ復帰
     643        popm    r14-r15                                         ; レジスタ復帰
    756644        popm    r1-r5
    757         rte                                                                     ; 割込み前の処理に戻る
    758 
    759 
    760 ;
    761 ;  CPU例外の出å
    762 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    763 ;
    764 ;  呼出し条件:
    765 ;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
    766 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    767 ;    タスクスタック
    768 ;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
    769 ;    PSWが保存されている.
    770 ;  ・ベクタテーブルに登録された個別のå
    771 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    772 ;    スクラッチレジスタ(R1-R5)が保存されている.
    773 ;
    774 ;  引数:
    775 ;  ・r1:CPU例外要因番号
    776 ;  ・r2:CPU例外ハンドラのアドレス
    777 ;
    778 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    779 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    780 ;  上方向に向かって積み上げられるものとする.
    781 ;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラå†
    782 ã§æƒ
    783 å ±ã‚’取得
    784 ;  する目的で退避しており, 出口処理では保存å†
    785 å®¹ã‚’破棄すればよい.
     645        rte                                                                     ; 割込み前の処理に戻る
     646
     647
     648;
     649;  CPU例外の出入口処理(アセンブリ言語記述部分)
     650;
     651;  呼出し条件:
     652;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
     653;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     654;    タスクスタック
     655;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
     656;    PSWが保存されている.
     657;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     658;    スクラッチレジスタ(R1-R5)が保存されている.
     659;
     660;  引数:
     661;  ・r1:CPU例外要因番号
     662;  ・r2:CPU例外ハンドラのアドレス
     663;
     664;  レジスタがスタック上にどのように保存されているかを以下に示す.
     665;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     666;  上方向に向かって積み上げられるものとする.
     667;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラ内で情報を取得
     668;  する目的で退避しており, 出口処理では保存内容を破棄すればよい.
    786669;
    787670;       -------------------------
    788 ;       |    CPU例外要因番号    | <----- p_excinf
     671;       |    CPU例外要因番号    | <----- p_excinf
    789672;       ------------------------- (intptr_t)(p_excinf + 0)
    790673;       |       R6(4byte)       |
     
    829712;       ------------------------- (intptr_t)(p_excinf + 80)
    830713;
    831 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    832 ;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
    833 ;
    834 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    835 ;  TRUE になった時に,ret_int へ分岐(é
    836 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    837 ;
    838 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    839 ;  intnest != 0 ならば多重割込みであると判定する.
    840 ;
    841 ;  reqflg はCPUロック状æ
    842 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    843 ;  reqflg チェック後に起動された割込みハンドラå†
    844 ã§
    845 ;  ディスパッチが要求された場合に,ディスパッチされない.
    846 ;
    847 ;
    848 ;  CPU例外å
    849 ¥å£å‡¦ç†
    850 ;
    851 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    852 ;
    853 
    854 ;
    855 ;  CPU例外ハンドラ呼出し後に不要となるスタックæƒ
    856 å ±ã®ã‚µã‚¤ã‚º
     714;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     715;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
     716;
     717;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     718;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     719;
     720;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     721;  intnest != 0 ならば多重割込みであると判定する.
     722;
     723;  reqflg はCPUロック状態でチェックする. そうでないと,
     724;  reqflg チェック後に起動された割込みハンドラ内で
     725;  ディスパッチが要求された場合に,ディスパッチされない.
     726;
     727;
     728;  CPU例外入口処理
     729;
     730;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     731;
     732
     733;
     734;  CPU例外ハンドラ呼出し後に不要となるスタック情報のサイズ
    857735;  EXCNO + R6--R13
    858736;
     
    860738
    861739_kernel_exception:
    862         pushm   r14-r15                                         ; スクラッチレジスタを退避
     740        pushm   r14-r15                                         ; スクラッチレジスタを退避
    863741        pushc   fpsw
    864742        mvfacmi r5
    865         shll    #16, r5                                         ; ACC最下位16bitは0とする
     743        shll    #16, r5                                         ; ACC最下位16bitは0とする
    866744        mvfachi r4
    867         pushm   r4-r5                                           ; アキュムレータ退避
    868         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    869         push.l  r1                                                      ; CPU例外要因番号を保持
    870         mov.l   r0, r3                                          ; スタックポインタを取り出し
     745        pushm   r4-r5                                           ; アキュムレータ退避
     746        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     747        push.l  r1                                                      ; CPU例外要因番号を保持
     748        mov.l   r0, r3                                          ; スタックポインタを取り出し
    871749        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    872750        and             #PSW_I_MASK, r5
    873         bz              exception_nonkernel                     ; å
    874 ¨å‰²è¾¼ã¿ç¦æ­¢(CPUロック)状æ
    875 ‹ãªã‚‰ç®¡ç†å¤–
     751        bz              exception_nonkernel                     ; 全割込み禁止(CPUロック)状態なら管理外
    876752#if     TIPM_LOCK != -15
    877753        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    878754        and             #PSW_IPL_MASK, r5
    879755        cmp             #IPL_LOCK, r5
    880         bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
     756        bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
    881757#endif
    882758        mov.l   #__kernel_intnest, r5
    883759        mov.w   [r5], r4
    884         add             #1, r4                                          ; ネスト回数をインクリメント
     760        add             #1, r4                                          ; ネスト回数をインクリメント
    885761        mov.w   r4, [r5]
    886         cmp             #1, r4                                          ; 多重割り込みかどうか
    887         bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
    888                                                 ; 初段の割込み
    889         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     762        cmp             #1, r4                                          ; 多重割り込みかどうか
     763        bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
     764                                                ; 初段の割込み
     765        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    890766        mov.l   [r5], r0
    891         push.l  r3                                                      ; タスクスタックを保持
    892 exception_from_int:             ; 多重割込み
     767        push.l  r3                                                      ; タスクスタックを保持
     768exception_from_int:             ; 多重割込み
    893769        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    894         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    895 ‹ã«æˆ»ã™
     770        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
    896771#if     LOG_EXC_LEAVE == 1
    897         push.l  r1                                                      ; ログトレースの引数を保持
     772        push.l  r1                                                      ; ログトレースの引数を保持
    898773#endif
    899774
    900775#if     LOG_EXC_ENTER == 1
    901776        pushm   r2-r3
    902         bsr             _kernel_log_exc_enter           ; ログトレース関数の呼出し
    903                                                         ; 引数の割込み要因番号は既にr1にå
    904 ¥ã£ã¦ã„ã‚‹
     777        bsr             _kernel_log_exc_enter           ; ログトレース関数の呼出し
     778                                                        ; 引数の割込み要因番号は既にr1に入っている
    905779        popm    r2-r3
    906780#endif
    907781
    908         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    909         jsr     r2                                                      ; Cルーチン呼び出し
     782        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     783        jsr     r2                                                      ; Cルーチン呼び出し
    910784
    911785.if     LOG_EXC_LEAVE == 1
    912         pop             r1                                                      ; 引数に割込み要因番号を設定
    913         bsr             _kernel_log_exc_leave           ; ログトレース関数の呼出し
     786        pop             r1                                                      ; 引数に割込み要因番号を設定
     787        bsr             _kernel_log_exc_leave           ; ログトレース関数の呼出し
    914788.endif
    915789
    916         clrpsw  i                                                       ; ここからはå¿
    917 ãšå‰²è¾¼ã¿ç¦æ­¢
     790        clrpsw  i                                                       ; ここからは必ず割込み禁止
    918791        mov.l   #__kernel_intnest, r5
    919792        mov.w   [r5], r4
    920         sub             #1, r4                                          ; ネスト回数をデクリメント
     793        sub             #1, r4                                          ; ネスト回数をデクリメント
    921794        mov.w   r4, [r5]
    922         cmp             #0, r4                                          ; 多重割り込みかどうか
    923         bnz             exception_return                        ; 多重割り込みならリターン
    924         ; 初段の割込み
    925         pop             r0                                                      ; タスクのスタックに戻す
    926         mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
     795        cmp             #0, r4                                          ; 多重割り込みかどうか
     796        bnz             exception_return                        ; 多重割り込みならリターン
     797        ; 初段の割込み
     798        pop             r0                                                      ; タスクのスタックに戻す
     799        mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
    927800        mov.l   [r5], r5
    928801        cmp             #1, r5
    929         bnz             exception_return                        ; なければリターン
    930         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    931 å ±ã®ç ´æ£„
    932         bra             ret_int                                         ; あれば ret_int へジャンプ
     802        bnz             exception_return                        ; なければリターン
     803        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     804        bra             ret_int                                         ; あれば ret_int へジャンプ
    933805
    934806exception_nonkernel:
    935807        mov.l   #__kernel_intnest, r5
    936808        mov.w   [r5], r4
    937         add             #1, r4                                          ; ネスト回数をインクリメント
     809        add             #1, r4                                          ; ネスト回数をインクリメント
    938810        mov.w   r4, [r5]
    939         cmp             #1, r4                                          ; 多重割り込みかどうか
    940         bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
    941                                                 ; 初段の割込み
    942         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     811        cmp             #1, r4                                          ; 多重割り込みかどうか
     812        bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
     813                                                ; 初段の割込み
     814        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    943815        mov.l   [r5], r0
    944         push.l  r3                                                      ; タスクスタックを保持
    945 exception_from_nonkernelint:    ; 多重割込み
     816        push.l  r3                                                      ; タスクスタックを保持
     817exception_from_nonkernelint:    ; 多重割込み
    946818        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    947         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    948 ‹ã«æˆ»ã™
    949 
    950         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    951         jsr     r2                                                      ; Cルーチン呼び出し
    952 
    953         clrpsw  i                                                       ; ここからはå¿
    954 ãšå‰²è¾¼ã¿ç¦æ­¢
     819        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
     820
     821        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     822        jsr     r2                                                      ; Cルーチン呼び出し
     823
     824        clrpsw  i                                                       ; ここからは必ず割込み禁止
    955825        mov.l   #__kernel_intnest, r5
    956826        mov.w   [r5], r4
    957         sub             #1, r4                                          ; ネスト回数をデクリメント
     827        sub             #1, r4                                          ; ネスト回数をデクリメント
    958828        mov.w   r4, [r5]
    959         cmp             #0, r4                                          ; 多重割り込みかどうか
    960         bnz             exception_return                        ; 多重割り込みならリターン
    961         ; 初段の割込み
    962         pop             r0                                                      ; タスクのスタックに戻す
     829        cmp             #0, r4                                          ; 多重割り込みかどうか
     830        bnz             exception_return                        ; 多重割り込みならリターン
     831        ; 初段の割込み
     832        pop             r0                                                      ; タスクのスタックに戻す
    963833
    964834exception_return:
    965         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    966 å ±ã®ç ´æ£„
    967         popm    r4-r5                                           ; アキュムレータ復帰
    968         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     835        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     836        popm    r4-r5                                           ; アキュムレータ復帰
     837        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    969838        mvtachi r4
    970         popc    fpsw                                            ; FPUステータスレジスタ復帰
    971         popm    r14-r15                                         ; レジスタ復帰
     839        popc    fpsw                                            ; FPUステータスレジスタ復帰
     840        popm    r14-r15                                         ; レジスタ復帰
    972841        popm    r1-r5
    973         rte                                                                     ; 割込み前の処理に戻る
    974 
    975 
    976 ;
    977 ;  微少時間å¾
    978 ã¡
     842        rte                                                                     ; 割込み前の処理に戻る
     843
     844
     845;
     846;  微少時間待ち
    979847;
    980848_sil_dly_nse:
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_syssvc.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              テストプログラムのターゲット依存定義(RX630用)
     42 *              テストプログラムのターゲット依存定義(RX630用)
    5843 */
    5944
     
    6247
    6348/*
    64  *  起動メッセージにターゲット依存部の著作権表示を
    65  *  追加するためのマクロ.
     49 *  起動メッセージにターゲット依存部の著作権表示を
     50 *  追加するためのマクロ.
    6651 */
    6752#define PRC_COPYRIGHT                                                                           \
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.S

    • Property svn:mime-type changed from text/plain to text/gas; charset=UTF-8
    r313 r315  
    66;*  Copyright (C) 2010 by Witz Corporation, JAPAN
    77;*
    8 ;*  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 ;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11 ;*  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15 ;*      スコード中に含まれていること.
    16 ;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 ;*      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 ;*      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 ;*      の無保証規定を掲載すること.
    23 ;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 ;*      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 ;*      と.
    27 ;*    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 ;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31 ;*    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 ;*        報告すること.
    35 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 ;*      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 ;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40 ;*      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 ;*      å
    43 è²¬ã™ã‚‹ã“と.
     8;*  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10;*  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13;*      スコード中に含まれていること.
     14;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15;*      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16;*      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17;*      の無保証規定を掲載すること.
     18;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19;*      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20;*      と.
     21;*    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23;*    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24;*        報告すること.
     25;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26;*      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28;*      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29;*      免責すること.
    4430;*
    45 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47 ;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 ;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49 ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50 ;*  の責任を負わない.
     31;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35;*  の責任を負わない.
    5136;*
    5237;*  @(#) $Id$
     
    5944_trigger_cpu_exception:
    6045        ;
    61         ;  CPU例外の発生
     46        ;  CPU例外の発生
    6247        ;
    63         ;  ゼロ割り算を行うことで, 浮動小数点例外を
    64         ;  発生させる.
     48        ;  ゼロ割り算を行うことで, 浮動小数点例外を
     49        ;  発生させる.
    6550        ;
    6651        mvtc    #00001000H, fpsw
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    66 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *              テストプログラムのターゲット依存定義(RX630用)
     41 *              テストプログラムのターゲット依存定義(RX630用)
    5742 */
    5843
     
    6045#define TOPPERS_PRC_TEST_H
    6146
    62 #define CPUEXC1                                 25              /* 浮動小数点例外 */
     47#define CPUEXC1                                 25              /* 浮動小数点例外 */
    6348#define RAISE_CPU_EXCEPTION             trigger_cpu_exception()
    6449
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_unrename.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *  RX630に依存する定義
     42 *  RX630に依存する定義
    5843 */
    5944#ifndef TOPPERS_RX630_H
     
    6348
    6449/*
    65  *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
     50 *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
    6651 *
    67  *  番号の範囲は0 - 31
    68  */
    69 #define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
    70 #define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
    71 #define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
    72 #define INT_NMI                                                 30              /* ノンマスカブル割り込み */
    73 #define INT_RESET                                               31              /* リセット */
    74 
    75 /*
    76  *  割込み番号の定義(可変ベクタテーブル)
     52 *  番号の範囲は0 - 31
     53 */
     54#define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
     55#define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
     56#define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
     57#define INT_NMI                                                 30              /* ノンマスカブル割り込み */
     58#define INT_RESET                                               31              /* リセット */
     59
     60/*
     61 *  割込み番号の定義(可変ベクタテーブル)
    7762 */
    7863#define INT_BUSERR                      16
     
    263248
    264249/*
    265  *  各モジュールのレジスタ及び設定ビットæƒ
    266 å ±
     250 *  各モジュールのレジスタ及び設定ビット情報
    267251 */
    268252
     
    270254
    271255/*
    272  * モジュールストップコントロールレジスタA(MSTPCRA)
     256 * モジュールストップコントロールレジスタA(MSTPCRA)
    273257 */
    274258#define SYSTEM_MSTPCRA_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080010 )
     
    308292
    309293/*
    310  * モジュールストップコントロールレジスタB(MSTPCRB)
     294 * モジュールストップコントロールレジスタB(MSTPCRB)
    311295 */
    312296#define SYSTEM_MSTPCRB_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080014 )
     
    345329
    346330/*
    347  * モジュールストップコントロールレジスタC(MSTPCRC)
     331 * モジュールストップコントロールレジスタC(MSTPCRC)
    348332 */
    349333#define SYSTEM_MSTPCRC_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080018 )
     
    382366
    383367/*
    384  * クロック発生回路
     368 * クロック発生回路
    385369 */
    386370#define SYSTEM_SCKCR_ADDR                       ( ( volatile uint32_t __evenaccess * )0x00080020 )
     
    402386
    403387/*
    404  * プロテクトレジスタ
     388 * プロテクトレジスタ
    405389 */
    406390#define SYSTEM_PRCR_ADDR                ( ( volatile uint16_t __evenaccess * )0x000803FE )
    407391
    408392/*
    409  * 割り込み要求レジスタ
     393 * 割り込み要求レジスタ
    410394 */
    411395#define ICU_IR000_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087000 )
     
    668652
    669653/*
    670  * 割り込み要求å
    671 ˆè¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿
     654 * 割り込み要求先設定レジスタ
    672655 */
    673656#define ICU_ISELR000_ADDR               ( ( volatile uint8_t __evenaccess * )0x00087100 )
     
    930913
    931914/*
    932  * 割り込み要求許可レジスタ
     915 * 割り込み要求許可レジスタ
    933916 */
    934917#define ICU_IER02_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087202 )
     
    971954
    972955/*
    973  * 割り込み要因プライオリティレジスタi(i=0~253)の設定
     956 * 割り込み要因プライオリティレジスタi(i=0~253)の設定
    974957 */
    975958#define ICU_IPR000_ADDR                 ( ( volatile uint8_t __evenaccess * )0x00087300 )
     
    12331216
    12341217/*
    1235  *  IRQコントロールレジスタ
     1218 *  IRQコントロールレジスタ
    12361219 */
    12371220#define ICU_IRQ0_ADDR                   ( ( volatile uint8_t __evenaccess * )0x00087500 )
     
    12551238
    12561239/*
    1257  *  各チャンネルのレジスタ及び設定ビットæƒ
    1258 å ±
     1240 *  各チャンネルのレジスタ及び設定ビット情報
    12591241 */
    12601242#define CMT_CMSTR0_ADDR                 ( ( volatile uint16_t __evenaccess * )0x00088000 )
     
    13651347
    13661348/*
    1367  *  I/Oポートのレジスタ及び設定ビットæƒ
    1368 å ±
     1349 *  I/Oポートのレジスタ及び設定ビット情報
    13691350 */
    13701351#define PORT0_PDR_ADDR                  ( ( volatile uint8_t __evenaccess * )0x0008C000 )
     
    15361517
    15371518/*
    1538  *  マルチファンクションピンコントローラのレジスタæƒ
    1539 å ±
     1519 *  マルチファンクションピンコントローラのレジスタ情報
    15401520 */
    15411521#define MPC_PFUSB0_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C114 )
     
    16761656
    16771657/*
    1678  * リアルタイムクロック
     1658 * リアルタイムクロック
    16791659 */
    16801660#define RTC_R64CNT_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C400 )
     
    16881668
    16891669/*
    1690  * 12 ビットA/D コンバータ
     1670 * 12 ビットA/D コンバータ
    16911671 */
    16921672#define S12AD_ADCSR_ADDR                ( ( volatile uint8_t __evenaccess * )0x00089000 )
     
    19171897
    19181898/*
    1919  *  UART関連の定義
     1899 *  UART関連の定義
    19201900 *
    1921  *  pdicのrx600/rx630_uart.cで使用する.
    1922  */
    1923 /*
    1924  *  シリアルI/Oの個数
     1901 *  pdicのrx600/rx630_uart.cで使用する.
     1902 */
     1903/*
     1904 *  シリアルI/Oの個数
    19251905 */
    19261906#define TNUM_SIOP       ( 2 )
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    77 *  Copyright (C) 2013 by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              プロセッサ依存モジュール(RX630用)
     42 *              プロセッサ依存モジュール(RX630用)
    5843 */
    5944
     
    6247
    6348/*
    64  *  割込み要因プライオリティレジスタアドレステーブル
     49 *  割込み要因プライオリティレジスタアドレステーブル
    6550 */
    6651volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
    67         NULL,                                                   /* No.0  予約 */
    68         NULL,                                                   /* No.1  予約 */
    69         NULL,                                                   /* No.2  予約 */
    70         NULL,                                                   /* No.3  予約 */
    71         NULL,                                                   /* No.4  予約 */
    72         NULL,                                                   /* No.5  予約 */
    73         NULL,                                                   /* No.6  予約 */
    74         NULL,                                                   /* No.7  予約 */
    75         NULL,                                                   /* No.8  予約 */
    76         NULL,                                                   /* No.9  予約 */
    77         NULL,                                                   /* No.10  予約 */
    78         NULL,                                                   /* No.11  予約 */
    79         NULL,                                                   /* No.12  予約 */
    80         NULL,                                                   /* No.13  予約 */
    81         NULL,                                                   /* No.14  予約 */
    82         NULL,                                                   /* No.15  予約 */
    83         ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
    84         NULL,                                                   /* No.17  予約 */
    85         NULL,                                                   /* No.18  予約 */
    86         NULL,                                                   /* No.19  予約 */
    87         NULL,                                                   /* No.20  予約 */
     52        NULL,                                                   /* No.0  予約 */
     53        NULL,                                                   /* No.1  予約 */
     54        NULL,                                                   /* No.2  予約 */
     55        NULL,                                                   /* No.3  予約 */
     56        NULL,                                                   /* No.4  予約 */
     57        NULL,                                                   /* No.5  予約 */
     58        NULL,                                                   /* No.6  予約 */
     59        NULL,                                                   /* No.7  予約 */
     60        NULL,                                                   /* No.8  予約 */
     61        NULL,                                                   /* No.9  予約 */
     62        NULL,                                                   /* No.10  予約 */
     63        NULL,                                                   /* No.11  予約 */
     64        NULL,                                                   /* No.12  予約 */
     65        NULL,                                                   /* No.13  予約 */
     66        NULL,                                                   /* No.14  予約 */
     67        NULL,                                                   /* No.15  予約 */
     68        ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
     69        NULL,                                                   /* No.17  予約 */
     70        NULL,                                                   /* No.18  予約 */
     71        NULL,                                                   /* No.19  予約 */
     72        NULL,                                                   /* No.20  予約 */
    8873        ICU_IPR001_ADDR,                                /* No.21  FCU FIFERR */
    89         NULL,                                                   /* No.22  予約 */
     74        NULL,                                                   /* No.22  予約 */
    9075        ICU_IPR002_ADDR,                                /* No.23  FCU FRDYI */
    91         NULL,                                                   /* No.24  予約 */
    92         NULL,                                                   /* No.25  予約 */
    93         NULL,                                                   /* No.26  予約 */
     76        NULL,                                                   /* No.24  予約 */
     77        NULL,                                                   /* No.25  予約 */
     78        NULL,                                                   /* No.26  予約 */
    9479        ICU_IPR003_ADDR,                                /* No.27  SWINT */
    95         ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
    96         ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
    97         ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
    98         ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
     80        ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
     81        ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
     82        ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
     83        ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
    9984        ICU_IPR032_ADDR,                                /* No.32  ETHER */
    10085        ICU_IPR033_ADDR,                                /* No.33  USB0 D0FIFO0 */
     
    125110        ICU_IPR056_ADDR,                                /* No.58  CAN RXM2 */
    126111        ICU_IPR056_ADDR,                                /* No.59  CAN TXM2 */
    127         NULL,                                                   /* No.60  予約 */
    128         NULL,                                                   /* No.61  予約 */
     112        NULL,                                                   /* No.60  予約 */
     113        NULL,                                                   /* No.61  予約 */
    129114        ICU_IPR062_ADDR,                                /* No.62  RTC PRD */
    130         NULL,                                                   /* No.63  予約 */
    131         ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
    132         ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
    133         ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
    134         ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
    135         ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
    136         ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
    137         ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
    138         ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
    139         ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
    140         ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
    141         ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
    142         ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
    143         ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
    144         ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
    145         ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
    146         ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
    147         NULL,                                                   /* No.80  予約 */
    148         NULL,                                                   /* No.81  予約 */
    149         NULL,                                                   /* No.82  予約 */
    150         NULL,                                                   /* No.83  予約 */
    151         NULL,                                                   /* No.84  予約 */
    152         NULL,                                                   /* No.85  予約 */
    153         NULL,                                                   /* No.86  予約 */
    154         NULL,                                                   /* No.87  予約 */
    155         NULL,                                                   /* No.88  予約 */
    156         NULL,                                                   /* No.89  予約 */
     115        NULL,                                                   /* No.63  予約 */
     116        ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
     117        ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
     118        ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
     119        ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
     120        ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
     121        ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
     122        ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
     123        ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
     124        ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
     125        ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
     126        ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
     127        ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
     128        ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
     129        ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
     130        ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
     131        ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
     132        NULL,                                                   /* No.80  予約 */
     133        NULL,                                                   /* No.81  予約 */
     134        NULL,                                                   /* No.82  予約 */
     135        NULL,                                                   /* No.83  予約 */
     136        NULL,                                                   /* No.84  予約 */
     137        NULL,                                                   /* No.85  予約 */
     138        NULL,                                                   /* No.86  予約 */
     139        NULL,                                                   /* No.87  予約 */
     140        NULL,                                                   /* No.88  予約 */
     141        NULL,                                                   /* No.89  予約 */
    157142        ICU_IPR090_ADDR,                                /* No.90  USBR0 */
    158143        ICU_IPR091_ADDR,                                /* No.91  USBR1 */
    159144        ICU_IPR092_ADDR,                                /* No.92  RTC ALM */
    160145        ICU_IPR093_ADDR,                                /* No.93  RTC PRD */
    161         NULL,                                                   /* No.94  予約 */
    162         NULL,                                                   /* No.95  予約 */
    163         NULL,                                                   /* No.96  予約 */
    164         NULL,                                                   /* No.97  予約 */
     146        NULL,                                                   /* No.94  予約 */
     147        NULL,                                                   /* No.95  予約 */
     148        NULL,                                                   /* No.96  予約 */
     149        NULL,                                                   /* No.97  予約 */
    165150        ICU_IPR098_ADDR,                                /* No.98  AD ADI0 */
    166         NULL,                                                   /* No.99  予約 */
    167         NULL,                                                   /* No.100  予約 */
    168         NULL,                                                   /* No.101  予約 */
     151        NULL,                                                   /* No.99  予約 */
     152        NULL,                                                   /* No.100  予約 */
     153        NULL,                                                   /* No.101  予約 */
    169154        ICU_IPR102_ADDR,                                /* No.102 S12AD S12ADIO */
    170         NULL,                                                   /* No.103  予約 */
    171         NULL,                                                   /* No.104  予約 */
    172         NULL,                                                   /* No.105  予約 */
     155        NULL,                                                   /* No.103  予約 */
     156        NULL,                                                   /* No.104  予約 */
     157        NULL,                                                   /* No.105  予約 */
    173158        ICU_IPR106_ADDR,                                /* No.106 ICU GROUP0 */
    174159        ICU_IPR107_ADDR,                                /* No.107 ICU GROUP1 */
     
    178163        ICU_IPR111_ADDR,                                /* No.111 ICU GROUP5 */
    179164        ICU_IPR112_ADDR,                                /* No.112 ICU GROUP6 */
    180         NULL,                                                   /* No.113  予約 */
     165        NULL,                                                   /* No.113  予約 */
    181166        ICU_IPR114_ADDR,                                /* No.114 ICU GROUP12 */
    182         NULL,                                                   /* No.115  予約 */
    183         NULL,                                                   /* No.116  予約 */
    184         NULL,                                                   /* No.117  予約 */
    185         NULL,                                                   /* No.118  予約 */
    186         NULL,                                                   /* No.119  予約 */
    187         NULL,                                                   /* No.120  予約 */
    188         NULL,                                                   /* No.121  予約 */
     167        NULL,                                                   /* No.115  予約 */
     168        NULL,                                                   /* No.116  予約 */
     169        NULL,                                                   /* No.117  予約 */
     170        NULL,                                                   /* No.118  予約 */
     171        NULL,                                                   /* No.119  予約 */
     172        NULL,                                                   /* No.120  予約 */
     173        NULL,                                                   /* No.121  予約 */
    189174        ICU_IPR122_ADDR,                                /* No.122 SCI12 SCIX0 */
    190175        ICU_IPR123_ADDR,                                /* No.123 SCI12 SCIX1 */
     
    233218        ICU_IPR167_ADDR,                                /* No.166 POE OEI1 */
    234219        ICU_IPR167_ADDR,                                /* No.167 POE OEI2 */
    235         NULL,                                                   /* No.168  予約 */
    236         NULL,                                                   /* No.169  予約 */
     220        NULL,                                                   /* No.168  予約 */
     221        NULL,                                                   /* No.169  予約 */
    237222        ICU_IPR170_ADDR,                                /* No.170 TMR0 CMIA0 */
    238223        ICU_IPR170_ADDR,                                /* No.171 TMR0 CMIB0 */
     
    269254        ICU_IPR202_ADDR,                                /* No.202 EXDMAC EXDMACI0 */
    270255        ICU_IPR203_ADDR,                                /* No.203 EXDMAC EXDMACI1 */
    271         NULL,                                                   /* No.204  予約 */
    272         NULL,                                                   /* No.205  予約 */
    273         NULL,                                                   /* No.206  予約 */
    274         NULL,                                                   /* No.207  予約 */
    275         NULL,                                                   /* No.208  予約 */
    276         NULL,                                                   /* No.209  予約 */
    277         NULL,                                                   /* No.210  予約 */
    278         NULL,                                                   /* No.211  予約 */
    279         NULL,                                                   /* No.212  予約 */
    280         NULL,                                                   /* No.213  予約 */
     256        NULL,                                                   /* No.204  予約 */
     257        NULL,                                                   /* No.205  予約 */
     258        NULL,                                                   /* No.206  予約 */
     259        NULL,                                                   /* No.207  予約 */
     260        NULL,                                                   /* No.208  予約 */
     261        NULL,                                                   /* No.209  予約 */
     262        NULL,                                                   /* No.210  予約 */
     263        NULL,                                                   /* No.211  予約 */
     264        NULL,                                                   /* No.212  予約 */
     265        NULL,                                                   /* No.213  予約 */
    281266        ICU_IPR214_ADDR,                                /* No.214 SCI0 RXI0 */
    282267        ICU_IPR214_ADDR,                                /* No.215 SCI0 TXI0 */
     
    319304        ICU_IPR250_ADDR,                                /* No.252 SCI12 TEI12 */
    320305        ICU_IPR253_ADDR,                                /* No.253 IEB IEBINT */
    321         NULL,                                                   /* No.254  予約 */
    322         NULL,                                                   /* No.255  予約 */
     306        NULL,                                                   /* No.254  予約 */
     307        NULL,                                                   /* No.255  予約 */
    323308};
    324309
    325310
    326311/*
    327  *  割込み要求許可レジスタアドレステーブル
     312 *  割込み要求許可レジスタアドレステーブル
    328313 */
    329314const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
    330         { NULL, INVALID_OFFSET },                       /* No.0   äºˆç´„ */
    331         { NULL, INVALID_OFFSET },                       /* No.1   äºˆç´„ */
    332         { NULL, INVALID_OFFSET },                       /* No.2   äºˆç´„ */
    333         { NULL, INVALID_OFFSET },                       /* No.3   äºˆç´„ */
    334         { NULL, INVALID_OFFSET },                       /* No.4   äºˆç´„ */
    335         { NULL, INVALID_OFFSET },                       /* No.5   äºˆç´„ */
    336         { NULL, INVALID_OFFSET },                       /* No.6   äºˆç´„ */
    337         { NULL, INVALID_OFFSET },                       /* No.7   äºˆç´„ */
    338         { NULL, INVALID_OFFSET },                       /* No.8   äºˆç´„ */
    339         { NULL, INVALID_OFFSET },                       /* No.9   äºˆç´„ */
    340         { NULL, INVALID_OFFSET },                       /* No.10  予約 */
    341         { NULL, INVALID_OFFSET },                       /* No.11  予約 */
    342         { NULL, INVALID_OFFSET },                       /* No.12  予約 */
    343         { NULL, INVALID_OFFSET },                       /* No.13  予約 */
    344         { NULL, INVALID_OFFSET },                       /* No.14  予約 */
    345         { NULL, INVALID_OFFSET },                       /* No.15  予約 */
    346         { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
    347         { NULL, INVALID_OFFSET },                       /* No.17  予約 */
    348         { NULL, INVALID_OFFSET },                       /* No.18  予約 */
    349         { NULL, INVALID_OFFSET },                       /* No.19  予約 */
    350         { NULL, INVALID_OFFSET },                       /* No.20  予約 */
     315        { NULL, INVALID_OFFSET },                       /* No.0   予約 */
     316        { NULL, INVALID_OFFSET },                       /* No.1   予約 */
     317        { NULL, INVALID_OFFSET },                       /* No.2   予約 */
     318        { NULL, INVALID_OFFSET },                       /* No.3   予約 */
     319        { NULL, INVALID_OFFSET },                       /* No.4   予約 */
     320        { NULL, INVALID_OFFSET },                       /* No.5   予約 */
     321        { NULL, INVALID_OFFSET },                       /* No.6   予約 */
     322        { NULL, INVALID_OFFSET },                       /* No.7   予約 */
     323        { NULL, INVALID_OFFSET },                       /* No.8   予約 */
     324        { NULL, INVALID_OFFSET },                       /* No.9   予約 */
     325        { NULL, INVALID_OFFSET },                       /* No.10  予約 */
     326        { NULL, INVALID_OFFSET },                       /* No.11  予約 */
     327        { NULL, INVALID_OFFSET },                       /* No.12  予約 */
     328        { NULL, INVALID_OFFSET },                       /* No.13  予約 */
     329        { NULL, INVALID_OFFSET },                       /* No.14  予約 */
     330        { NULL, INVALID_OFFSET },                       /* No.15  予約 */
     331        { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
     332        { NULL, INVALID_OFFSET },                       /* No.17  予約 */
     333        { NULL, INVALID_OFFSET },                       /* No.18  予約 */
     334        { NULL, INVALID_OFFSET },                       /* No.19  予約 */
     335        { NULL, INVALID_OFFSET },                       /* No.20  予約 */
    351336        { ICU_IER02_ADDR, ICU_IEN5_BIT },       /* No.21  FCU FIFERR */
    352         { NULL, INVALID_OFFSET },                       /* No.22  予約 */
     337        { NULL, INVALID_OFFSET },                       /* No.22  予約 */
    353338        { ICU_IER02_ADDR, ICU_IEN7_BIT },       /* No.23  FCU FRDYI */
    354         { NULL, INVALID_OFFSET },                       /* No.24  予約 */
    355         { NULL, INVALID_OFFSET },                       /* No.25  予約 */
    356         { NULL, INVALID_OFFSET },                       /* No.26  予約 */
     339        { NULL, INVALID_OFFSET },                       /* No.24  予約 */
     340        { NULL, INVALID_OFFSET },                       /* No.25  予約 */
     341        { NULL, INVALID_OFFSET },                       /* No.26  予約 */
    357342        { ICU_IER03_ADDR, ICU_IEN3_BIT },       /* No.27  SWINT */
    358         { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
    359         { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
    360         { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
    361         { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
     343        { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
     344        { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
     345        { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
     346        { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
    362347        { ICU_IER04_ADDR, ICU_IEN0_BIT },       /* No.32  ETHER */
    363348        { ICU_IER04_ADDR, ICU_IEN1_BIT },       /* No.33  USB0 D0FIFO0 */
     
    388373        { ICU_IER07_ADDR, ICU_IEN2_BIT },       /* No.58  CAN2 RXM2 */
    389374        { ICU_IER07_ADDR, ICU_IEN3_BIT },       /* No.59  CAN2 TXM2 */
    390         { NULL, INVALID_OFFSET },                       /* No.60  予約 */
    391         { NULL, INVALID_OFFSET },                       /* No.61  予約 */
     375        { NULL, INVALID_OFFSET },                       /* No.60  予約 */
     376        { NULL, INVALID_OFFSET },                       /* No.61  予約 */
    392377        { ICU_IER07_ADDR, ICU_IEN6_BIT },       /* No.62  RTC PRD */
    393         { NULL, INVALID_OFFSET },                       /* No.63  予約 */
    394         { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
    395         { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
    396         { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
    397         { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
    398         { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
    399         { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
    400         { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
    401         { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
    402         { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
    403         { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
    404         { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
    405         { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
    406         { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
    407         { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
    408         { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
    409         { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
    410         { NULL, INVALID_OFFSET },                       /* No.80  予約 */
    411         { NULL, INVALID_OFFSET },                       /* No.81  予約 */
    412         { NULL, INVALID_OFFSET },                       /* No.82  予約 */
    413         { NULL, INVALID_OFFSET },                       /* No.83  予約 */
    414         { NULL, INVALID_OFFSET },                       /* No.84  予約 */
    415         { NULL, INVALID_OFFSET },                       /* No.85  予約 */
    416         { NULL, INVALID_OFFSET },                       /* No.86  予約 */
    417         { NULL, INVALID_OFFSET },                       /* No.87  予約 */
    418         { NULL, INVALID_OFFSET },                       /* No.88  予約 */
    419         { NULL, INVALID_OFFSET },                       /* No.89  予約 */
     378        { NULL, INVALID_OFFSET },                       /* No.63  予約 */
     379        { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
     380        { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
     381        { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
     382        { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
     383        { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
     384        { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
     385        { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
     386        { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
     387        { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
     388        { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
     389        { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
     390        { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
     391        { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
     392        { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
     393        { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
     394        { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
     395        { NULL, INVALID_OFFSET },                       /* No.80  予約 */
     396        { NULL, INVALID_OFFSET },                       /* No.81  予約 */
     397        { NULL, INVALID_OFFSET },                       /* No.82  予約 */
     398        { NULL, INVALID_OFFSET },                       /* No.83  予約 */
     399        { NULL, INVALID_OFFSET },                       /* No.84  予約 */
     400        { NULL, INVALID_OFFSET },                       /* No.85  予約 */
     401        { NULL, INVALID_OFFSET },                       /* No.86  予約 */
     402        { NULL, INVALID_OFFSET },                       /* No.87  予約 */
     403        { NULL, INVALID_OFFSET },                       /* No.88  予約 */
     404        { NULL, INVALID_OFFSET },                       /* No.89  予約 */
    420405        { ICU_IER0B_ADDR, ICU_IEN2_BIT },       /* No.90  USBR0 */
    421406        { ICU_IER0B_ADDR, ICU_IEN3_BIT },       /* No.91  USBR1 */
    422407        { ICU_IER0B_ADDR, ICU_IEN4_BIT },       /* No.92  RTC ALM */
    423408        { ICU_IER0B_ADDR, ICU_IEN5_BIT },       /* No.92  RTC PRD */
    424         { NULL, INVALID_OFFSET },                       /* No.94  予約 */
    425         { NULL, INVALID_OFFSET },                       /* No.95  予約 */
    426         { NULL, INVALID_OFFSET },                       /* No.96  予約 */
    427         { NULL, INVALID_OFFSET },                       /* No.97  予約 */
     409        { NULL, INVALID_OFFSET },                       /* No.94  予約 */
     410        { NULL, INVALID_OFFSET },                       /* No.95  予約 */
     411        { NULL, INVALID_OFFSET },                       /* No.96  予約 */
     412        { NULL, INVALID_OFFSET },                       /* No.97  予約 */
    428413        { ICU_IER0C_ADDR, ICU_IEN2_BIT },       /* No.98  AD0 ADI0 */
    429         { NULL, INVALID_OFFSET },                       /* No.99  予約 */
    430         { NULL, INVALID_OFFSET },                       /* No.100 予約 */
    431         { NULL, INVALID_OFFSET },                       /* No.101 予約 */
     414        { NULL, INVALID_OFFSET },                       /* No.99  予約 */
     415        { NULL, INVALID_OFFSET },                       /* No.100 予約 */
     416        { NULL, INVALID_OFFSET },                       /* No.101 予約 */
    432417        { ICU_IER0C_ADDR, ICU_IEN6_BIT },       /* No.102 S12AD S12ADI00 */
    433         { NULL, INVALID_OFFSET },                       /* No.103 予約 */
    434         { NULL, INVALID_OFFSET },                       /* No.104 予約 */
    435         { NULL, INVALID_OFFSET },                       /* No.105 予約 */
     418        { NULL, INVALID_OFFSET },                       /* No.103 予約 */
     419        { NULL, INVALID_OFFSET },                       /* No.104 予約 */
     420        { NULL, INVALID_OFFSET },                       /* No.105 予約 */
    436421        { ICU_IER0D_ADDR, ICU_IEN2_BIT },       /* No.106 ICU GROUP0 */
    437422        { ICU_IER0D_ADDR, ICU_IEN3_BIT },       /* No.107 ICU GROUP1 */
     
    441426        { ICU_IER0D_ADDR, ICU_IEN7_BIT },       /* No.111 ICU GROUP5 */
    442427        { ICU_IER0E_ADDR, ICU_IEN0_BIT },       /* No.112 ICU GROUP6 */
    443         { NULL, INVALID_OFFSET },                       /* No.113 予約 */
     428        { NULL, INVALID_OFFSET },                       /* No.113 予約 */
    444429        { ICU_IER0E_ADDR, ICU_IEN1_BIT },       /* No.114 ICU GROUP12 */
    445         { NULL, INVALID_OFFSET },                       /* No.115 予約 */
    446         { NULL, INVALID_OFFSET },                       /* No.116 予約 */
    447         { NULL, INVALID_OFFSET },                       /* No.117 予約 */
    448         { NULL, INVALID_OFFSET },                       /* No.118 予約 */
    449         { NULL, INVALID_OFFSET },                       /* No.119 予約 */
    450         { NULL, INVALID_OFFSET },                       /* No.120 予約 */
    451         { NULL, INVALID_OFFSET },                       /* No.121 予約 */
     430        { NULL, INVALID_OFFSET },                       /* No.115 予約 */
     431        { NULL, INVALID_OFFSET },                       /* No.116 予約 */
     432        { NULL, INVALID_OFFSET },                       /* No.117 予約 */
     433        { NULL, INVALID_OFFSET },                       /* No.118 予約 */
     434        { NULL, INVALID_OFFSET },                       /* No.119 予約 */
     435        { NULL, INVALID_OFFSET },                       /* No.120 予約 */
     436        { NULL, INVALID_OFFSET },                       /* No.121 予約 */
    452437        { ICU_IER0F_ADDR, ICU_IEN2_BIT },       /* No.122 SCI12 SCIX0 */
    453438        { ICU_IER0F_ADDR, ICU_IEN3_BIT },       /* No.123 SCI12 SCIX1 */
     
    496481        { ICU_IER14_ADDR, ICU_IEN6_BIT },       /* No.166 POE OEI1 */
    497482        { ICU_IER14_ADDR, ICU_IEN7_BIT },       /* No.167 POE OEI2 */
    498         { NULL, INVALID_OFFSET },                       /* No.168 予約 */
    499         { NULL, INVALID_OFFSET },                       /* No.169 予約 */
     483        { NULL, INVALID_OFFSET },                       /* No.168 予約 */
     484        { NULL, INVALID_OFFSET },                       /* No.169 予約 */
    500485        { ICU_IER15_ADDR, ICU_IEN2_BIT },       /* No.170 TMR0 CMIA0 */
    501486        { ICU_IER15_ADDR, ICU_IEN3_BIT },       /* No.171 TMR0 CMIB0 */
     
    532517        { ICU_IER19_ADDR, ICU_IEN2_BIT },       /* No.202 EXDMAC EXDMAC0I */
    533518        { ICU_IER19_ADDR, ICU_IEN3_BIT },       /* No.203 EXDMAC EXDMAC1I */
    534         { NULL, INVALID_OFFSET },                       /* No.204 予約 */
    535         { NULL, INVALID_OFFSET },                       /* No.205 予約 */
    536         { NULL, INVALID_OFFSET },                       /* No.206 予約 */
    537         { NULL, INVALID_OFFSET },                       /* No.207 予約 */
    538         { NULL, INVALID_OFFSET },                       /* No.208 予約 */
    539         { NULL, INVALID_OFFSET },                       /* No.209 予約 */
    540         { NULL, INVALID_OFFSET },                       /* No.210 予約 */
    541         { NULL, INVALID_OFFSET },                       /* No.211 予約 */
    542         { NULL, INVALID_OFFSET },                       /* No.212 予約 */
    543         { NULL, INVALID_OFFSET },                       /* No.213 予約 */
     519        { NULL, INVALID_OFFSET },                       /* No.204 予約 */
     520        { NULL, INVALID_OFFSET },                       /* No.205 予約 */
     521        { NULL, INVALID_OFFSET },                       /* No.206 予約 */
     522        { NULL, INVALID_OFFSET },                       /* No.207 予約 */
     523        { NULL, INVALID_OFFSET },                       /* No.208 予約 */
     524        { NULL, INVALID_OFFSET },                       /* No.209 予約 */
     525        { NULL, INVALID_OFFSET },                       /* No.210 予約 */
     526        { NULL, INVALID_OFFSET },                       /* No.211 予約 */
     527        { NULL, INVALID_OFFSET },                       /* No.212 予約 */
     528        { NULL, INVALID_OFFSET },                       /* No.213 予約 */
    544529        { ICU_IER1A_ADDR, ICU_IEN6_BIT },       /* No.214 SCI0 RXI0 */
    545530        { ICU_IER1A_ADDR, ICU_IEN7_BIT },       /* No.215 SCI0 TXI0 */
     
    582567        { ICU_IER1F_ADDR, ICU_IEN4_BIT },       /* No.252 SCI12 TEI12 */
    583568        { ICU_IER1F_ADDR, ICU_IEN5_BIT },       /* No.253 IEB IEBINT */
    584         { NULL, INVALID_OFFSET },                       /* No.254 予約 */
    585         { NULL, INVALID_OFFSET },                       /* No.255 予約 */
     569        { NULL, INVALID_OFFSET },                       /* No.254 予約 */
     570        { NULL, INVALID_OFFSET },                       /* No.255 予約 */
    586571};
    587572
    588573
    589574/*
    590  *  IRQコントロールレジスタアドレステーブル
     575 *  IRQコントロールレジスタアドレステーブル
    591576 */
    592577volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              プロセッサ依存モジュール(RX630用)
     42 *              プロセッサ依存モジュール(RX630用)
    5843 *
    59  *  このインクルードファイルは,target_config.h(または,そこからインク
    60  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    61  *  直接インクルードしてはならない.
     44 *  このインクルードファイルは,target_config.h(または,そこからインク
     45 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     46 *  直接インクルードしてはならない.
    6247 */
    6348
     
    6853
    6954/*
    70  *  割込み要因数
     55 *  割込み要因数
    7156 */
    7257#define INHNO_MAX       UINT_C( 256 )
     
    7560
    7661/*
    77  *  割込み制御用型定義
     62 *  割込み制御用型定義
    7863 */
    7964typedef struct ier_info {
     
    8570
    8671/*
    87  *  割込み制御用定義
     72 *  割込み制御用定義
    8873 */
    8974#define INVALID_OFFSET                          ( 0xFFU )
     
    9883
    9984/*
    100  *  割込み制御用テーブル
     85 *  割込み制御用テーブル
    10186 */
    10287
    103 /* 割込み要因プライオリティレジスタアドレス */
     88/* 割込み要因プライオリティレジスタアドレス */
    10489extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
    105 /* 割込み要求許可レジスタアドレス */
     90/* 割込み要求許可レジスタアドレス */
    10691extern const IER_INFO ier_reg_addr[];
    107 /* 割込み要求レジスタアドレス */
     92/* 割込み要求レジスタアドレス */
    10893extern volatile uint8_t __evenaccess * const ir_reg_addr[];
    109 /* IRQコントロールレジスタアドレス */
     94/* IRQコントロールレジスタアドレス */
    11095extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
    11196
     
    11398
    11499/*
    115  *  プロセッサ依存モジュール(RX630用)
     100 *  プロセッサ依存モジュール(RX630用)
    116101 */
    117102#include "rx630_gcc/prc_config.h"
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/start.S

    • Property svn:mime-type changed from text/plain to text/gas; charset=UTF-8
    r313 r315  
    1010;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111;*
    12 ;*  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14 ;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15 ;*  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19 ;*      スコード中に含まれていること.
    20 ;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21 ;*      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24 ;*      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26 ;*      の無保証規定を掲載すること.
    27 ;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28 ;*      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30 ;*      と.
    31 ;*    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34 ;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35 ;*    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38 ;*        報告すること.
    39 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40 ;*      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43 ;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44 ;*      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46 ;*      å
    47 è²¬ã™ã‚‹ã“と.
     12;*  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14;*  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17;*      スコード中に含まれていること.
     18;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19;*      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20;*      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21;*      の無保証規定を掲載すること.
     22;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23;*      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24;*      と.
     25;*    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27;*    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28;*        報告すること.
     29;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30;*      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32;*      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33;*      免責すること.
    4834;*
    49 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51 ;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52 ;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53 ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54 ;*  の責任を負わない.
     35;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39;*  の責任を負わない.
    5540;*
    5641;*  @(#) $Id$
     
    5843
    5944#define TOPPERS_MACRO_ONLY
    60 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    61 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    62 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     45#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     46#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     47#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6348#include "kernel_impl.h"
    6449#include "sectrx.inc"
    6550
    6651        ;
    67         ;  メモリマップの定義(ターゲット依存部)
     52        ;  メモリマップの定義(ターゲット依存部)
    6853        ;
    6954
    70 .equ    DFLRE,                          007FC440H               ; DFLREレジスタ
     55.equ    DFLRE,                          007FC440H               ; DFLREレジスタ
    7156
    7257.equ    DB_BLOCK_ENABLE,        02D0FH
    7358
    7459;
    75 åˆæœŸåŒ–ルーチン
     60初期化ルーチン
    7661;
    7762        .section        P, CODE
     
    8671_start:
    8772        ;
    88         ;  電源投å
    89 ¥å¾Œã¯ãƒ¬ãƒ™ãƒ«0, å
    90 ¨å‰²è¾¼ã¿ç¦æ­¢çŠ¶æ
    91 ‹ã§ã‚ã‚‹.
    92         ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
    93         ;  の初期化は行わない.
     73        ;  電源投入後はレベル0, 全割込み禁止状態である.
     74        ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
     75        ;  の初期化は行わない.
    9476        ;
    9577
    9678        ;
    97         ;  å†
    98 è”µROM(データフラッシュ)領域の設定
     79        ;  内蔵ROM(データフラッシュ)領域の設定
    9980        ;
    100         ;  リセット後, データフラッシュ領域は読み出し禁止となっている
    101         ;  ため, 読み出し許可に設定する.
     81        ;  リセット後, データフラッシュ領域は読み出し禁止となっている
     82        ;  ため, 読み出し許可に設定する.
    10283        ;
    10384        mov.l   #DFLRE, r5
     
    10586       
    10687        ;
    107         ;  スタックポインタの設定
     88        ;  スタックポインタの設定
    10889        ;
    109         ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
    110         ;  ユーザ領域を設定する.
    111         ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
     90        ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
     91        ;  ユーザ領域を設定する.
     92        ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
    11293        ;
    11394        mov.l   #__kernel_istkpt, r5
    114         mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
     95        mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
    11596
    11697        ;
    117         ;  可変ベクタテーブルの設定
     98        ;  可変ベクタテーブルの設定
    11899        ;
    119         ; mvtc  #VVECTOR_TOP, intb      ; ベクタテーブルの設定
    120         mvtc    #_vvector_table, intb   ; ベクタテーブルの設定
     100        ; mvtc  #VVECTOR_TOP, intb      ; ベクタテーブルの設定
     101        mvtc    #_vvector_table, intb   ; ベクタテーブルの設定
    121102
    122103        ;
    123         ;  ハードウェア固有の初期化ルーチンの呼出し
     104        ;  ハードウェア固有の初期化ルーチンの呼出し
    124105        ;
    125106        mov.l   #_hardware_init_hook, r5
     
    129110
    130111        ;
    131         ;  初期値あり変数領域の初期化
     112        ;  初期値あり変数領域の初期化
    132113        ;
    133114init_D:
    134115        mov.l   #(_edata - _data), r3
    135116        cmp             #0, r3
    136         beq.b   clear_B                                         ; サイズ0なら初期化å¿
    137 è¦ãªã—
     117        beq.b   clear_B                                         ; サイズ0なら初期化必要なし
    138118        mov.l   #(_data), r1
    139119        mov.l   #(_mdata), r2
     
    141121
    142122        ;
    143         ;  初期値なし変数領域の初期化
     123        ;  初期値なし変数領域の初期化
    144124        ;
    145125clear_B:
     
    150130
    151131        ;
    152         ;  software_init_hook を呼出し(0 でない場合)
     132        ;  software_init_hook を呼出し(0 でない場合)
    153133        ;
    154         ;  ソフトウェア環境(特にライブラリ)に依存してå¿
    155 è¦ãªåˆæœŸåŒ–処理
    156         ;  がある場合は,software_init_hook という関数を用意すればよい.
     134        ;  ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
     135        ;  がある場合は,software_init_hook という関数を用意すればよい.
    157136        ;
    158137        mov.l   #_software_init_hook, r5
     
    162141
    163142        ;
    164         ;  カーネルスタート
     143        ;  カーネルスタート
    165144        ;
    166145kernel_link:
Note: See TracChangeset for help on using the changeset viewer.