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_ccrx
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc.py

    • Property svn:eol-style set to native
    • Property svn:mime-type set to text/x-python; charset=UTF-8
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 = UINT_C(0x12);
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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_ccrx/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) の条件か,Free Software Foundation
    14  *  によってå
    15 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    16  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    17  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    18 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    19  *  利用と呼ぶ)することを無償で許諾する.
    20  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    21  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    22  *      スコード中に含まれていること.
    23  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    24  *      用できる形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    27  *      è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    29  *      の無保証規定を掲載すること.
    30  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    31  *      用できない形で再é
    32 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    33  *      と.
    34  *    (a) 再é
    35 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    36 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    37  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    38  *    (b) 再é
    39 å¸ƒã®å½¢æ
    40 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    41  *        報告すること.
    42  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    43  *      害からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトをå
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    50  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    51  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    52  *
    53  */
    54 
    55 /*
    56  *              プロセッサ依存モジュール(RX630用)
     12 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     13 *  によって公表されている GNU General Public License の Version 2 に記
     14 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     15 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     16 *  利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33 *
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     36 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     37 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     38 *
     39 */
     40
     41/*
     42 *              プロセッサ依存モジュール(RX630用)
    5743 */
    5844
     
    6248
    6349/*
    64  *  割込み発生回数を保存する変数
     50 *  割込み発生回数を保存する変数
    6551 */
    6652uint16_t        intnest;
    6753
    6854/*
    69  *  CPUロックフラグ実現のための変数
     55 *  CPUロックフラグ実現のための変数
    7056 */
    7157#if TIPM_LOCK != -15
    72 bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
    73 uint32_t        saved_ipl;              /* 割込み優å
    74 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     58bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
     59uint32_t        saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    7560#endif  /* TIPM_LOCK != -15     */
    7661
    7762
    7863/*
    79  *  プロセッサ依存の初期化
     64 *  プロセッサ依存の初期化
    8065 */
    8166void
     
    8368{
    8469        /*
    85          *  割込み発生回数の初期化
    86          *
    87          *  スタートアップはå
    88 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    89 ‹ & 非タスクコンテキスト
    90          *  にて動作するため, 非タスクコンテキストに偽è£
    91 ã™ã‚‹.
     70         *  割込み発生回数の初期化
     71         *
     72         *  スタートアップは全割込みロック状態 & 非タスクコンテキスト
     73         *  にて動作するため, 非タスクコンテキストに偽装する.
    9274         */
    9375        intnest = 1U;
     
    9577#if TIPM_LOCK != -15
    9678        /*
    97          *  CPUロックフラグ実現のための変数の初期化
     79         *  CPUロックフラグ実現のための変数の初期化
    9880         */
    9981        lock_flag = true;
     
    10486
    10587/*
    106  *  プロセッサ依存の終了処理
     88 *  プロセッサ依存の終了処理
    10789 */
    10890void
     
    11092{
    11193        /*
    112          *  特にå¿
    113 è¦ãªå‡¦ç†ã¯ãªã„
    114          */
    115 }
    116 
    117 
    118 /*
    119  *  CPU例外の発生状況のログ出力
     94         *  特に必要な処理はない
     95         */
     96}
     97
     98
     99/*
     100 *  CPU例外の発生状況のログ出力
    120101 *
    121  *  CPU例外ハンドラの中から,CPU例外æƒ
    122 å ±ãƒã‚¤ãƒ³ã‚¿ï¼ˆp_excinf)を引数とし
    123  *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
     102 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     103 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    124104 */
    125105#ifdef SUPPORT_XLOG_SYS
     
    152132
    153133/*
    154  *  割込み要求ラインの属性の設定
     134 *  割込み要求ラインの属性の設定
    155135 *
    156  *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
    157  *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
    158  *  にすべきであろう.
     136 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     137 *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
     138 *  にすべきであろう.
    159139 */
    160140void
     
    177157
    178158        /*
    179          *  割込みのマスク
    180          *
    181          *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
    182          *  込み優å
    183 ˆåº¦ã®è¨­å®šã‚’行うのは危険なため,割込み属性にかかわらず,
    184          *  一旦マスクする.
     159         *  割込みのマスク
     160         *
     161         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     162         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     163         *  一旦マスクする.
    185164         */
    186165        ( void )x_disable_int( intno );
    187166
    188167        /*
    189          *  レベルトリガ/エッジトリガの設定
    190          *
    191          *  IRQのみサポートする
     168         *  レベルトリガ/エッジトリガの設定
     169         *
     170         *  IRQのみサポートする
    192171         */
    193172        if( INTNO_IRQ( intno ) != 0U ){
     
    208187                else{
    209188                        /*
    210                          *  コンフィギュレータにてチェックしているため,
    211                          *  ここへくることはありえない.
     189                         *  コンフィギュレータにてチェックしているため,
     190                         *  ここへくることはありえない.
    212191                         */
    213192                        irq_val = 0U;
     
    218197
    219198        /*
    220          *  割込みレベルの設定
    221          *
    222          *  割込み番号に対応したIPR値を設定する.
     199         *  割込みレベルの設定
     200         *
     201         *  割込み番号に対応したIPR値を設定する.
    223202         */
    224203        sil_wrb_mem(ipr_reg_addr[intno], cfg_int_table[intno].intpri);
    225204
    226205        /*
    227          *  割込みのマスク解除
     206         *  割込みのマスク解除
    228207         */
    229208        if( ( intatr & TA_ENAINT ) != 0U ){
     
    235214#ifndef OMIT_DEFAULT_INT_HANDLER
    236215/*
    237  *  未登録の割込みが発生した場合に呼び出される
     216 *  未登録の割込みが発生した場合に呼び出される
    238217 */
    239218void
     
    246225#ifndef OMIT_DEFAULT_EXC_HANDLER
    247226/*
    248  *  未登録の例外が発生した場合に呼び出される
     227 *  未登録の例外が発生した場合に呼び出される
    249228 */
    250229void
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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) の条件か,Free Software Foundation
    15  *  によってå
    16 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    17  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    18  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    19 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    20  *  利用と呼ぶ)することを無償で許諾する.
    21  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    22  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    23  *      スコード中に含まれていること.
    24  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    25  *      用できる形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    28  *      è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    30  *      の無保証規定を掲載すること.
    31  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    32  *      用できない形で再é
    33 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    34  *      と.
    35  *    (a) 再é
    36 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    37 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    38  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    39  *    (b) 再é
    40 å¸ƒã®å½¢æ
    41 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    42  *        報告すること.
    43  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    44  *      害からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトをå
    46 è²¬ã™ã‚‹ã“と.
     13 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     14 *  によって公表されている GNU General Public License の Version 2 に記
     15 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     16 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     17 *  利用と呼ぶ)することを無償で許諾する.
     18 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     19 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     20 *      スコード中に含まれていること.
     21 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     22 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     23 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     24 *      の無保証規定を掲載すること.
     25 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     26 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     27 *      と.
     28 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     29 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     30 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     31 *        報告すること.
     32 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     33 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    4734 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    51  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    52  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     37 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     38 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    5339 *
    5440 */
    5541
    5642/*
    57  *              プロセッサ依存モジュール(RX630用)
    58  *
    59  *  このインクルードファイルは,target_config.h(または,そこからインク
    60  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    61  *  直接インクルードしてはならない.
     43 *              プロセッサ依存モジュール(RX630用)
     44 *
     45 *  このインクルードファイルは,target_config.h(または,そこからインク
     46 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     47 *  直接インクルードしてはならない.
    6248 */
    6349
     
    6854
    6955/*
    70  *  プロセッサの特殊命令のインライン関数定義
     56 *  プロセッサの特殊命令のインライン関数定義
    7157 */
    7258#include "prc_insn.h"
     
    7460
    7561/*
    76  * ターゲット依存の割込み属性の定義
     62 * ターゲット依存の割込み属性の定義
    7763 */
    7864#define TARGET_INTATR  (TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE | TA_LOWLEVEL)
     
    8066
    8167/*
    82  * スタックサイズのチェック方法指定
     68 * スタックサイズのチェック方法指定
    8369 */
    8470#define CHECK_STKSZ_ALIGN 4
     
    8672
    8773/*
    88  * タスクスタックサイズの最小値
    89  *
    90  * タスク起動時に4byte,
    91  * 割込みå
    92 ¥å£å‡¦ç†ã«ã¦48byte, CPU例外å
    93 ¥å£å‡¦ç†ã«ã¦84byte,
    94  * であるため, 最小値は88byteとする.
     74 * タスクスタックサイズの最小値
     75 *
     76 * タスク起動時に4byte,
     77 * 割込み入口処理にて48byte, CPU例外入口処理にて84byte,
     78 * であるため, 最小値は88byteとする.
    9579 */
    9680#define TARGET_MIN_STKSZ  88
     
    9882
    9983/*
    100  *  非タスクコンテキスト用のスタック初期値
     84 *  非タスクコンテキスト用のスタック初期値
    10185 */
    10286
     
    10589
    10690/*
    107  *  タスクコンテキストブロックの定義
     91 *  タスクコンテキストブロックの定義
    10892 */
    10993typedef struct task_context_block {
    110         void    *sp;            /* スタックポインタ */
    111         FP              pc;                     /* プログラムカウンタ */
     94        void    *sp;            /* スタックポインタ */
     95        FP              pc;                     /* プログラムカウンタ */
    11296} TSKCTXB;
    11397
    11498
    11599/*
    116  *  割込み発生回数を保存する変数
     100 *  割込み発生回数を保存する変数
    117101 */
    118102extern uint16_t intnest;
     
    120104
    121105/*
    122  *  CPUロック状æ
    123 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    124 ˆåº¦ãƒžã‚¹ã‚¯
    125  *
    126  *  TIPM_LOCKは,CPUロック状æ
    127 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    128 ˆåº¦ãƒžã‚¹ã‚¯ï¼Œã™ãªã‚ã¡ï¼Œã‚«ãƒ¼ãƒ
    129  *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
    130  *
    131  *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
    132  *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
    133  *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    134  *  設けないことになる(この場合には-15に設定することを推奨する).
     106 *  CPUロック状態での割込み優先度マスク
     107 *
     108 *  TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ
     109 *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
     110 *
     111 *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
     112 *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
     113 *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     114 *  設けないことになる(この場合には-15に設定することを推奨する).
    135115 */
    136116#ifndef TIPM_LOCK
     
    138118#define TIPM_LOCK       TMIN_INTPRI
    139119#else /* USE_SERIALDEBUG */
    140 /* CubeSuite+ で RXシリアルデバッガを使用する場合は通信用CSI割込みをカーネル管理外とする */
     120/* CubeSuite+ で RXシリアルデバッガを使用する場合は通信用CSI割込みをカーネル管理外とする */
    141121#define TIPM_LOCK       (TMIN_INTPRI + 1)
    142122#endif /* USE_SERIALDEBUG */
     
    145125
    146126/*
    147  *  TOPPERS標準割込み処理モデルの実現
    148  */
    149 /*
    150  *  コンテキストの参ç
    151 §
    152  *
    153  *  RXでは,割込みの戻りå
    154 ˆãŒã‚¿ã‚¹ã‚¯ã‹ã©ã†ã‹ã‚’判断するために intnest
    155  *  を使用している.これを用いてコンテキストを判断する.
     127 *  TOPPERS標準割込み処理モデルの実現
     128 */
     129/*
     130 *  コンテキストの参照
     131 *
     132 *  RXでは,割込みの戻り先がタスクかどうかを判断するために intnest
     133 *  を使用している.これを用いてコンテキストを判断する.
    156134 */
    157135Inline bool_t
    158136sense_context( void )
    159137{
    160         /*  ネストカウンタ0より大なら非タスクコンテキスト  */
     138        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    161139        return ( intnest > 0U );
    162140}
     
    164142
    165143/*
    166  *  CPUロックフラグ実現のための変数
    167  *
    168  *  これらの変数は,CPUロック状æ
    169 ‹ã®æ™‚のみ書き換えてよいものとする.
     144 *  CPUロックフラグ実現のための変数
     145 *
     146 *  これらの変数は,CPUロック状態の時のみ書き換えてよいものとする.
    170147 */
    171148#if TIPM_LOCK != -15
    172 extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
    173 extern uint32_t saved_ipl;              /* 割込み優å
    174 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     149extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
     150extern uint32_t saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    175151#endif  /* TIPM_LOCK != -15     */
    176152
     
    179155
    180156/*
    181  *  割込み優å
    182 ˆåº¦ãƒžã‚¹ã‚¯ã®å¤–部表現とå†
    183 éƒ¨è¡¨ç¾ã®å¤‰æ›
    184  *
    185  *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
    186  *  24~27ビット目の4ビットに割込み優å
    187 ˆåº¦ãƒ¬ãƒ™ãƒ«ï¼ˆIPL)が置かれている.
    188  *  カーネル管理外割込みを実è£
    189 ã™ã‚‹å ´åˆã«IPLを使用した制御を行う.
    190  *  カーネルは割込み優å
    191 ˆåº¦ãƒžã‚¹ã‚¯ï¼ˆ-1から連続した負の値)で管理されて
    192  *  いるためIPLとの変換がå¿
    193 è¦ã¨ãªã‚‹ï¼Ž
    194  */
    195 #define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに */
    196 #define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに */
    197 
    198 
    199 /*
    200  *  CPUロック状æ
    201 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    202 ˆåº¦ãƒžã‚¹ã‚¯ã®IPL
     157 *  割込み優先度マスクの外部表現と内部表現の変換
     158 *
     159 *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
     160 *  24~27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている.
     161 *  カーネル管理外割込みを実装する場合にIPLを使用した制御を行う.
     162 *  カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて
     163 *  いるためIPLとの変換が必要となる.
     164 */
     165#define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに     */
     166#define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに     */
     167
     168
     169/*
     170 *  CPUロック状態での割込み優先度マスクのIPL
    203171 */
    204172#define IPL_LOCK                ( IPM_TO_IPL( TIPM_LOCK ) )
    205173
    206174/*
    207  *  TIPM_ENAALL(割込み優å
    208 ˆåº¦ãƒžã‚¹ã‚¯å
    209 ¨è§£é™¤ï¼‰ã®IPL
     175 *  TIPM_ENAALL(割込み優先度マスク全解除)のIPL
    210176 */
    211177#define IPL_ENAALL              ( IPM_TO_IPL( TIPM_ENAALL ) )
     
    215181
    216182/*
    217  *  割込み要因毎のレベル & 属性定義テーブル
    218  *  (テンプレートファイルによる出力)
     183 *  割込み要因毎のレベル & 属性定義テーブル
     184 *  (テンプレートファイルによる出力)
    219185 */
    220186typedef struct cfg_int_info {
     
    227193
    228194/*
    229  *  割込み番号の範囲の判定
    230  *
    231  *  割込み番号が有効な値か厳密にチェックするため,
    232  *  コンフィギュレータ出力テーブルを参ç
    233 §ã™ã‚‹.
     195 *  割込み番号の範囲の判定
     196 *
     197 *  割込み番号が有効な値か厳密にチェックするため,
     198 *  コンフィギュレータ出力テーブルを参照する.
    234199 */
    235200#define VALID_INTNO( intno )    \
     
    238203#define VALID_INTNO_CFGINT( intno )     VALID_INTNO( intno )
    239204
    240 /* cre_intで有効な割込み番号の指定  */
     205/* cre_intで有効な割込み番号の指定  */
    241206#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
    242207
    243 /* cre_isrで有効な割込み番号の指定  */
     208/* cre_isrで有効な割込み番号の指定  */
    244209#define VALID_INTNO_CREISR(intno)       VALID_INTNO_CFGINT((intno))
    245210
    246211
    247212/*
    248  *  割込み制御レジスタ関連の定義
     213 *  割込み制御レジスタ関連の定義
    249214 */
    250215#define IRQ_POSEDGE                     ( 0x08U )
     
    255220
    256221/*
    257  *  CPUロック状æ
    258 ‹ã¸ã®ç§»è¡Œ
    259  *
    260  *  IPM(ハードウェアの割込み優å
    261 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,saved_iipmに保存し,カー
    262  *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
    263  *  に設定する.また,lock_flagをTRUEにする.
    264  *
    265  *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
    266  *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
    267  *  上の割込み優å
    268 ˆåº¦ãƒžã‚¹ã‚¯ãŒï¼ŒTIPM_LOCKと同じかそれより高いレベルに設定
    269  *  されている状æ
    270 ‹ã«ã‚たる.
    271  *
    272  *  この関数は,CPUロック状æ
    273 ‹ï¼ˆlock_flagがTRUEの状æ
    274 ‹ï¼‰ã§å‘¼ã°ã‚Œã‚‹ã“とは
    275  *  ないものと想定している.
     222 *  CPUロック状態への移行
     223 *
     224 *  IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー
     225 *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
     226 *  に設定する.また,lock_flagをTRUEにする.
     227 *
     228 *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
     229 *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
     230 *  上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定
     231 *  されている状態にあたる.
     232 *
     233 *  この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは
     234 *  ないものと想定している.
    276235 */
    277236Inline void
     
    284243
    285244        /*
    286          *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
    287          *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
    288          *  起動された割込み処理でsaved_iplが変更される可能性があるためで
    289          *  ある.
     245         *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
     246         *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
     247         *  起動された割込み処理でsaved_iplが変更される可能性があるためで
     248         *  ある.
    290249         */
    291250        ipl = current_ipl();
     
    304263
    305264/*
    306  *  CPUロック状æ
    307 ‹ã®è§£é™¤
    308  *
    309  *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優å
    310 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,
    311  *  saved_iipmに保存した値に戻す.
    312  *
    313  *  この関数は,CPUロック状æ
    314 ‹ï¼ˆlock_flagがtrueの状æ
    315 ‹ï¼‰ã§ã®ã¿å‘¼ã°ã‚Œã‚‹ã‚‚
    316  *  のと想定している.
     265 *  CPUロック状態の解除
     266 *
     267 *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を,
     268 *  saved_iipmに保存した値に戻す.
     269 *
     270 *  この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも
     271 *  のと想定している.
    317272 */
    318273Inline void
     
    332287
    333288/*
    334  *  CPUロック状æ
    335 ‹ã®å‚ç
    336 §
     289 *  CPUロック状態の参照
    337290 */
    338291Inline bool_t
     
    351304
    352305/*
    353  * (モデル上の)割込み優å
    354 ˆåº¦ãƒžã‚¹ã‚¯ã®è¨­å®š
    355  *
    356  *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優å
    357 ˆåº¦ãƒž
    358  *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
    359  *  を設定し,さらに,ハードウェアの割込み優å
    360 ˆåº¦ãƒžã‚¹ã‚¯ã‚’,設定しようと
    361  *  した(モデル上の)割込み優å
    362 ˆåº¦ãƒžã‚¹ã‚¯ã¨TIPM_LOCKの高い方に設定する.
     306 * (モデル上の)割込み優先度マスクの設定
     307 *
     308 *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ
     309 *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
     310 *  を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと
     311 *  した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する.
    363312 */
    364313Inline void
     
    384333
    385334/*
    386  * (モデル上の)割込み優å
    387 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    388 §
    389  *
    390  *  CPUロックフラグがクリアされている時はハードウェアの割込み優å
    391 ˆåº¦ãƒž
    392  *  スクを,セットされている時はsaved_iipmを参ç
    393 §ã™ã‚‹ï¼Ž
     335 * (モデル上の)割込み優先度マスクの参照
     336 *
     337 *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
     338 *  スクを,セットされている時はsaved_iipmを参照する.
    394339 */
    395340Inline PRI
     
    415360
    416361/*
    417  *  割込み要求禁止フラグのセット
    418  *
    419  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    420  *  フラグをセットしようとした場合には,FALSEを返す.
     362 *  割込み要求禁止フラグのセット
     363 *
     364 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     365 *  フラグをセットしようとした場合には,FALSEを返す.
    421366 */
    422367Inline bool_t
     
    424369{
    425370        /*
    426          *  レベル定義が0である場合はCFG_INTされていない
     371         *  レベル定義が0である場合はCFG_INTされていない
    427372         */
    428373        if( cfg_int_table[intno].intpri == 0 ){
     
    440385
    441386/*
    442  *  割込み要求禁止フラグのクリア
    443  *
    444  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    445  *  フラグをクリアしようとした場合には,FALSEを返す.
     387 *  割込み要求禁止フラグのクリア
     388 *
     389 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     390 *  フラグをクリアしようとした場合には,FALSEを返す.
    446391 */
    447392Inline bool_t
     
    449394{
    450395        /*
    451          *  レベル定義が0である場合はCFG_INTされていない
     396         *  レベル定義が0である場合はCFG_INTされていない
    452397         */
    453398        if( cfg_int_table[intno].intpri == 0 ){
     
    465410
    466411/*
    467  *  割込み要求のクリア
     412 *  割込み要求のクリア
    468413 */
    469414Inline void
     
    478423
    479424/*
    480  *  割込み要求のチェック
     425 *  割込み要求のチェック
    481426 */
    482427Inline bool_t
     
    484429{
    485430        /*
    486          *  割込み要求レジスタは0 or 1でしかないため,
    487          *  そのままの値を返す.
     431         *  割込み要求レジスタは0 or 1でしかないため,
     432         *  そのままの値を返す.
    488433         */
    489434        return ( *IR_REG(intno) );
     
    495440
    496441/*
    497  *  割込み要求ラインの属性の設定
     442 *  割込み要求ラインの属性の設定
    498443 */
    499444extern void     x_config_int( INTNO intno, ATR intatr, PRI intpri );
     
    501446
    502447/*
    503  *  割込みハンドラのå
    504 ¥å£ã§å¿
    505 è¦ãªIRC操作
     448 *  割込みハンドラの入口で必要なIRC操作
    506449 *
    507450 */
     
    509452i_begin_int( INTNO intno )
    510453{
    511         /* 特に行うべき処理はない */
    512 }
    513 
    514 
    515 /*
    516  *  割込みハンドラの出口でå¿
    517 è¦ãªIRC操作
     454        /* 特に行うべき処理はない */
     455}
     456
     457
     458/*
     459 *  割込みハンドラの出口で必要なIRC操作
    518460 *
    519461 */
     
    521463i_end_int( INTNO intno )
    522464{
    523         /* 特に行うべき処理はない */
    524 }
    525 
    526 
    527 /*
    528  *  最高優å
    529 ˆé †ä½ã‚¿ã‚¹ã‚¯ã¸ã®ãƒ‡ã‚£ã‚¹ãƒ‘ッチ(prc_support.a30)
    530  *
    531  *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
    532  *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状æ
    533 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッ
    534  *  チ許可状æ
    535 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    536 ˆåº¦ãƒžã‚¹ã‚¯å
    537 ¨è§£é™¤çŠ¶æ
    538 ‹ã§å‘¼ã³å‡ºã•ãª
    539  *  ければならない.
     465        /* 特に行うべき処理はない */
     466}
     467
     468
     469/*
     470 *  最高優先順位タスクへのディスパッチ(prc_support.a30)
     471 *
     472 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     473 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     474 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     475 *  ければならない.
    540476 */
    541477extern void     dispatch( void );
    542478
    543479/*
    544  *  ディスパッチャの動作開始(prc_support.a30)
    545  *
    546  *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
    547  *  みを禁止した状æ
    548 ‹ï¼ˆå
    549 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    550 ‹ã¨åŒç­‰ã®çŠ¶æ
    551 ‹ï¼‰ã§å‘¼ã³å‡ºã•ãªã‘れば
    552  *  ならない.
     480 *  ディスパッチャの動作開始(prc_support.a30)
     481 *
     482 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     483 *  みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ
     484 *  ならない.
    553485 */
    554486extern void     start_dispatch( void ) NoReturn;
    555487
    556488/*
    557  *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
    558  *
    559  *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
    560  *  スト・CPUロック状æ
    561 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    562 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    563 ˆ
    564  *  度マスクå
    565 ¨è§£é™¤çŠ¶æ
    566 ‹ã§å‘¼ã³å‡ºã•ãªã‘ればならない.
     489 *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
     490 *
     491 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     492 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     493 *  度マスク全解除状態で呼び出さなければならない.
    567494 */
    568495#define _kernel_exit_and_dispatch();    \
     
    573500
    574501/*
    575  *  カーネルの終了処理の呼出し(prc_support.a30)
    576  *
    577  *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
    578  *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
    579  *  す.
     502 *  カーネルの終了処理の呼出し(prc_support.a30)
     503 *
     504 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     505 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     506 *  す.
    580507 */
    581508extern void call_exit_kernel( void ) NoReturn;
    582509
    583510/*
    584  *  タスクコンテキストの初期化
    585  *
    586  *  タスクが休止状æ
    587 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    588 ‹ã«ç§»è¡Œã™ã‚‹æ™‚に呼ばれる.この時点
    589  *  でスタック領域を使ってはならない.
    590  *
    591  *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
    592  *  この時点ではTCBが定義されていないためである.
     511 *  タスクコンテキストの初期化
     512 *
     513 *  タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点
     514 *  でスタック領域を使ってはならない.
     515 *
     516 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     517 *  この時点ではTCBが定義されていないためである.
    593518 */
    594519extern void     start_r( void );
     
    598523        {                                                                                                                                                                       \
    599524                                                                                                                                                                                \
    600                 /*  スタックポインタ初期値の設定  */                                                                                      \
     525                /*  スタックポインタ初期値の設定  */                                                                                  \
    601526                ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) +    \
    602527                                                                ( p_tcb )->p_tinib->stksz );                                                    \
    603                 /* 起動番地の設定 */                                                                                                                     \
     528                /* 起動番地の設定 */                                                                                                                   \
    604529                ( p_tcb )->tskctxb.pc = ( FP ) start_r;                                                                                 \
    605530        }                                                                                                                                                                       \
     
    608533
    609534/*
    610  *  calltexは使用しない
     535 *  calltexは使用しない
    611536 */
    612537#define OMIT_CALLTEX
     
    614539
    615540/*
    616  *  割込みハンドラの設定
    617  *
    618  *  RX630はROMに割込みベクタをé
    619 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    620 ã™ã‚‹ï¼Ž
     541 *  割込みハンドラの設定
     542 *
     543 *  RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する.
    621544 */
    622545Inline void
     
    627550
    628551/*
    629  *  CPU例外ハンドラの設定
    630  *
    631  *  RX630はROMに例外ベクタをé
    632 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    633 ã™ã‚‹ï¼Ž
     552 *  CPU例外ハンドラの設定
     553 *
     554 *  RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する.
    634555 */
    635556Inline void
     
    640561
    641562/*
    642  *  割込み/例外ハンドラのå
    643 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
    644  *
    645  *  テンプレートファイルにより生成するため空マクロとする.
     563 *  割込み/例外ハンドラの入口処理の生成マクロ
     564 *
     565 *  テンプレートファイルにより生成するため空マクロとする.
    646566 */
    647567#define HDR_ENTRY(hdr, intexc_num , tobejmp)
    648568
    649569/*
    650  *  割込みハンドラのå
    651 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     570 *  割込みハンドラの入口処理の生成マクロ
    652571 */
    653572#define _INT_ENTRY(inhno, inthdr)                               _kernel_##inthdr##_##inhno##_entry
     
    660579
    661580/*
    662  *  CPU例外ハンドラのå
    663 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     581 *  CPU例外ハンドラの入口処理の生成マクロ
    664582 */
    665583#define _EXC_ENTRY(excno , exchdr)                                      _kernel_##exchdr##_##excno##_entry
     
    672590
    673591/*
    674  *  CPU例外の発生した時のコンテキストの参ç
    675 §
    676  *
    677  *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
    678  *  そうでない時にtrueを返す.
     592 *  CPU例外の発生した時のコンテキストの参照
     593 *
     594 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
     595 *  そうでない時にtrueを返す.
    679596 */
    680597Inline bool_t
     
    682599{
    683600        /*
    684          *  ネストカウンタが1より大なら非タスクコンテキスト
     601         *  ネストカウンタが1より大なら非タスクコンテキスト
    685602         */
    686603        return( intnest > 1U );
     
    689606
    690607/*
    691  *  CPU例外æƒ
    692 å ± p_excinf から PSW の値を取得するためのオフセット値
    693  *  EXCNO + ACC + FPSW + R1~R15 + PC
     608 *  CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値
     609 *  EXCNO + ACC + FPSW + R1~R15 + PC
    694610 */
    695611#define EXC_GET_PSW_OFFSET      (4+8+4+60+4)
    696612
    697613/*
    698  *  CPU例外の発生した時のIPLの参ç
    699 §
     614 *  CPU例外の発生した時のIPLの参照
    700615 */
    701616Inline uint32_t
     
    715630
    716631/*
    717  *  CPU例外の発生した時のコンテキストと割込みのマスク状æ
    718 ‹ã®å‚ç
    719 §
    720  *
    721  *  CPU例外の発生した時のシステム状æ
    722 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    723  *  ンテキストであり,å
    724 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    725 ‹ã§ãªãï¼ŒCPUロック状æ
    726 ‹ã§ãªãï¼Œï¼ˆãƒ¢
    727  *  デル上の)割込み優å
    728 ˆåº¦ãƒžã‚¹ã‚¯å
    729 ¨è§£é™¤çŠ¶æ
    730 ‹ã§ã‚る時にtrue,そうでない時
    731  *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
    732  *  にもFALSEを返す).
     632 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     633 *
     634 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     635 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ
     636 *  デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時
     637 *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
     638 *  にもFALSEを返す).
    733639 * 
    734  *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
     640 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    735641 *                         (else)           IPL < IPL_LOCK
    736  *  タスクコンテキストである→intnest == 0
    737  *  å
    738 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ã§ãªã„→ Iフラグ == 1
    739  *  割込み優å
    740 ˆåº¦ãƒžã‚¹ã‚¯ãŒå
    741 ¨è§£é™¤â†’IPL == 0
     642 *  タスクコンテキストである→intnest == 0
     643 *  全割込みロックでない→ Iフラグ == 1
     644 *  割込み優先度マスクが全解除→IPL == 0
    742645 * 
    743646 * 
     
    752655
    753656/*
    754  *  プロセッサ依存の初期化
     657 *  プロセッサ依存の初期化
    755658 */
    756659extern void     prc_initialize( void );
    757660
    758661/*
    759  *  プロセッサ依存の終了時処理
     662 *  プロセッサ依存の終了時処理
    760663 */
    761664extern void     prc_terminate( void );
     
    764667#ifndef OMIT_DEFAULT_INT_HANDLER
    765668/*
    766  *  未登録の割込みが発生した場合に呼び出される
     669 *  未登録の割込みが発生した場合に呼び出される
    767670 */
    768671void default_int_handler( void );
     
    771674#ifndef OMIT_DEFAULT_EXC_HANDLER
    772675/*
    773  *  未登録の例外が発生した場合に呼び出される
     676 *  未登録の例外が発生した場合に呼び出される
    774677 */
    775678void default_exc_handler( void );
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_inline_symbols.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    99 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  @(#) $Id$
     
    5742
    5843/*
    59  *              コンパイラ依存定義
     44 *              コンパイラ依存定義
    6045 */
    6146
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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) の条件か,Free Software Foundation
    14  *  によってå
    15 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    16  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    17  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    18 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    19  *  利用と呼ぶ)することを無償で許諾する.
    20  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    21  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    22  *      スコード中に含まれていること.
    23  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    24  *      用できる形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    27  *      è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    29  *      の無保証規定を掲載すること.
    30  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    31  *      用できない形で再é
    32 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    33  *      と.
    34  *    (a) 再é
    35 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    36 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    37  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    38  *    (b) 再é
    39 å¸ƒã®å½¢æ
    40 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    41  *        報告すること.
    42  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    43  *      害からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトをå
    45 è²¬ã™ã‚‹ã“と.
     12 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     13 *  によって公表されている GNU General Public License の Version 2 に記
     14 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     15 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     16 *  利用と呼ぶ)することを無償で許諾する.
     17 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19 *      スコード中に含まれていること.
     20 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23 *      の無保証規定を掲載すること.
     24 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26 *      と.
     27 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     29 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30 *        報告すること.
     31 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    4633 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    50  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    51  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     36 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     37 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    5238 *
    5339 */
    5440
    5541/*
    56  *              プロセッサの特殊命令のインライン関数定義
     42 *              プロセッサの特殊命令のインライン関数定義
    5743 */
    5844
     
    7258
    7359/*
    74  *  Iフラグ, IPLを取得するためのマクロ定義
     60 *  Iフラグ, IPLを取得するためのマクロ定義
    7561 */
    7662#define PSW_I_MASK              ( 0x00010000UL )
     
    7965
    8066/*
    81  *  プロセッサステータスレジスタ(PSW)の現在値の読出し
     67 *  プロセッサステータスレジスタ(PSW)の現在値の読出し
    8268 */
    8369#pragma inline_asm      current_psw
     
    9076
    9177/*
    92  *  プロセッサステータスレジスタ(PSW)へ設定
     78 *  プロセッサステータスレジスタ(PSW)へ設定
    9379 */
    9480#pragma inline_asm      set_psw
     
    10187
    10288/*
    103  *  IPLの現在値の読出し
     89 *  IPLの現在値の読出し
    10490 */
    10591Inline uint32_t
     
    11197
    11298/*
    113  *  IPLへ設定
     99 *  IPLへ設定
    114100 */
    115101Inline void
     
    121107
    122108/*
    123  *  NMIを除くすべての割込みの禁止
     109 *  NMIを除くすべての割込みの禁止
    124110 */
    125111#pragma inline_asm      disint
     
    132118
    133119/*
    134  *  NMIを除くすべての割込みの許可
     120 *  NMIを除くすべての割込みの許可
    135121 */
    136122#pragma inline_asm      enaint
     
    143129
    144130/*
    145  *  エンディアン変換 16bit
     131 *  エンディアン変換 16bit
    146132 */
    147133#pragma inline_asm      rev_endian_uint16
     
    153139
    154140/*
    155  *  エンディアン変換 32bit
     141 *  エンディアン変換 32bit
    156142 */
    157143#pragma inline_asm      rev_endian_uint32
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 */
    5338
    5439/*
    55  *              kernel.hのプロセッサ依存部(RX630用)
     40 *              kernel.hのプロセッサ依存部(RX630用)
    5641 *
    57  *  このインクルードファイルは,target_kernel.h(または,そこからインク
    58  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    59  *  直接インクルードしてはならない.
     42 *  このインクルードファイルは,target_kernel.h(または,そこからインク
     43 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     44 *  直接インクルードしてはならない.
    6045 */
    6146
     
    6449
    6550/*
    66  *  カーネル本体をコンパイルするためのマクロ定義
     51 *  カーネル本体をコンパイルするためのマクロ定義
    6752 *
    68  *  本環境では1関数を1オブジェクトファイルにコンパイルすることができないため,
    69  *  ALLFUNCマクロを定義する.
     53 *  本環境では1関数を1オブジェクトファイルにコンパイルすることができないため,
     54 *  ALLFUNCマクロを定義する.
    7055 */
    7156#define ALLFUNC
     
    7358
    7459/*
    75  *  サポートする機能の定義
     60 *  サポートする機能の定義
    7661 */
    77 #define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
    78 #define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
     62#define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
     63#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
    7964
    8065
    8166/*
    82  *  カーネル管理の割込み優å
    83 ˆåº¦ã®ç¯„囲
     67 *  カーネル管理の割込み優先度の範囲
    8468 *
    85  *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優å
    86 ˆåº¦
    87  *  を持つものをカーネル管理外の割込みとするかを変更できる.
     69 *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度
     70 *  を持つものをカーネル管理外の割込みとするかを変更できる.
    8871 *
    89  *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
    90  *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
    91  *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    92  *  設けないことになる.
     72 *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
     73 *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
     74 *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     75 *  設けないことになる.
    9376 */
    9477#ifndef TMIN_INTPRI
    95 #define TMIN_INTPRI             ( -15 )         /* 割込み優å
    96 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
     78#define TMIN_INTPRI             ( -15 )         /* 割込み優先度の最小値(最高値)*/
    9779#endif /* TMIN_INTPRI */
    98 #define TMAX_INTPRI             ( -1 )          /* 割込み優å
    99 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰ */
     80#define TMAX_INTPRI             ( -1 )          /* 割込み優先度の最大値(最低値) */
    10081
    10182
    10283/*
    103  *  割込み属性の定義
     84 *  割込み属性の定義
    10485 */
    105 #define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
    106 #define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
    107 #define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
     86#define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
     87#define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
     88#define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
    10889
    109 #define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
     90#define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
    11091
    11192
    11293/*
    113  *  デフォルトの割込み/例外ハンドラの有無
     94 *  デフォルトの割込み/例外ハンドラの有無
    11495 */
    11596/*#define       OMIT_DEFAULT_INT_HANDLER*/
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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
     
    306287$kernelCfgAsm.append(<<EOS)
    307288;
    308 å›ºå®šãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     289固定ベクタテーブル
    309290;
    310291
     
    322303        .lword  0H
    323304        .lword  0H
    324         .lword  0FFFFFFFFH       ; 制御コード, IDコード1 - 3
    325         .lword  0FFFFFFFFH       ; IDコード4 - 7
    326         .lword  0FFFFFFFFH       ; IDコード8 - 11
    327         .lword  0FFFFFFFFH       ; IDコード12 - 15
     305        .lword  0FFFFFFFFH       ; 制御コード, IDコード1 - 3
     306        .lword  0FFFFFFFFH       ; IDコード4 - 7
     307        .lword  0FFFFFFFFH       ; IDコード8 - 11
     308        .lword  0FFFFFFFFH       ; IDコード12 - 15
    328309EOS
    329310(12..30).each do |excnoVal|
     
    342323
    343324#
    344 å‰²è¾¼ã¿è¦æ±‚ライン属性に関するターゲット依存のエラーチェック
     325割込み要求ライン属性に関するターゲット依存のエラーチェック
    345326#
    346327$cfgData[:CFG_INT].each do |key, params|
    347   # IRQ割込み番号かどうかをチェック
     328  # IRQ割込み番号かどうかをチェック
    348329  if $INTNO_INT.include?(key)
    349     # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
     330    # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
    350331    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE
    351332      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    352333    end
    353     # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
     334    # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
    354335    if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE
    355336      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    356337    end
    357     # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     338    # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    358339    if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE
    359340      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    360341    end
    361     # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     342    # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    362343    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE
    363344      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    364345    end
    365346  else
    366     # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
     347    # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
    367348    if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0
    368349      error_illegal_sym("E_RSATR", params, :intatr, :intno)
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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_ccrx/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_ccrx/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  *  の責任を負わない.
    50  *
    51  */
    52 
    53 /*
    54  *              sil.hのプロセッサ依存部(RX630用)
     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 *  の責任を負わない.
     35 *
     36 */
     37
     38/*
     39 *              sil.hのプロセッサ依存部(RX630用)
    5540 */
    5641
     
    6449
    6550/*
    66  *  å
    67 ¨å‰²è¾¼ã¿ç¦æ­¢
     51 *  全割込み禁止
    6852 */
    6953Inline uint32_t
     
    8064
    8165/*
    82  *  å
    83 ¨å‰²è¾¼ã¿è¨±å¯
     66 *  全割込み許可
    8467 */
    8568Inline void
     
    9376
    9477/*
    95  *  å
    96 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    97 ‹ã®åˆ¶å¾¡
     78 *  全割込みロック状態の制御
    9879 */
    9980#define SIL_PRE_LOC             uint32_t TOPPERS_i_psw;
     
    10384
    10485/*
    105  *  エンディアンの反転
     86 *  エンディアンの反転
    10687 *
    107  *  本開発環境ではエンディアン変換命令が存在するため,
    108  *  アーキテクチャ依存部にてマクロを上書きする.
     88 *  本開発環境ではエンディアン変換命令が存在するため,
     89 *  アーキテクチャ依存部にてマクロを上書きする.
    10990 */
    11091#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )   \
     
    11596
    11697/*
    117  *  微少時間å¾
    118 ã¡
     98 *  微少時間待ち
    11999 */
    120100extern void sil_dly_nse( ulong_t dlytim );
     
    124104
    125105/*
    126  *  プロセッサのエンディアン
    127  */
    128 #define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
     106 *  プロセッサのエンディアン
     107 */
     108#define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
    129109
    130110#ifndef TOPPERS_MACRO_ONLY
    131111
    132112/*
    133  *  メモリ空間アクセス関数
     113 *  メモリ空間アクセス関数
    134114 */
    135115#define TOPPERS_OMIT_SIL_ACCESS
    136116
    137117/*
    138  *  8ビット単位の読出し/書込み
     118 *  8ビット単位の読出し/書込み
    139119 */
    140120#ifdef UINT8_MAX
     
    158138
    159139/*
    160  *  16ビット単位の読出し/書込み
     140 *  16ビット単位の読出し/書込み
    161141 */
    162142
     
    176156}
    177157
    178 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     158#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    179159
    180160#define sil_reh_bem(mem)                sil_reh_mem(mem)
     
    203183#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
    204184#else /* SIL_ENDIAN_BIG */
    205 #ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
     185#ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
    206186
    207187#define sil_reh_lem(mem)                sil_reh_mem(mem)
     
    237217
    238218/*
    239  *  32ビット単位の読出し/書込み
     219 *  32ビット単位の読出し/書込み
    240220 */
    241221
     
    255235}
    256236
    257 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     237#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    258238
    259239#define sil_rew_bem(mem)                sil_rew_mem(mem)
     
    281261
    282262#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
    283 #else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
     263#else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
    284264
    285265#define sil_rew_lem(mem)                sil_rew_mem(mem)
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 */
    5237
    5338/*
    54  *              t_stddef.hのプロセッサ依存部(RX630用)
     39 *              t_stddef.hのプロセッサ依存部(RX630用)
    5540 *
    56  *  このインクルードファイルは,target_stddef.h(または,そこからインク
    57  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    58  *  直接インクルードしてはならない.
     41 *  このインクルードファイルは,target_stddef.h(または,そこからインク
     42 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     43 *  直接インクルードしてはならない.
    5944 */
    6045
     
    6348
    6449/*
    65  *  ターゲットを識別するためのマクロの定義
     50 *  ターゲットを識別するためのマクロの定義
    6651 */
    67 #define TOPPERS_RX630                           /* プロセッサ略称 */
     52#define TOPPERS_RX630                           /* プロセッサ略称 */
    6853
    6954#endif /* TOPPERS_PRC_STDDEF_H */
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_support.src

    • Property svn:eol-style set to native
    • Property svn:keywords set to Id
    • Property svn:mime-type set to text/x-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;
    5843
    5944;
    60 ;  プロセッサ依存モジュール アセンブリ言語部(RX用)
    61 ;
    62 
    63 ;
    64 ;  ディスパッチャおよび割込み(CPU例外)出å
    65 ¥ã‚Šå£ã®ãƒ«ãƒ¼ãƒ«:
    66 ;       å‹•ä½œãƒ¢ãƒ¼ãƒ‰ã‚’以下のように定義する.
    67 ;               ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード:
    68 ;                       CPUロック状æ
    69 ‹, 割込み優å
    70 ˆåº¦ãƒžã‚¹ã‚¯å
    71 ¨è§£é™¤çŠ¶æ
    72 ‹,
    73 ;                       ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest = 0), タスクスタック
    74 ;               å‰²è¾¼ã¿(CPU例外)処理モード
    75 ;                       å
    76 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    77 ‹(PSWレジスタIビット = 0),
    78 ;                       å‰²è¾¼ã¿å„ªå
    79 ˆåº¦ãƒžã‚¹ã‚¯å
    80 ¨è§£é™¤ã§ãªã„状æ
    81 ‹(IPL != 0)
    82 ;                       å‰²è¾¼ã¿ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest != 0), 割込みスタック
    83 ;
    84 ;       ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みのサポート有無と, CPUロック状æ
    85 ‹, 割込み優å
    86 ˆåº¦
    87 ;       ãƒžã‚¹ã‚¯å
    88 ¨è§£é™¤çŠ¶æ
    89 ‹ã®é–¢ä¿‚は以下の通りである.
    90 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込み未サポート時:
    91 ;                       CPUロック状æ
    92 ‹(PSWレジスタIビット = 0)
    93 ;                       å‰²è¾¼ã¿å„ªå
    94 ˆåº¦ãƒžã‚¹ã‚¯å
    95 ¨è§£é™¤çŠ¶æ
    96 ‹(IPL = 0)
    97 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みサポート時:
    98 ;                       CPUロック状æ
    99 ‹
    100 ;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
    101 ;                       å‰²è¾¼ã¿å„ªå
    102 ˆåº¦ãƒžã‚¹ã‚¯å
    103 ¨è§£é™¤çŠ¶æ
    104 ‹(saved_ipl = 0)
    105 ;
    106 ;       å„構造体ポインタを以下のように各レジスタにアサインする.
    107 ;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
    108 ;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
    109 ;       å„å
    110 ¥ã‚Šå£ã‹ã‚‰æœ€åˆã«å¤‰æ•°ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã¨ãã«ä¸Šè¨˜ãƒ¬ã‚¸ã‚¹ã‚¿ã«ä¿å­˜ã™ã‚‹.
    111 ;
    112 ;       æ§‹é€ ä½“アライメントへの対応
    113 ;               æ§‹é€ ä½“アライメントが4Byte(アンパック)の場合:
    114 ;                       ä¸€èˆ¬çš„なレジスタ相対アドレッシングが可能
    115 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     45;  プロセッサ依存モジュール アセンブリ言語部(RX用)
     46;
     47
     48;
     49;  ディスパッチャおよび割込み(CPU例外)出入り口のルール:
     50;       動作モードを以下のように定義する.
     51;               ディスパッチャモード:
     52;                       CPUロック状態, 割込み優先度マスク全解除状態,
     53;                       タスクコンテキスト(intnest = 0), タスクスタック
     54;               割込み(CPU例外)処理モード
     55;                       全割込みロック状態(PSWレジスタIビット = 0),
     56;                       割込み優先度マスク全解除でない状態(IPL != 0)
     57;                       割込みコンテキスト(intnest != 0), 割込みスタック
     58;
     59;       カーネル管理外割込みのサポート有無と, CPUロック状態, 割込み優先度
     60;       マスク全解除状態の関係は以下の通りである.
     61;               カーネル管理外割込み未サポート時:
     62;                       CPUロック状態(PSWレジスタIビット = 0)
     63;                       割込み優先度マスク全解除状態(IPL = 0)
     64;               カーネル管理外割込みサポート時:
     65;                       CPUロック状態
     66;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
     67;                       割込み優先度マスク全解除状態(saved_ipl = 0)
     68;
     69;       各構造体ポインタを以下のように各レジスタにアサインする.
     70;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
     71;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
     72;       各入り口から最初に変数アクセスするときに上記レジスタに保存する.
     73;
     74;       構造体アライメントへの対応
     75;               構造体アライメントが4Byte(アンパック)の場合:
     76;                       一般的なレジスタ相対アドレッシングが可能
     77;                               例:      mov.l   #__kernel_p_runtsk, r15
    11678;                                       mov.l   r0, TCB_sp[r15]
    117 ;               æ§‹é€ ä½“アライメントが4Byteではない(パック)の場合:
    118 ;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
    119 ;                       ã“のため, 一度対象アドレスを求めてからアクセスするå¿
    120 è¦ãŒã‚ã‚‹
    121 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     79;               構造体アライメントが4Byteではない(パック)の場合:
     80;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
     81;                       このため, 一度対象アドレスを求めてからアクセスする必要がある
     82;                               例:      mov.l   #__kernel_p_runtsk, r15
    12283;                                       add             #TCB_sp, r15, r5
    12384;                                       mov.l   r0, [r5]
    124 ;               å„オフセット値を判断し, 条件アセンブルによりコードを切り替える
    125 ;
    126 
    127 ;
    128 æ§‹é€ ä½“アクセスのオフセット定義
     85;               各オフセット値を判断し, 条件アセンブルによりコードを切り替える
     86;
     87
     88;
     89構造体アクセスのオフセット定義
    12990;
    13091        .include        offset.inc
    13192
    13293;
    133 å„種EQU定義(Hファイルの#define定義)
     94各種EQU定義(Hファイルの#define定義)
    13495;
    13596        .include        asm_config.inc
     
    183144
    184145;
    185 ;  TCB_sp への書込みマクロ
     146;  TCB_sp への書込みマクロ
    186147;
    187148st_TCB_sp       .macro  src, tcb, tmp
     
    195156
    196157;
    197 ;  TCB_sp からの読出しマクロ
     158;  TCB_sp からの読出しマクロ
    198159;
    199160ld_TCB_sp       .macro  dst, tcb, tmp
     
    207168
    208169;
    209 ;  TCB_pc への書込みマクロ
     170;  TCB_pc への書込みマクロ
    210171;
    211172st_TCB_pc       .macro  src, tcb, tmp
     
    219180
    220181;
    221 ;  TCB_pc からの読出しマクロ
     182;  TCB_pc からの読出しマクロ
    222183;
    223184ld_TCB_pc       .macro  dst, tcb, tmp
     
    231192
    232193;
    233 ;  TCB_texptn からの読出しマクロ
     194;  TCB_texptn からの読出しマクロ
    234195;
    235196ld_TCB_texptn   .macro  dst, tcb, tmp
     
    243204
    244205;
    245 ;  TCB_p_tinib からの読出しマクロ
     206;  TCB_p_tinib からの読出しマクロ
    246207;
    247208ld_TCB_p_tinib  .macro  dst, tcb, tmp
     
    255216
    256217;
    257 ;  TINIB_exinf からの読出しマクロ
     218;  TINIB_exinf からの読出しマクロ
    258219;
    259220ld_TINIB_exinf  .macro  dst, tinib, tmp
     
    267228
    268229;
    269 ;  TINIB_task からの読出しマクロ
     230;  TINIB_task からの読出しマクロ
    270231;
    271232ld_TINIB_task   .macro  dst, tinib, tmp
     
    282243
    283244;
    284 ;  APIからのタスクディスパッチャå
    285 ¥å£
    286 ;
    287 ;  呼び出し条件:
    288 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    289 §)
    290 ;
    291 ;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
     245;  APIからのタスクディスパッチャ入口
     246;
     247;  呼び出し条件:
     248;       ・ディスパッチャモード(ファイルヘッダ参照)
     249;
     250;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
    292251;
    293252__kernel_dispatch:
    294         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     253        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    295254        mov.l   #__kernel_p_runtsk, r15
    296255        mov.l   [r15], r14
    297         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    298         st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
     256        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     257        st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
    299258        bra             dispatcher
    300259
    301260;
    302 ;  APIへのタスクディスパッチャ出口
    303 ;
    304 ;  呼び出し条件:
    305 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    306 §)
    307 ;
    308 ;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
     261;  APIへのタスクディスパッチャ出口
     262;
     263;  呼び出し条件:
     264;       ・ディスパッチャモード(ファイルヘッダ参照)
     265;
     266;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
    309267;
    310268dispatch_r:
    311         btst    #TCB_enatex_bit, TCB_enatex[r14]        ; タスク例外処理許可?
     269        btst    #TCB_enatex_bit, TCB_enatex[r14]        ; タスク例外処理許可?
    312270        bz      dispatch_r_rts
    313         ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
     271        ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
    314272        cmp             #0, r5
    315273        bz      dispatch_r_rts
    316         bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
     274        bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
    317275dispatch_r_rts:
    318         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    319         rts                                     ; dispatch 呼び出しå
    320 ƒã¸æˆ»ã‚‹.
    321 
    322 ;
    323 ;  タスク起動処理(タスクå
    324 ˆé ­ã¸ã®ã‚¿ã‚¹ã‚¯ãƒ‡ã‚£ã‚¹ãƒ‘ッチャ出口)
    325 ;
    326 ;  呼び出し条件:
    327 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    328 §)
    329 ;
    330 ;  ここでは, CPUロック解除状æ
    331 ‹ã«ã—, タスクを起動する.
     276        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     277        rts                                     ; dispatch 呼び出し元へ戻る.
     278
     279;
     280;  タスク起動処理(タスク先頭へのタスクディスパッチャ出口)
     281;
     282;  呼び出し条件:
     283;       ・ディスパッチャモード(ファイルヘッダ参照)
     284;
     285;  ここでは, CPUロック解除状態にし, タスクを起動する.
    332286;
    333287__kernel_start_r:
    334288        mov.l   #_ext_tsk, r5
    335         push.l  r5                                                      ; 戻り番地をスタックに積む
     289        push.l  r5                                                      ; 戻り番地をスタックに積む
    336290        ld_TCB_p_tinib  r5, r14, r4
    337         ld_TINIB_exinf  r1, r5, r4                      ; 拡張æƒ
    338 å ±ã‚’第一引数に設定
    339         ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
     291        ld_TINIB_exinf  r1, r5, r4                      ; 拡張情報を第一引数に設定
     292        ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
    340293.if     TIPM_LOCK == -15
    341         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    342 ‹)
    343 .else
    344         mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状æ
    345 ‹ã¸
    346         mov.l   #0, [r4]                                        ; ここに来るときはå¿
    347 ãš saved_ipl の
    348         mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
    349                                                                 ; å
    350 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    351 ‹( I = 1 )
    352                                                                 ; 割込み優å
    353 ˆåº¦ãƒžã‚¹ã‚¯å
    354 ¨è§£é™¤çŠ¶æ
    355 ‹( IPL = 0 )
     294        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
     295.else
     296        mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状態へ
     297        mov.l   #0, [r4]                                        ; ここに来るときは必ず saved_ipl の
     298        mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
     299                                                                ; 全割込みロック解除状態( I = 1 )
     300                                                                ; 割込み優先度マスク全解除状態( IPL = 0 )
    356301.endif
    357302        jmp             r5
    358303
    359304;
    360 ;  カーネル起動からのタスクディスパッチャå
    361 ¥å£
    362 ;
    363 ;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状æ
    364 ‹
    365 ; (割込みロック状æ
    366 ‹ã¨åŒç­‰ï¼‰ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žã¾ãŸï¼Œå‰²è¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ï¼ˆéž
    367 ;  タスクコンテキストと同等)で呼び出されることを想定している.
    368 ;
    369 ;  呼び出し条件:
    370 ;       ãƒ»å‰²è¾¼ã¿(CPU例外)処理モード(ファイルヘッダ参ç
    371 §)
    372 ;
    373 ;  ここでは, ディスパッチャモードに変更する.
     305;  カーネル起動からのタスクディスパッチャ入口
     306;
     307;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状態
     308; (割込みロック状態と同等)で呼び出される.また,割込みモード(非
     309;  タスクコンテキストと同等)で呼び出されることを想定している.
     310;
     311;  呼び出し条件:
     312;       ・割込み(CPU例外)処理モード(ファイルヘッダ参照)
     313;
     314;  ここでは, ディスパッチャモードに変更する.
    374315;
    375316__kernel_start_dispatch:
    376317        mov.l   #__kernel_intnest, r5
    377         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     318        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    378319.if     TIPM_LOCK != -15
    379         mvtc    #(IPL_LOCK | 00010000H), psw    ; å
    380 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    381 ‹
    382                                                                                 ; 割込み優å
    383 ˆåº¦ãƒžã‚¹ã‚¯å
    384 ¨è§£é™¤ã§ãªã„状æ
    385 ‹
    386 .endif
    387 
    388 ;
    389 ; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャå
    390 ¥å£
    391 ;
    392 ;  呼び出し条件:
    393 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    394 §)
    395 ;
    396 ;  ここでは, 何もすることはない.
    397 ;  なお, p_runtsk のアドレス取得だけは行なう.
     320        mvtc    #(IPL_LOCK | 00010000H), psw    ; 全割込みロック解除状態
     321                                                                                ; 割込み優先度マスク全解除でない状態
     322.endif
     323
     324;
     325; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャ入口
     326;
     327;  呼び出し条件:
     328;       ・ディスパッチャモード(ファイルヘッダ参照)
     329;
     330;  ここでは, 何もすることはない.
     331;  なお, p_runtsk のアドレス取得だけは行なう.
    398332;
    399333__exit_and_dispatch:
     
    401335
    402336;
    403 ; ディスパッチャ本体
    404 ;
    405 å‘¼ã³å‡ºã—条件:
    406 ;       ãƒ»ã™ã¹ã¦ã®ã‚¿ã‚¹ã‚¯ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã¯ä¿å­˜ã•ã‚Œã¦ã„ã‚‹.
    407 ;
    408 ;  dispatcher 呼出時のスタック:
    409 ;       ãƒ»__kernel_dispatch からきた場合                 : タスクスタック
    410 ;       ãƒ»exit_and_dispatch からきた場合:
    411 ;               exit_task からきた場合                                    : タスクスタック
    412 ;               ã‚«ãƒ¼ãƒãƒ«èµ·å‹•æ™‚(__kernel_start_dispatch)  : 割込みスタック
    413 ;       ãƒ»ret_int からきた場合                                           : タスクスタック
    414 ;       ãƒ»dispatcher_idle_loop からきた場合                      : 割込みスタック
     337; ディスパッチャ本体
     338;
     339呼び出し条件:
     340;       ・すべてのタスクのコンテキストは保存されている.
     341;
     342;  dispatcher 呼出時のスタック:
     343;       ・__kernel_dispatch からきた場合                       : タスクスタック
     344;       ・exit_and_dispatch からきた場合:
     345;               exit_task からきた場合                                        : タスクスタック
     346;               カーネル起動時(__kernel_start_dispatch)        : 割込みスタック
     347;       ・ret_int からきた場合                                         : タスクスタック
     348;       ・dispatcher_idle_loop からきた場合                    : 割込みスタック
    415349;
    416350dispatcher:
    417351.if     LOG_DSP_ENTER == 1
    418352        push.l  r15
    419         mov.l   r14, r1                                         ; 引数(ディスパッチå
    420 ƒTCB)を設定
     353        mov.l   r14, r1                                         ; 引数(ディスパッチ元TCB)を設定
    421354        bsr             _kernel_log_dsp_enter
    422355        pop.l   r15
    423356.endif
    424357        mov.l   #__kernel_p_schedtsk, r5     
    425         mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
     358        mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
    426359        mov.l   [r15], r14
    427360        cmp             #0, r14
    428         bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
    429         ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
     361        bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
     362        ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
    430363.if     LOG_DSP_LEAVE == 1
    431364        push.l  r14
    432         mov.l   r14, r1                                         ; 引数(ディスパッチå
    433 ˆTCB)を設定
     365        mov.l   r14, r1                                         ; 引数(ディスパッチ先TCB)を設定
    434366        bsr             _kernel_log_dsp_leave
    435367        pop.l   r14
    436368.endif
    437369        ld_TCB_pc       r5, r14, r4
    438         jmp             r5                                      ; 実行再開番地へジャンプ
    439 
    440 ;
    441 ;  schdedtskがNULLの場合はアイドルループにå
    442 ¥ã‚‹
    443 ;  アイドルループは割込み処理モードで動作させる
    444 ;
    445 ;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
    446 ;  どのスタックを使うかという問題の解決と,割込みハンドラå†
    447 ã§ã®ã‚¿
    448 ;  スクディスパッチの防止という2つの意味がある.
     370        jmp             r5                                      ; 実行再開番地へジャンプ
     371
     372;
     373;  schdedtskがNULLの場合はアイドルループに入る
     374;  アイドルループは割込み処理モードで動作させる
     375;
     376;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
     377;  どのスタックを使うかという問題の解決と,割込みハンドラ内でのタ
     378;  スクディスパッチの防止という2つの意味がある.
    449379;
    450380dispatcher_pre_idle:
    451381        mov.l   #__kernel_istkpt,r5
    452         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    453         mov.l   #__kernel_intnest, r5
    454         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     382        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     383        mov.l   #__kernel_intnest, r5
     384        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    455385.if     TIPM_LOCK != -15
    456         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    457 ‹ã¸
     386        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    458387        mov.l   #0, [r5]
    459         mvtc    #0, psw                                         ; 優å
    460 ˆåº¦0の割込み処理中を偽è£
    461 
     388        mvtc    #0, psw                                         ; 優先度0の割込み処理中を偽装
    462389.endif
    463390
    464391dispatcher_idle_loop:
    465         setpsw  i                                                       ; å
    466 ¨å‰²è¾¼ã¿è¨±å¯
    467         clrpsw  i                                                       ; å
    468 ¨å‰²è¾¼ã¿ç¦æ­¢
    469 
    470         mov.l   #__kernel_reqflg, r5            ; reqflg が FALSE なら
     392        setpsw  i                                                       ; 全割込み許可
     393        clrpsw  i                                                       ; 全割込み禁止
     394
     395        mov.l   #__kernel_reqflg, r5            ; reqflg が FALSE なら
    471396        mov.l   [r5], r4
    472397        cmp             #0, r4
    473         bz      dispatcher_idle_loop            ; アイドルループを繰り返す
    474         mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
    475         mov.l   #__kernel_intnest, r5
    476         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     398        bz      dispatcher_idle_loop            ; アイドルループを繰り返す
     399        mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
     400        mov.l   #__kernel_intnest, r5
     401        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    477402.if     TIPM_LOCK != -15
    478         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    479 ‹ã¸
     403        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    480404        mov.l   #1, [r5]
    481405        mov.l   #__kernel_saved_ipl, r5
    482406        mov.l   #0, [r5]
    483         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    484 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    485 ‹
    486                                                                                 ; 割込み優å
    487 ˆåº¦ãƒžã‚¹ã‚¯å
    488 ¨è§£é™¤ã§ãªã„状æ
    489 ‹
    490 .endif
    491         bra             dispatcher                                      ; dispatcher へ戻る
    492 
    493 
    494 ;
    495 ; カーネルの終了処理の呼出し
    496 ;
    497 ; モードとスタックを非タスクコンテキスト用に切り替え.
     407        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     408                                                                                ; 割込み優先度マスク全解除でない状態
     409.endif
     410        bra             dispatcher                                      ; dispatcher へ戻る
     411
     412
     413;
     414; カーネルの終了処理の呼出し
     415;
     416; モードとスタックを非タスクコンテキスト用に切り替え.
    498417;
    499418        .glb    __kernel_call_exit_kernel
    500419__kernel_call_exit_kernel:
    501420.if     TIPM_LOCK != -15
    502         clrpsw  i                                                       ; å
    503 ¨å‰²è¾¼ã¿ç¦æ­¢
    504         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    505 ‹ã¸
     421        clrpsw  i                                                       ; 全割込み禁止
     422        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    506423        mov.l   #0, [r5]
    507424.endif
    508425        mov.l   #__kernel_istkpt, r5
    509         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    510         mov.l   #__kernel_intnest, r5
    511         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     426        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     427        mov.l   #__kernel_intnest, r5
     428        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    512429        bsr             __kernel_exit_kernel
    513430        bra             __kernel_call_exit_kernel
     
    515432
    516433;
    517 ;  割込み(CPU例外)からのタスクディスパッチャå
    518 ¥å£
    519 ;
    520 ;       å‘¼å‡ºã—条件:
    521 ;       ãƒ»å
    522 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    523 ‹(PSWレジスタIビット = 0)
    524 ;       ãƒ»å‰²è¾¼ã¿å„ªå
    525 ˆåº¦ãƒžã‚¹ã‚¯å
    526 ¨è§£é™¤ã§ãªã„状æ
    527 ‹(IPL != 0)
    528 ;       ãƒ»ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest=0)
    529 ;       ãƒ»ä½¿ç”¨ã‚¹ã‚¿ãƒƒã‚¯ã¯ã‚¿ã‚¹ã‚¯ã‚¹ã‚¿ãƒƒã‚¯
    530 ;       ãƒ»reqflg = true
    531 ;
    532 ;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
    533 ;  é
    534 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチの有無を判断する.
    535 ;
    536 
    537 ;
    538 ;  ret_intå
    539 ˆé ­ã§ã‚¹ã‚¿ãƒƒã‚¯ã«ç©ã¾ã‚Œã¦ã„ã‚‹PSWレジスタへのオフセット
     434;  割込み(CPU例外)からのタスクディスパッチャ入口
     435;
     436;       呼出し条件:
     437;       ・全割込みロック状態(PSWレジスタIビット = 0)
     438;       ・割込み優先度マスク全解除でない状態(IPL != 0)
     439;       ・タスクコンテキスト(intnest=0)
     440;       ・使用スタックはタスクスタック
     441;       ・reqflg = true
     442;
     443;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
     444;  遅延ディスパッチの有無を判断する.
     445;
     446
     447;
     448;  ret_int先頭でスタックに積まれているPSWレジスタへのオフセット
    540449;  ACC + FPSW + R14--R15 + R1--R5 + PC
    541450;
     
    544453ret_int:
    545454.if     TIPM_LOCK == -15
    546         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     455        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    547456        and             #PSW_IPL_MASK, r5
    548         mvtc    r5, psw                                         ; å
    549 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯(CPUロック)状æ
    550 ‹
    551                                                                                 ; 割込み/CPU例外発生前の割込み優å
    552 ˆåº¦
    553 .else
    554         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    555 ‹ã¸
     457        mvtc    r5, psw                                         ; 全割込みロック(CPUロック)状態
     458                                                                                ; 割込み/CPU例外発生前の割込み優先度
     459.else
     460        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    556461        mov.l   #1, [r5]
    557         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     462        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    558463        and             #PSW_IPL_MASK, r5
    559464        mov.l   #__kernel_saved_ipl, r4
    560465        mov.l   r5, [r4]
    561         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    562 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    563 ‹
    564                                                                                 ; 割込み優å
    565 ˆåº¦ãƒžã‚¹ã‚¯å
    566 ¨è§£é™¤ã§ãªã„状æ
    567 ‹
     466        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     467                                                                                ; 割込み優先度マスク全解除でない状態
    568468.endif
    569469        mov.l   #__kernel_reqflg, r5
     
    571471        mov.l   #__kernel_p_runtsk, r15     
    572472        mov.l   [r15], r14
    573         mov.l   #__kernel_dspflg, r5            ; dspflg が FALSE なら ret_int_r へ
     473        mov.l   #__kernel_dspflg, r5            ; dspflg が FALSE なら ret_int_r へ
    574474        mov.l   [r5], r5
    575475        cmp             #0, r5
     
    577477        mov.l   #__kernel_p_schedtsk, r5
    578478        mov.l   [r5], r5
    579         cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
    580         beq     ret_int_r_call_tex                      ; ret_int_r_call_tex へ
    581         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    582         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    583         st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
     479        cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
     480        beq     ret_int_r_call_tex                      ; ret_int_r_call_tex
     481        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     482        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     483        st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
    584484        bra             dispatcher
    585485
    586486;
    587 ;  割込み(CPU例外)へのタスクディスパッチャ出口
    588 ;
    589 ;  呼び出し条件:
    590 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    591 §)
    592 ;
    593 ;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
    594 ;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生å
    595 ƒã¸æˆ»ã‚‹.
    596 ;
    597 __kernel_break_wait:                                    ;タスクモニタ用ラベル
     487;  割込み(CPU例外)へのタスクディスパッチャ出口
     488;
     489;  呼び出し条件:
     490;       ・ディスパッチャモード(ファイルヘッダ参照)
     491;
     492;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
     493;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生元へ戻る.
     494;
     495__kernel_break_wait:                                    ;タスクモニタ用ラベル
    598496ret_int_r:
    599         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     497        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    600498ret_int_r_call_tex:
    601         btst    #TCB_enatex_bit, TCB_enatex[r14]        ; タスク例外処理許可?
     499        btst    #TCB_enatex_bit, TCB_enatex[r14]        ; タスク例外処理許可?
    602500        bz      ret_int_r_rte
    603         ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
     501        ld_TCB_texptn   r5, r14, r4                     ; 保留例外要因があるか?
    604502        cmp             #0, r5
    605503        bz      ret_int_r_rte
    606         bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
     504        bsr             __kernel_call_texrtn            ; タスク例外ハンドラ呼出し処理実行
    607505ret_int_r_rte:
    608506.if     TIPM_LOCK != -15
    609         clrpsw  i                                                       ; å
    610 ¨å‰²è¾¼ã¿ç¦æ­¢
    611         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    612 ‹ã¸
     507        clrpsw  i                                                       ; 全割込み禁止
     508        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    613509        mov.l   #0, [r5]
    614510.endif
    615         popm    r4-r5                                           ; アキュムレータ復帰
    616         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     511        popm    r4-r5                                           ; アキュムレータ復帰
     512        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    617513        mvtachi r4
    618         popc    fpsw                                            ; FPUステータスレジスタ復帰
    619         popm    r14-r15                                         ; レジスタ復帰
     514        popc    fpsw                                            ; FPUステータスレジスタ復帰
     515        popm    r14-r15                                         ; レジスタ復帰
    620516        popm    r1-r5
    621         rte                                                                     ; 割込み前の処理に戻る
    622 
    623 
    624 ;
    625 ;  割込みの出å
    626 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    627 ;
    628 ;  呼出し条件:
    629 ;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
    630 ;    た割込みのIPL.
    631 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    632 ;    タスクスタック
    633 ;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
    634 ;    保存されている.
    635 ;  ・ベクタテーブルに登録された個別のå
    636 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    637 ;    スクラッチレジスタ(R1-R5)が保存されている.
    638 ;
    639 ;  引数:
    640 ;  ・r1:割込み要因番号
    641 ;  ・r2:割込みハンドラのアドレス
    642 ;
    643 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    644 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    645 ;  上方向に向かって積み上げられるものとする.
     517        rte                                                                     ; 割込み前の処理に戻る
     518
     519
     520;
     521;  割込みの出入口処理(アセンブリ言語記述部分)
     522;
     523;  呼出し条件:
     524;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
     525;    た割込みのIPL.
     526;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     527;    タスクスタック
     528;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
     529;    保存されている.
     530;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     531;    スクラッチレジスタ(R1-R5)が保存されている.
     532;
     533;  引数:
     534;  ・r1:割込み要因番号
     535;  ・r2:割込みハンドラのアドレス
     536;
     537;  レジスタがスタック上にどのように保存されているかを以下に示す.
     538;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     539;  上方向に向かって積み上げられるものとする.
    646540;
    647541;       -------------------------
     
    671565;       -------------------------(SP + 44)
    672566;
    673 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    674 ;
    675 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    676 ;  TRUE になった時に,ret_int へ分岐(é
    677 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    678 ;
    679 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    680 ;  intnest != 0 ならば多重割込みであると判定する.
    681 ;
    682 ;  reqflg はCPUロック状æ
    683 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    684 ;  reqflg チェック後に起動された割込みハンドラå†
    685 ã§
    686 ;  ディスパッチが要求された場合に,ディスパッチされない.
     567;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     568;
     569;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     570;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     571;
     572;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     573;  intnest != 0 ならば多重割込みであると判定する.
     574;
     575;  reqflg はCPUロック状態でチェックする. そうでないと,
     576;  reqflg チェック後に起動された割込みハンドラ内で
     577;  ディスパッチが要求された場合に,ディスパッチされない.
    687578;
    688579_kernel_interrupt:
    689         pushm   r14-r15                                         ; スクラッチレジスタを退避
    690         pushc   fpsw                                            ; FPUステータスレジスタ退避
     580        pushm   r14-r15                                         ; スクラッチレジスタを退避
     581        pushc   fpsw                                            ; FPUステータスレジスタ退避
    691582        mvfacmi r5
    692         shll    #16, r5                                         ; ACC最下位16bitは0とする
     583        shll    #16, r5                                         ; ACC最下位16bitは0とする
    693584        mvfachi r4
    694         pushm   r4-r5                                           ; アキュムレータ退避
     585        pushm   r4-r5                                           ; アキュムレータ退避
    695586        mov.l   #__kernel_intnest, r5
    696587        mov.w   [r5], r4
    697         add             #1, r4                                          ; ネスト回数をインクリメント
     588        add             #1, r4                                          ; ネスト回数をインクリメント
    698589        mov.w   r4, [r5]
    699         cmp             #1, r4                                          ; 多重割り込みかどうか
    700         bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
    701                                                 ; 初段の割込み
    702         mov.l   r0, r3                                          ; スタックポインタを取り出し
    703         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     590        cmp             #1, r4                                          ; 多重割り込みかどうか
     591        bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
     592                                                ; 初段の割込み
     593        mov.l   r0, r3                                          ; スタックポインタを取り出し
     594        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    704595        mov.l   [r5], r0
    705         push.l  r3                                                      ; タスクスタックを保持
    706 interrupt_from_int:             ; 多重割込み
    707         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    708 ‹)
     596        push.l  r3                                                      ; タスクスタックを保持
     597interrupt_from_int:             ; 多重割込み
     598        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
    709599
    710600.if     LOG_INH_LEAVE == 1
    711         push.l  r1                                                      ; ログトレースの引数を保持
     601        push.l  r1                                                      ; ログトレースの引数を保持
    712602.endif
    713603
    714604.if     LOG_INH_ENTER == 1
    715605        push.l  r2
    716         bsr             _kernel_log_inh_enter           ; ログトレース関数の呼出し
    717                                                         ; 引数の割込み要因番号は既にr1にå
    718 ¥ã£ã¦ã„ã‚‹
     606        bsr             _kernel_log_inh_enter           ; ログトレース関数の呼出し
     607                                                        ; 引数の割込み要因番号は既にr1に入っている
    719608        pop             r2
    720609.endif
    721610
    722         jsr     r2                                                      ; Cルーチン呼び出し
     611        jsr     r2                                                      ; Cルーチン呼び出し
    723612
    724613.if     LOG_INH_LEAVE == 1
    725         pop             r1                                                      ; 引数に割込み要因番号を設定
    726         bsr             _kernel_log_inh_leave           ; ログトレース関数の呼出し
    727 .endif
    728 
    729         clrpsw  i                                                       ; 割込み禁止(CPUロック状æ
    730 ‹)
     614        pop             r1                                                      ; 引数に割込み要因番号を設定
     615        bsr             _kernel_log_inh_leave           ; ログトレース関数の呼出し
     616.endif
     617
     618        clrpsw  i                                                       ; 割込み禁止(CPUロック状態)
    731619        mov.l   #__kernel_intnest, r5
    732620        mov.w   [r5], r4
    733         sub             #1, r4                                          ; ネスト回数をデクリメント
     621        sub             #1, r4                                          ; ネスト回数をデクリメント
    734622        mov.w   r4, [r5]
    735         cmp             #0, r4                                          ; 多重割り込みかどうか
    736         bnz             interrupt_return                        ; 多重割り込みならリターン
    737         ; 初段の割込み
    738         pop             r0                                                      ; タスクのスタックに戻す
    739         mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
     623        cmp             #0, r4                                          ; 多重割り込みかどうか
     624        bnz             interrupt_return                        ; 多重割り込みならリターン
     625        ; 初段の割込み
     626        pop             r0                                                      ; タスクのスタックに戻す
     627        mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
    740628        mov.l   [r5], r5
    741629        cmp             #1, r5
    742         bz              ret_int                                         ; あれば ret_int へジャンプ
     630        bz              ret_int                                         ; あれば ret_int へジャンプ
    743631interrupt_return:
    744         popm    r4-r5                                           ; アキュムレータ復帰
    745         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     632        popm    r4-r5                                           ; アキュムレータ復帰
     633        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    746634        mvtachi r4
    747         popc    fpsw                                            ; FPUステータスレジスタ復帰
    748         popm    r14-r15                                         ; レジスタ復帰
     635        popc    fpsw                                            ; FPUステータスレジスタ復帰
     636        popm    r14-r15                                         ; レジスタ復帰
    749637        popm    r1-r5
    750         rte                                                                     ; 割込み前の処理に戻る
    751 
    752 
    753 ;
    754 ;  CPU例外の出å
    755 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    756 ;
    757 ;  呼出し条件:
    758 ;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
    759 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    760 ;    タスクスタック
    761 ;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
    762 ;    PSWが保存されている.
    763 ;  ・ベクタテーブルに登録された個別のå
    764 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    765 ;    スクラッチレジスタ(R1-R5)が保存されている.
    766 ;
    767 ;  引数:
    768 ;  ・r1:CPU例外要因番号
    769 ;  ・r2:CPU例外ハンドラのアドレス
    770 ;
    771 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    772 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    773 ;  上方向に向かって積み上げられるものとする.
    774 ;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラå†
    775 ã§æƒ
    776 å ±ã‚’取得
    777 ;  する目的で退避しており, 出口処理では保存å†
    778 å®¹ã‚’破棄すればよい.
     638        rte                                                                     ; 割込み前の処理に戻る
     639
     640
     641;
     642;  CPU例外の出入口処理(アセンブリ言語記述部分)
     643;
     644;  呼出し条件:
     645;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
     646;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     647;    タスクスタック
     648;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
     649;    PSWが保存されている.
     650;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     651;    スクラッチレジスタ(R1-R5)が保存されている.
     652;
     653;  引数:
     654;  ・r1:CPU例外要因番号
     655;  ・r2:CPU例外ハンドラのアドレス
     656;
     657;  レジスタがスタック上にどのように保存されているかを以下に示す.
     658;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     659;  上方向に向かって積み上げられるものとする.
     660;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラ内で情報を取得
     661;  する目的で退避しており, 出口処理では保存内容を破棄すればよい.
    779662;
    780663;       -------------------------
    781 ;       |    CPU例外要因番号    | <----- p_excinf
     664;       |    CPU例外要因番号    | <----- p_excinf
    782665;       ------------------------- (intptr_t)(p_excinf + 0)
    783666;       |       R6(4byte)       |
     
    822705;       ------------------------- (intptr_t)(p_excinf + 80)
    823706;
    824 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    825 ;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
    826 ;
    827 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    828 ;  TRUE になった時に,ret_int へ分岐(é
    829 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    830 ;
    831 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    832 ;  intnest != 0 ならば多重割込みであると判定する.
    833 ;
    834 ;  reqflg はCPUロック状æ
    835 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    836 ;  reqflg チェック後に起動された割込みハンドラå†
    837 ã§
    838 ;  ディスパッチが要求された場合に,ディスパッチされない.
    839 ;
    840 ;
    841 ;  CPU例外å
    842 ¥å£å‡¦ç†
    843 ;
    844 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    845 ;
    846 
    847 ;
    848 ;  CPU例外ハンドラ呼出し後に不要となるスタックæƒ
    849 å ±ã®ã‚µã‚¤ã‚º
     707;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     708;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
     709;
     710;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     711;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     712;
     713;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     714;  intnest != 0 ならば多重割込みであると判定する.
     715;
     716;  reqflg はCPUロック状態でチェックする. そうでないと,
     717;  reqflg チェック後に起動された割込みハンドラ内で
     718;  ディスパッチが要求された場合に,ディスパッチされない.
     719;
     720;
     721;  CPU例外入口処理
     722;
     723;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     724;
     725
     726;
     727;  CPU例外ハンドラ呼出し後に不要となるスタック情報のサイズ
    850728;  EXCNO + R6--R13
    851729;
     
    853731
    854732_kernel_exception:
    855         pushm   r14-r15                                         ; スクラッチレジスタを退避
     733        pushm   r14-r15                                         ; スクラッチレジスタを退避
    856734        pushc   fpsw
    857735        mvfacmi r5
    858         shll    #16, r5                                         ; ACC最下位16bitは0とする
     736        shll    #16, r5                                         ; ACC最下位16bitは0とする
    859737        mvfachi r4
    860         pushm   r4-r5                                           ; アキュムレータ退避
    861         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    862         push.l  r1                                                      ; CPU例外要因番号を保持
    863         mov.l   r0, r3                                          ; スタックポインタを取り出し
     738        pushm   r4-r5                                           ; アキュムレータ退避
     739        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     740        push.l  r1                                                      ; CPU例外要因番号を保持
     741        mov.l   r0, r3                                          ; スタックポインタを取り出し
    864742        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    865743        and             #PSW_I_MASK, r5
    866         bz              exception_nonkernel                     ; å
    867 ¨å‰²è¾¼ã¿ç¦æ­¢(CPUロック)状æ
    868 ‹ãªã‚‰ç®¡ç†å¤–
     744        bz              exception_nonkernel                     ; 全割込み禁止(CPUロック)状態なら管理外
    869745.if     TIPM_LOCK != -15
    870746        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    871747        and             #PSW_IPL_MASK, r5
    872748        cmp             #IPL_LOCK, r5
    873         bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
     749        bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
    874750.endif
    875751        mov.l   #__kernel_intnest, r5
    876752        mov.w   [r5], r4
    877         add             #1, r4                                          ; ネスト回数をインクリメント
     753        add             #1, r4                                          ; ネスト回数をインクリメント
    878754        mov.w   r4, [r5]
    879         cmp             #1, r4                                          ; 多重割り込みかどうか
    880         bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
    881                                                 ; 初段の割込み
    882         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     755        cmp             #1, r4                                          ; 多重割り込みかどうか
     756        bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
     757                                                ; 初段の割込み
     758        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    883759        mov.l   [r5], r0
    884         push.l  r3                                                      ; タスクスタックを保持
    885 exception_from_int:             ; 多重割込み
     760        push.l  r3                                                      ; タスクスタックを保持
     761exception_from_int:             ; 多重割込み
    886762        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    887         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    888 ‹ã«æˆ»ã™
     763        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
    889764.if     LOG_EXC_LEAVE == 1
    890         push.l  r1                                                      ; ログトレースの引数を保持
     765        push.l  r1                                                      ; ログトレースの引数を保持
    891766.endif
    892767
    893768.if     LOG_EXC_ENTER == 1
    894769        pushm   r2-r3
    895         bsr             _kernel_log_exc_enter           ; ログトレース関数の呼出し
    896                                                         ; 引数の割込み要因番号は既にr1にå
    897 ¥ã£ã¦ã„ã‚‹
     770        bsr             _kernel_log_exc_enter           ; ログトレース関数の呼出し
     771                                                        ; 引数の割込み要因番号は既にr1に入っている
    898772        popm    r2-r3
    899773.endif
    900774
    901         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    902         jsr     r2                                                      ; Cルーチン呼び出し
     775        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     776        jsr     r2                                                      ; Cルーチン呼び出し
    903777
    904778.if     LOG_EXC_LEAVE == 1
    905         pop             r1                                                      ; 引数に割込み要因番号を設定
    906         bsr             _kernel_log_exc_leave           ; ログトレース関数の呼出し
    907 .endif
    908 
    909         clrpsw  i                                                       ; ここからはå¿
    910 ãšå‰²è¾¼ã¿ç¦æ­¢
     779        pop             r1                                                      ; 引数に割込み要因番号を設定
     780        bsr             _kernel_log_exc_leave           ; ログトレース関数の呼出し
     781.endif
     782
     783        clrpsw  i                                                       ; ここからは必ず割込み禁止
    911784        mov.l   #__kernel_intnest, r5
    912785        mov.w   [r5], r4
    913         sub             #1, r4                                          ; ネスト回数をデクリメント
     786        sub             #1, r4                                          ; ネスト回数をデクリメント
    914787        mov.w   r4, [r5]
    915         cmp             #0, r4                                          ; 多重割り込みかどうか
    916         bnz             exception_return                        ; 多重割り込みならリターン
    917         ; 初段の割込み
    918         pop             r0                                                      ; タスクのスタックに戻す
    919         mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
     788        cmp             #0, r4                                          ; 多重割り込みかどうか
     789        bnz             exception_return                        ; 多重割り込みならリターン
     790        ; 初段の割込み
     791        pop             r0                                                      ; タスクのスタックに戻す
     792        mov.l   #__kernel_reqflg, r5            ; ディスパッチ要求がないか?
    920793        mov.l   [r5], r5
    921794        cmp             #1, r5
    922         bnz             exception_return                        ; なければリターン
    923         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    924 å ±ã®ç ´æ£„
    925         bra             ret_int                                         ; あれば ret_int へジャンプ
     795        bnz             exception_return                        ; なければリターン
     796        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     797        bra             ret_int                                         ; あれば ret_int へジャンプ
    926798
    927799exception_nonkernel:
    928800        mov.l   #__kernel_intnest, r5
    929801        mov.w   [r5], r4
    930         add             #1, r4                                          ; ネスト回数をインクリメント
     802        add             #1, r4                                          ; ネスト回数をインクリメント
    931803        mov.w   r4, [r5]
    932         cmp             #1, r4                                          ; 多重割り込みかどうか
    933         bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
    934                                                 ; 初段の割込み
    935         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     804        cmp             #1, r4                                          ; 多重割り込みかどうか
     805        bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
     806                                                ; 初段の割込み
     807        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    936808        mov.l   [r5], r0
    937         push.l  r3                                                      ; タスクスタックを保持
    938 exception_from_nonkernelint:    ; 多重割込み
     809        push.l  r3                                                      ; タスクスタックを保持
     810exception_from_nonkernelint:    ; 多重割込み
    939811        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    940         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    941 ‹ã«æˆ»ã™
    942 
    943         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    944         jsr     r2                                                      ; Cルーチン呼び出し
    945 
    946         clrpsw  i                                                       ; ここからはå¿
    947 ãšå‰²è¾¼ã¿ç¦æ­¢
     812        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
     813
     814        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     815        jsr     r2                                                      ; Cルーチン呼び出し
     816
     817        clrpsw  i                                                       ; ここからは必ず割込み禁止
    948818        mov.l   #__kernel_intnest, r5
    949819        mov.w   [r5], r4
    950         sub             #1, r4                                          ; ネスト回数をデクリメント
     820        sub             #1, r4                                          ; ネスト回数をデクリメント
    951821        mov.w   r4, [r5]
    952         cmp             #0, r4                                          ; 多重割り込みかどうか
    953         bnz             exception_return                        ; 多重割り込みならリターン
    954         ; 初段の割込み
    955         pop             r0                                                      ; タスクのスタックに戻す
     822        cmp             #0, r4                                          ; 多重割り込みかどうか
     823        bnz             exception_return                        ; 多重割り込みならリターン
     824        ; 初段の割込み
     825        pop             r0                                                      ; タスクのスタックに戻す
    956826
    957827exception_return:
    958         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    959 å ±ã®ç ´æ£„
    960         popm    r4-r5                                           ; アキュムレータ復帰
    961         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     828        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     829        popm    r4-r5                                           ; アキュムレータ復帰
     830        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    962831        mvtachi r4
    963         popc    fpsw                                            ; FPUステータスレジスタ復帰
    964         popm    r14-r15                                         ; レジスタ復帰
     832        popc    fpsw                                            ; FPUステータスレジスタ復帰
     833        popm    r14-r15                                         ; レジスタ復帰
    965834        popm    r1-r5
    966         rte                                                                     ; 割込み前の処理に戻る
    967 
    968 
    969 ;
    970 ;  微少時間å¾
    971 ã¡
     835        rte                                                                     ; 割込み前の処理に戻る
     836
     837
     838;
     839;  微少時間待ち
    972840;
    973841_sil_dly_nse:
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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) の条件か,Free Software Foundation
    11  *  によってå
    12 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    13  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    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 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     10 *  によって公表されている GNU General Public License の Version 2 に記
     11 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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プロジェクトを免責すること.
    4330 *
    44  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    45 ãŠ
    46  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    47  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    48  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     33 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     34 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4935 *
    5036 */
    5137
    5238/*
    53  *              テストプログラムのターゲット依存定義(RX630用)
     39 *              テストプログラムのターゲット依存定義(RX630用)
    5440 */
    5541
     
    5844
    5945/*
    60  *  起動メッセージにターゲット依存部の著作権表示を
    61  *  追加するためのマクロ.
     46 *  起動メッセージにターゲット依存部の著作権表示を
     47 *  追加するためのマクロ.
    6248 */
    6349#define PRC_COPYRIGHT                                                                           \
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 */
    5338
    5439/*
    55  *              テストプログラムのターゲット依存定義(RX630用)
     40 *              テストプログラムのターゲット依存定義(RX630用)
    5641 */
    5742
     
    5944#define TOPPERS_PRC_TEST_H
    6045
    61 #define CPUEXC1                                 25              /* 浮動小数点例外 */
     46#define CPUEXC1                                 25              /* 浮動小数点例外 */
    6247#define RAISE_CPU_EXCEPTION             trigger_cpu_exception()
    6348
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.src

    • Property svn:eol-style set to native
    • Property svn:keywords set to Id
    • Property svn:mime-type set to text/x-gas; charset=UTF-8
    r313 r315  
    66;*  Copyright (C) 2010 by Witz Corporation, JAPAN
    77;*
    8 ;*  上記著作権è€
    9 ã¯ï¼ŒFree Software Foundation によってå
    10 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹
    11 ;*  GNU General Public License の Version 2 に記述されている条件か,以
    12 ;*  下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
    13 ;*  アを改変したものを含む.以下同じ)を使用・複製・改変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    15 ;*  利用と呼ぶ)することを無償で許諾する.
    16 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18 ;*      スコード中に含まれていること.
    19 ;*  (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
    20 ;*      ジェクトファイルやライブラリなど)の形で利用する場合には,利用
    21 ;*      に伴うドキュメント(利用è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,
    23 ;*      この利用条件および下記の無保証規定を掲載すること.
    24 ;*  (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
    25 ;*      み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
    26 ;*    (a) 利用に伴うドキュメント(利用è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作
    28 ;*        権表示,この利用条件および下記の無保証規定を掲載すること.
    29 ;*    (b) 利用の形æ
    30 ‹ã‚’,別に定める方法によって,上記著作権è€
    31 ã«å ±å‘Šã™ã‚‹
    32 ;*        こと.
    33 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34 ;*      害からも,上記著作権è€
    35 ã‚’å
    36 è²¬ã™ã‚‹ã“と.
     8;*  上記著作権者は,Free Software Foundation によって公表されている
     9;*  GNU General Public License の Version 2 に記述されている条件か,以
     10;*  下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
     11;*  アを改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     12;*  利用と呼ぶ)することを無償で許諾する.
     13;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15;*      スコード中に含まれていること.
     16;*  (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
     17;*      ジェクトファイルやライブラリなど)の形で利用する場合には,利用
     18;*      に伴うドキュメント(利用者マニュアルなど)に,上記の著作権表示,
     19;*      この利用条件および下記の無保証規定を掲載すること.
     20;*  (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
     21;*      み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
     22;*    (a) 利用に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     23;*        権表示,この利用条件および下記の無保証規定を掲載すること.
     24;*    (b) 利用の形態を,別に定める方法によって,上記著作権者に報告する
     25;*        こと.
     26;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27;*      害からも,上記著作権者を免責すること.
    3728;*
    38 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    39 ã¯ï¼Œ
    40 ;*  本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
    41 ;*  ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
    42 ;*  かなる損害に関しても,その責任を負わない.
     29;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者は,
     30;*  本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
     31;*  ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
     32;*  かなる損害に関しても,その責任を負わない.
    4333;*
    4434
     
    4939_trigger_cpu_exception:
    5040        ;
    51         ;  CPU例外の発生
     41        ;  CPU例外の発生
    5242        ;
    53         ;  ゼロ割り算を行うことで, 浮動小数点例外を
    54         ;  発生させる.
     43        ;  ゼロ割り算を行うことで, 浮動小数点例外を
     44        ;  発生させる.
    5545        ;
    5646        mvtc    #00001000H, fpsw
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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_ccrx/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
     
    6146
    6247/*
    63  *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
     48 *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
    6449 *
    65  *  番号の範囲は0 - 31
    66  */
    67 #define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
    68 #define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
    69 #define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
    70 #define INT_NMI                                                 30              /* ノンマスカブル割り込み */
    71 #define INT_RESET                                               31              /* リセット */
    72 
    73 /*
    74  *  割込み番号の定義(可変ベクタテーブル)
     50 *  番号の範囲は0 - 31
     51 */
     52#define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
     53#define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
     54#define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
     55#define INT_NMI                                                 30              /* ノンマスカブル割り込み */
     56#define INT_RESET                                               31              /* リセット */
     57
     58/*
     59 *  割込み番号の定義(可変ベクタテーブル)
    7560 */
    7661#define INT_BUSERR                      16
     
    261246
    262247/*
    263  *  各モジュールのレジスタ及び設定ビットæƒ
    264 å ±
     248 *  各モジュールのレジスタ及び設定ビット情報
    265249 */
    266250
     
    268252
    269253/*
    270  * モジュールストップコントロールレジスタA(MSTPCRA)
     254 * モジュールストップコントロールレジスタA(MSTPCRA)
    271255 */
    272256#define SYSTEM_MSTPCRA_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080010 )
     
    306290
    307291/*
    308  * モジュールストップコントロールレジスタB(MSTPCRB)
     292 * モジュールストップコントロールレジスタB(MSTPCRB)
    309293 */
    310294#define SYSTEM_MSTPCRB_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080014 )
     
    343327
    344328/*
    345  * モジュールストップコントロールレジスタC(MSTPCRC)
     329 * モジュールストップコントロールレジスタC(MSTPCRC)
    346330 */
    347331#define SYSTEM_MSTPCRC_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080018 )
     
    380364
    381365/*
    382  * クロック発生回路
     366 * クロック発生回路
    383367 */
    384368#define SYSTEM_SCKCR_ADDR                       ( ( volatile uint32_t __evenaccess * )0x00080020 )
     
    400384
    401385/*
    402  * プロテクトレジスタ
     386 * プロテクトレジスタ
    403387 */
    404388#define SYSTEM_PRCR_ADDR                ( ( volatile uint16_t __evenaccess * )0x000803FE )
    405389
    406390/*
    407  * 割り込み要求レジスタ
     391 * 割り込み要求レジスタ
    408392 */
    409393#define ICU_IR000_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087000 )
     
    666650
    667651/*
    668  * 割り込み要求å
    669 ˆè¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿
     652 * 割り込み要求先設定レジスタ
    670653 */
    671654#define ICU_ISELR000_ADDR               ( ( volatile uint8_t __evenaccess * )0x00087100 )
     
    928911
    929912/*
    930  * 割り込み要求許可レジスタ
     913 * 割り込み要求許可レジスタ
    931914 */
    932915#define ICU_IER02_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087202 )
     
    969952
    970953/*
    971  * 割り込み要因プライオリティレジスタi(i=0~253)の設定
     954 * 割り込み要因プライオリティレジスタi(i=0~253)の設定
    972955 */
    973956#define ICU_IPR000_ADDR                 ( ( volatile uint8_t __evenaccess * )0x00087300 )
     
    12311214
    12321215/*
    1233  *  IRQコントロールレジスタ
     1216 *  IRQコントロールレジスタ
    12341217 */
    12351218#define ICU_IRQ0_ADDR                   ( ( volatile uint8_t __evenaccess * )0x00087500 )
     
    12531236
    12541237/*
    1255  *  各チャンネルのレジスタ及び設定ビットæƒ
    1256 å ±
     1238 *  各チャンネルのレジスタ及び設定ビット情報
    12571239 */
    12581240#define CMT_CMSTR0_ADDR                 ( ( volatile uint16_t __evenaccess * )0x00088000 )
     
    13631345
    13641346/*
    1365  *  I/Oポートのレジスタ及び設定ビットæƒ
    1366 å ±
     1347 *  I/Oポートのレジスタ及び設定ビット情報
    13671348 */
    13681349#define PORT0_PDR_ADDR                  ( ( volatile uint8_t __evenaccess * )0x0008C000 )
     
    15341515
    15351516/*
    1536  *  マルチファンクションピンコントローラのレジスタæƒ
    1537 å ±
     1517 *  マルチファンクションピンコントローラのレジスタ情報
    15381518 */
    15391519#define MPC_PFUSB0_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C114 )
     
    16741654
    16751655/*
    1676  * リアルタイムクロック
     1656 * リアルタイムクロック
    16771657 */
    16781658#define RTC_R64CNT_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C400 )
     
    16861666
    16871667/*
    1688  * 12 ビットA/D コンバータ
     1668 * 12 ビットA/D コンバータ
    16891669 */
    16901670#define S12AD_ADCSR_ADDR                ( ( volatile uint8_t __evenaccess * )0x00089000 )
     
    19151895
    19161896/*
    1917  *  UART関連の定義
     1897 *  UART関連の定義
    19181898 *
    1919  *  pdicのrx600/rx630_uart.cで使用する.
    1920  */
    1921 /*
    1922  *  シリアルI/Oの個数
     1899 *  pdicのrx600/rx630_uart.cで使用する.
     1900 */
     1901/*
     1902 *  シリアルI/Oの個数
    19231903 */
    19241904#define TNUM_SIOP       ( 2 )
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 */
    5439
    5540/*
    56  *              プロセッサ依存モジュール
     41 *              プロセッサ依存モジュール
    5742 */
    5843
     
    6146
    6247/*
    63  *  割込み要因プライオリティレジスタアドレステーブル
     48 *  割込み要因プライオリティレジスタアドレステーブル
    6449 */
    6550volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
    66         NULL,                                                   /* No.0  予約 */
    67         NULL,                                                   /* No.1  予約 */
    68         NULL,                                                   /* No.2  予約 */
    69         NULL,                                                   /* No.3  予約 */
    70         NULL,                                                   /* No.4  予約 */
    71         NULL,                                                   /* No.5  予約 */
    72         NULL,                                                   /* No.6  予約 */
    73         NULL,                                                   /* No.7  予約 */
    74         NULL,                                                   /* No.8  予約 */
    75         NULL,                                                   /* No.9  予約 */
    76         NULL,                                                   /* No.10  予約 */
    77         NULL,                                                   /* No.11  予約 */
    78         NULL,                                                   /* No.12  予約 */
    79         NULL,                                                   /* No.13  予約 */
    80         NULL,                                                   /* No.14  予約 */
    81         NULL,                                                   /* No.15  予約 */
    82         ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
    83         NULL,                                                   /* No.17  予約 */
    84         NULL,                                                   /* No.18  予約 */
    85         NULL,                                                   /* No.19  予約 */
    86         NULL,                                                   /* No.20  予約 */
     51        NULL,                                                   /* No.0  予約 */
     52        NULL,                                                   /* No.1  予約 */
     53        NULL,                                                   /* No.2  予約 */
     54        NULL,                                                   /* No.3  予約 */
     55        NULL,                                                   /* No.4  予約 */
     56        NULL,                                                   /* No.5  予約 */
     57        NULL,                                                   /* No.6  予約 */
     58        NULL,                                                   /* No.7  予約 */
     59        NULL,                                                   /* No.8  予約 */
     60        NULL,                                                   /* No.9  予約 */
     61        NULL,                                                   /* No.10  予約 */
     62        NULL,                                                   /* No.11  予約 */
     63        NULL,                                                   /* No.12  予約 */
     64        NULL,                                                   /* No.13  予約 */
     65        NULL,                                                   /* No.14  予約 */
     66        NULL,                                                   /* No.15  予約 */
     67        ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
     68        NULL,                                                   /* No.17  予約 */
     69        NULL,                                                   /* No.18  予約 */
     70        NULL,                                                   /* No.19  予約 */
     71        NULL,                                                   /* No.20  予約 */
    8772        ICU_IPR001_ADDR,                                /* No.21  FCU FIFERR */
    88         NULL,                                                   /* No.22  予約 */
     73        NULL,                                                   /* No.22  予約 */
    8974        ICU_IPR002_ADDR,                                /* No.23  FCU FRDYI */
    90         NULL,                                                   /* No.24  予約 */
    91         NULL,                                                   /* No.25  予約 */
    92         NULL,                                                   /* No.26  予約 */
     75        NULL,                                                   /* No.24  予約 */
     76        NULL,                                                   /* No.25  予約 */
     77        NULL,                                                   /* No.26  予約 */
    9378        ICU_IPR003_ADDR,                                /* No.27  SWINT */
    94         ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
    95         ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
    96         ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
    97         ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
     79        ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
     80        ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
     81        ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
     82        ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
    9883        ICU_IPR032_ADDR,                                /* No.32  ETHER */
    9984        ICU_IPR033_ADDR,                                /* No.33  USB0 D0FIFO0 */
     
    124109        ICU_IPR056_ADDR,                                /* No.58  CAN RXM2 */
    125110        ICU_IPR056_ADDR,                                /* No.59  CAN TXM2 */
    126         NULL,                                                   /* No.60  予約 */
    127         NULL,                                                   /* No.61  予約 */
     111        NULL,                                                   /* No.60  予約 */
     112        NULL,                                                   /* No.61  予約 */
    128113        ICU_IPR062_ADDR,                                /* No.62  RTC PRD */
    129         NULL,                                                   /* No.63  予約 */
    130         ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
    131         ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
    132         ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
    133         ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
    134         ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
    135         ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
    136         ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
    137         ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
    138         ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
    139         ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
    140         ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
    141         ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
    142         ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
    143         ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
    144         ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
    145         ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
    146         NULL,                                                   /* No.80  予約 */
    147         NULL,                                                   /* No.81  予約 */
    148         NULL,                                                   /* No.82  予約 */
    149         NULL,                                                   /* No.83  予約 */
    150         NULL,                                                   /* No.84  予約 */
    151         NULL,                                                   /* No.85  予約 */
    152         NULL,                                                   /* No.86  予約 */
    153         NULL,                                                   /* No.87  予約 */
    154         NULL,                                                   /* No.88  予約 */
    155         NULL,                                                   /* No.89  予約 */
     114        NULL,                                                   /* No.63  予約 */
     115        ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
     116        ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
     117        ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
     118        ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
     119        ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
     120        ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
     121        ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
     122        ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
     123        ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
     124        ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
     125        ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
     126        ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
     127        ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
     128        ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
     129        ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
     130        ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
     131        NULL,                                                   /* No.80  予約 */
     132        NULL,                                                   /* No.81  予約 */
     133        NULL,                                                   /* No.82  予約 */
     134        NULL,                                                   /* No.83  予約 */
     135        NULL,                                                   /* No.84  予約 */
     136        NULL,                                                   /* No.85  予約 */
     137        NULL,                                                   /* No.86  予約 */
     138        NULL,                                                   /* No.87  予約 */
     139        NULL,                                                   /* No.88  予約 */
     140        NULL,                                                   /* No.89  予約 */
    156141        ICU_IPR090_ADDR,                                /* No.90  USBR0 */
    157142        ICU_IPR091_ADDR,                                /* No.91  USBR1 */
    158143        ICU_IPR092_ADDR,                                /* No.92  RTC ALM */
    159144        ICU_IPR093_ADDR,                                /* No.93  RTC PRD */
    160         NULL,                                                   /* No.94  予約 */
    161         NULL,                                                   /* No.95  予約 */
    162         NULL,                                                   /* No.96  予約 */
    163         NULL,                                                   /* No.97  予約 */
     145        NULL,                                                   /* No.94  予約 */
     146        NULL,                                                   /* No.95  予約 */
     147        NULL,                                                   /* No.96  予約 */
     148        NULL,                                                   /* No.97  予約 */
    164149        ICU_IPR098_ADDR,                                /* No.98  AD ADI0 */
    165         NULL,                                                   /* No.99  予約 */
    166         NULL,                                                   /* No.100  予約 */
    167         NULL,                                                   /* No.101  予約 */
     150        NULL,                                                   /* No.99  予約 */
     151        NULL,                                                   /* No.100  予約 */
     152        NULL,                                                   /* No.101  予約 */
    168153        ICU_IPR102_ADDR,                                /* No.102 S12AD S12ADIO */
    169         NULL,                                                   /* No.103  予約 */
    170         NULL,                                                   /* No.104  予約 */
    171         NULL,                                                   /* No.105  予約 */
     154        NULL,                                                   /* No.103  予約 */
     155        NULL,                                                   /* No.104  予約 */
     156        NULL,                                                   /* No.105  予約 */
    172157        ICU_IPR106_ADDR,                                /* No.106 ICU GROUP0 */
    173158        ICU_IPR107_ADDR,                                /* No.107 ICU GROUP1 */
     
    177162        ICU_IPR111_ADDR,                                /* No.111 ICU GROUP5 */
    178163        ICU_IPR112_ADDR,                                /* No.112 ICU GROUP6 */
    179         NULL,                                                   /* No.113  予約 */
     164        NULL,                                                   /* No.113  予約 */
    180165        ICU_IPR114_ADDR,                                /* No.114 ICU GROUP12 */
    181         NULL,                                                   /* No.115  予約 */
    182         NULL,                                                   /* No.116  予約 */
    183         NULL,                                                   /* No.117  予約 */
    184         NULL,                                                   /* No.118  予約 */
    185         NULL,                                                   /* No.119  予約 */
    186         NULL,                                                   /* No.120  予約 */
    187         NULL,                                                   /* No.121  予約 */
     166        NULL,                                                   /* No.115  予約 */
     167        NULL,                                                   /* No.116  予約 */
     168        NULL,                                                   /* No.117  予約 */
     169        NULL,                                                   /* No.118  予約 */
     170        NULL,                                                   /* No.119  予約 */
     171        NULL,                                                   /* No.120  予約 */
     172        NULL,                                                   /* No.121  予約 */
    188173        ICU_IPR122_ADDR,                                /* No.122 SCI12 SCIX0 */
    189174        ICU_IPR123_ADDR,                                /* No.123 SCI12 SCIX1 */
     
    232217        ICU_IPR167_ADDR,                                /* No.166 POE OEI1 */
    233218        ICU_IPR167_ADDR,                                /* No.167 POE OEI2 */
    234         NULL,                                                   /* No.168  予約 */
    235         NULL,                                                   /* No.169  予約 */
     219        NULL,                                                   /* No.168  予約 */
     220        NULL,                                                   /* No.169  予約 */
    236221        ICU_IPR170_ADDR,                                /* No.170 TMR0 CMIA0 */
    237222        ICU_IPR170_ADDR,                                /* No.171 TMR0 CMIB0 */
     
    268253        ICU_IPR202_ADDR,                                /* No.202 EXDMAC EXDMACI0 */
    269254        ICU_IPR203_ADDR,                                /* No.203 EXDMAC EXDMACI1 */
    270         NULL,                                                   /* No.204  予約 */
    271         NULL,                                                   /* No.205  予約 */
    272         NULL,                                                   /* No.206  予約 */
    273         NULL,                                                   /* No.207  予約 */
    274         NULL,                                                   /* No.208  予約 */
    275         NULL,                                                   /* No.209  予約 */
    276         NULL,                                                   /* No.210  予約 */
    277         NULL,                                                   /* No.211  予約 */
    278         NULL,                                                   /* No.212  予約 */
    279         NULL,                                                   /* No.213  予約 */
     255        NULL,                                                   /* No.204  予約 */
     256        NULL,                                                   /* No.205  予約 */
     257        NULL,                                                   /* No.206  予約 */
     258        NULL,                                                   /* No.207  予約 */
     259        NULL,                                                   /* No.208  予約 */
     260        NULL,                                                   /* No.209  予約 */
     261        NULL,                                                   /* No.210  予約 */
     262        NULL,                                                   /* No.211  予約 */
     263        NULL,                                                   /* No.212  予約 */
     264        NULL,                                                   /* No.213  予約 */
    280265        ICU_IPR214_ADDR,                                /* No.214 SCI0 RXI0 */
    281266        ICU_IPR214_ADDR,                                /* No.215 SCI0 TXI0 */
     
    318303        ICU_IPR250_ADDR,                                /* No.252 SCI12 TEI12 */
    319304        ICU_IPR253_ADDR,                                /* No.253 IEB IEBINT */
    320         NULL,                                                   /* No.254  予約 */
    321         NULL,                                                   /* No.255  予約 */
     305        NULL,                                                   /* No.254  予約 */
     306        NULL,                                                   /* No.255  予約 */
    322307};
    323308
    324309
    325310/*
    326  *  割込み要求許可レジスタアドレステーブル
     311 *  割込み要求許可レジスタアドレステーブル
    327312 */
    328313const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
    329         { NULL, INVALID_OFFSET },                       /* No.0   äºˆç´„ */
    330         { NULL, INVALID_OFFSET },                       /* No.1   äºˆç´„ */
    331         { NULL, INVALID_OFFSET },                       /* No.2   äºˆç´„ */
    332         { NULL, INVALID_OFFSET },                       /* No.3   äºˆç´„ */
    333         { NULL, INVALID_OFFSET },                       /* No.4   äºˆç´„ */
    334         { NULL, INVALID_OFFSET },                       /* No.5   äºˆç´„ */
    335         { NULL, INVALID_OFFSET },                       /* No.6   äºˆç´„ */
    336         { NULL, INVALID_OFFSET },                       /* No.7   äºˆç´„ */
    337         { NULL, INVALID_OFFSET },                       /* No.8   äºˆç´„ */
    338         { NULL, INVALID_OFFSET },                       /* No.9   äºˆç´„ */
    339         { NULL, INVALID_OFFSET },                       /* No.10  予約 */
    340         { NULL, INVALID_OFFSET },                       /* No.11  予約 */
    341         { NULL, INVALID_OFFSET },                       /* No.12  予約 */
    342         { NULL, INVALID_OFFSET },                       /* No.13  予約 */
    343         { NULL, INVALID_OFFSET },                       /* No.14  予約 */
    344         { NULL, INVALID_OFFSET },                       /* No.15  予約 */
    345         { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
    346         { NULL, INVALID_OFFSET },                       /* No.17  予約 */
    347         { NULL, INVALID_OFFSET },                       /* No.18  予約 */
    348         { NULL, INVALID_OFFSET },                       /* No.19  予約 */
    349         { NULL, INVALID_OFFSET },                       /* No.20  予約 */
     314        { NULL, INVALID_OFFSET },                       /* No.0   予約 */
     315        { NULL, INVALID_OFFSET },                       /* No.1   予約 */
     316        { NULL, INVALID_OFFSET },                       /* No.2   予約 */
     317        { NULL, INVALID_OFFSET },                       /* No.3   予約 */
     318        { NULL, INVALID_OFFSET },                       /* No.4   予約 */
     319        { NULL, INVALID_OFFSET },                       /* No.5   予約 */
     320        { NULL, INVALID_OFFSET },                       /* No.6   予約 */
     321        { NULL, INVALID_OFFSET },                       /* No.7   予約 */
     322        { NULL, INVALID_OFFSET },                       /* No.8   予約 */
     323        { NULL, INVALID_OFFSET },                       /* No.9   予約 */
     324        { NULL, INVALID_OFFSET },                       /* No.10  予約 */
     325        { NULL, INVALID_OFFSET },                       /* No.11  予約 */
     326        { NULL, INVALID_OFFSET },                       /* No.12  予約 */
     327        { NULL, INVALID_OFFSET },                       /* No.13  予約 */
     328        { NULL, INVALID_OFFSET },                       /* No.14  予約 */
     329        { NULL, INVALID_OFFSET },                       /* No.15  予約 */
     330        { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
     331        { NULL, INVALID_OFFSET },                       /* No.17  予約 */
     332        { NULL, INVALID_OFFSET },                       /* No.18  予約 */
     333        { NULL, INVALID_OFFSET },                       /* No.19  予約 */
     334        { NULL, INVALID_OFFSET },                       /* No.20  予約 */
    350335        { ICU_IER02_ADDR, ICU_IEN5_BIT },       /* No.21  FCU FIFERR */
    351         { NULL, INVALID_OFFSET },                       /* No.22  予約 */
     336        { NULL, INVALID_OFFSET },                       /* No.22  予約 */
    352337        { ICU_IER02_ADDR, ICU_IEN7_BIT },       /* No.23  FCU FRDYI */
    353         { NULL, INVALID_OFFSET },                       /* No.24  予約 */
    354         { NULL, INVALID_OFFSET },                       /* No.25  予約 */
    355         { NULL, INVALID_OFFSET },                       /* No.26  予約 */
     338        { NULL, INVALID_OFFSET },                       /* No.24  予約 */
     339        { NULL, INVALID_OFFSET },                       /* No.25  予約 */
     340        { NULL, INVALID_OFFSET },                       /* No.26  予約 */
    356341        { ICU_IER03_ADDR, ICU_IEN3_BIT },       /* No.27  SWINT */
    357         { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
    358         { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
    359         { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
    360         { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
     342        { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
     343        { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
     344        { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
     345        { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
    361346        { ICU_IER04_ADDR, ICU_IEN0_BIT },       /* No.32  ETHER */
    362347        { ICU_IER04_ADDR, ICU_IEN1_BIT },       /* No.33  USB0 D0FIFO0 */
     
    387372        { ICU_IER07_ADDR, ICU_IEN2_BIT },       /* No.58  CAN2 RXM2 */
    388373        { ICU_IER07_ADDR, ICU_IEN3_BIT },       /* No.59  CAN2 TXM2 */
    389         { NULL, INVALID_OFFSET },                       /* No.60  予約 */
    390         { NULL, INVALID_OFFSET },                       /* No.61  予約 */
     374        { NULL, INVALID_OFFSET },                       /* No.60  予約 */
     375        { NULL, INVALID_OFFSET },                       /* No.61  予約 */
    391376        { ICU_IER07_ADDR, ICU_IEN6_BIT },       /* No.62  RTC PRD */
    392         { NULL, INVALID_OFFSET },                       /* No.63  予約 */
    393         { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
    394         { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
    395         { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
    396         { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
    397         { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
    398         { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
    399         { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
    400         { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
    401         { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
    402         { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
    403         { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
    404         { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
    405         { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
    406         { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
    407         { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
    408         { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
    409         { NULL, INVALID_OFFSET },                       /* No.80  予約 */
    410         { NULL, INVALID_OFFSET },                       /* No.81  予約 */
    411         { NULL, INVALID_OFFSET },                       /* No.82  予約 */
    412         { NULL, INVALID_OFFSET },                       /* No.83  予約 */
    413         { NULL, INVALID_OFFSET },                       /* No.84  予約 */
    414         { NULL, INVALID_OFFSET },                       /* No.85  予約 */
    415         { NULL, INVALID_OFFSET },                       /* No.86  予約 */
    416         { NULL, INVALID_OFFSET },                       /* No.87  予約 */
    417         { NULL, INVALID_OFFSET },                       /* No.88  予約 */
    418         { NULL, INVALID_OFFSET },                       /* No.89  予約 */
     377        { NULL, INVALID_OFFSET },                       /* No.63  予約 */
     378        { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
     379        { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
     380        { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
     381        { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
     382        { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
     383        { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
     384        { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
     385        { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
     386        { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
     387        { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
     388        { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
     389        { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
     390        { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
     391        { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
     392        { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
     393        { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
     394        { NULL, INVALID_OFFSET },                       /* No.80  予約 */
     395        { NULL, INVALID_OFFSET },                       /* No.81  予約 */
     396        { NULL, INVALID_OFFSET },                       /* No.82  予約 */
     397        { NULL, INVALID_OFFSET },                       /* No.83  予約 */
     398        { NULL, INVALID_OFFSET },                       /* No.84  予約 */
     399        { NULL, INVALID_OFFSET },                       /* No.85  予約 */
     400        { NULL, INVALID_OFFSET },                       /* No.86  予約 */
     401        { NULL, INVALID_OFFSET },                       /* No.87  予約 */
     402        { NULL, INVALID_OFFSET },                       /* No.88  予約 */
     403        { NULL, INVALID_OFFSET },                       /* No.89  予約 */
    419404        { ICU_IER0B_ADDR, ICU_IEN2_BIT },       /* No.90  USBR0 */
    420405        { ICU_IER0B_ADDR, ICU_IEN3_BIT },       /* No.91  USBR1 */
    421406        { ICU_IER0B_ADDR, ICU_IEN4_BIT },       /* No.92  RTC ALM */
    422407        { ICU_IER0B_ADDR, ICU_IEN5_BIT },       /* No.92  RTC PRD */
    423         { NULL, INVALID_OFFSET },                       /* No.94  予約 */
    424         { NULL, INVALID_OFFSET },                       /* No.95  予約 */
    425         { NULL, INVALID_OFFSET },                       /* No.96  予約 */
    426         { NULL, INVALID_OFFSET },                       /* No.97  予約 */
     408        { NULL, INVALID_OFFSET },                       /* No.94  予約 */
     409        { NULL, INVALID_OFFSET },                       /* No.95  予約 */
     410        { NULL, INVALID_OFFSET },                       /* No.96  予約 */
     411        { NULL, INVALID_OFFSET },                       /* No.97  予約 */
    427412        { ICU_IER0C_ADDR, ICU_IEN2_BIT },       /* No.98  AD0 ADI0 */
    428         { NULL, INVALID_OFFSET },                       /* No.99  予約 */
    429         { NULL, INVALID_OFFSET },                       /* No.100 予約 */
    430         { NULL, INVALID_OFFSET },                       /* No.101 予約 */
     413        { NULL, INVALID_OFFSET },                       /* No.99  予約 */
     414        { NULL, INVALID_OFFSET },                       /* No.100 予約 */
     415        { NULL, INVALID_OFFSET },                       /* No.101 予約 */
    431416        { ICU_IER0C_ADDR, ICU_IEN6_BIT },       /* No.102 S12AD S12ADI00 */
    432         { NULL, INVALID_OFFSET },                       /* No.103 予約 */
    433         { NULL, INVALID_OFFSET },                       /* No.104 予約 */
    434         { NULL, INVALID_OFFSET },                       /* No.105 予約 */
     417        { NULL, INVALID_OFFSET },                       /* No.103 予約 */
     418        { NULL, INVALID_OFFSET },                       /* No.104 予約 */
     419        { NULL, INVALID_OFFSET },                       /* No.105 予約 */
    435420        { ICU_IER0D_ADDR, ICU_IEN2_BIT },       /* No.106 ICU GROUP0 */
    436421        { ICU_IER0D_ADDR, ICU_IEN3_BIT },       /* No.107 ICU GROUP1 */
     
    440425        { ICU_IER0D_ADDR, ICU_IEN7_BIT },       /* No.111 ICU GROUP5 */
    441426        { ICU_IER0E_ADDR, ICU_IEN0_BIT },       /* No.112 ICU GROUP6 */
    442         { NULL, INVALID_OFFSET },                       /* No.113 予約 */
     427        { NULL, INVALID_OFFSET },                       /* No.113 予約 */
    443428        { ICU_IER0E_ADDR, ICU_IEN1_BIT },       /* No.114 ICU GROUP12 */
    444         { NULL, INVALID_OFFSET },                       /* No.115 予約 */
    445         { NULL, INVALID_OFFSET },                       /* No.116 予約 */
    446         { NULL, INVALID_OFFSET },                       /* No.117 予約 */
    447         { NULL, INVALID_OFFSET },                       /* No.118 予約 */
    448         { NULL, INVALID_OFFSET },                       /* No.119 予約 */
    449         { NULL, INVALID_OFFSET },                       /* No.120 予約 */
    450         { NULL, INVALID_OFFSET },                       /* No.121 予約 */
     429        { NULL, INVALID_OFFSET },                       /* No.115 予約 */
     430        { NULL, INVALID_OFFSET },                       /* No.116 予約 */
     431        { NULL, INVALID_OFFSET },                       /* No.117 予約 */
     432        { NULL, INVALID_OFFSET },                       /* No.118 予約 */
     433        { NULL, INVALID_OFFSET },                       /* No.119 予約 */
     434        { NULL, INVALID_OFFSET },                       /* No.120 予約 */
     435        { NULL, INVALID_OFFSET },                       /* No.121 予約 */
    451436        { ICU_IER0F_ADDR, ICU_IEN2_BIT },       /* No.122 SCI12 SCIX0 */
    452437        { ICU_IER0F_ADDR, ICU_IEN3_BIT },       /* No.123 SCI12 SCIX1 */
     
    495480        { ICU_IER14_ADDR, ICU_IEN6_BIT },       /* No.166 POE OEI1 */
    496481        { ICU_IER14_ADDR, ICU_IEN7_BIT },       /* No.167 POE OEI2 */
    497         { NULL, INVALID_OFFSET },                       /* No.168 予約 */
    498         { NULL, INVALID_OFFSET },                       /* No.169 予約 */
     482        { NULL, INVALID_OFFSET },                       /* No.168 予約 */
     483        { NULL, INVALID_OFFSET },                       /* No.169 予約 */
    499484        { ICU_IER15_ADDR, ICU_IEN2_BIT },       /* No.170 TMR0 CMIA0 */
    500485        { ICU_IER15_ADDR, ICU_IEN3_BIT },       /* No.171 TMR0 CMIB0 */
     
    531516        { ICU_IER19_ADDR, ICU_IEN2_BIT },       /* No.202 EXDMAC EXDMAC0I */
    532517        { ICU_IER19_ADDR, ICU_IEN3_BIT },       /* No.203 EXDMAC EXDMAC1I */
    533         { NULL, INVALID_OFFSET },                       /* No.204 予約 */
    534         { NULL, INVALID_OFFSET },                       /* No.205 予約 */
    535         { NULL, INVALID_OFFSET },                       /* No.206 予約 */
    536         { NULL, INVALID_OFFSET },                       /* No.207 予約 */
    537         { NULL, INVALID_OFFSET },                       /* No.208 予約 */
    538         { NULL, INVALID_OFFSET },                       /* No.209 予約 */
    539         { NULL, INVALID_OFFSET },                       /* No.210 予約 */
    540         { NULL, INVALID_OFFSET },                       /* No.211 予約 */
    541         { NULL, INVALID_OFFSET },                       /* No.212 予約 */
    542         { NULL, INVALID_OFFSET },                       /* No.213 予約 */
     518        { NULL, INVALID_OFFSET },                       /* No.204 予約 */
     519        { NULL, INVALID_OFFSET },                       /* No.205 予約 */
     520        { NULL, INVALID_OFFSET },                       /* No.206 予約 */
     521        { NULL, INVALID_OFFSET },                       /* No.207 予約 */
     522        { NULL, INVALID_OFFSET },                       /* No.208 予約 */
     523        { NULL, INVALID_OFFSET },                       /* No.209 予約 */
     524        { NULL, INVALID_OFFSET },                       /* No.210 予約 */
     525        { NULL, INVALID_OFFSET },                       /* No.211 予約 */
     526        { NULL, INVALID_OFFSET },                       /* No.212 予約 */
     527        { NULL, INVALID_OFFSET },                       /* No.213 予約 */
    543528        { ICU_IER1A_ADDR, ICU_IEN6_BIT },       /* No.214 SCI0 RXI0 */
    544529        { ICU_IER1A_ADDR, ICU_IEN7_BIT },       /* No.215 SCI0 TXI0 */
     
    581566        { ICU_IER1F_ADDR, ICU_IEN4_BIT },       /* No.252 SCI12 TEI12 */
    582567        { ICU_IER1F_ADDR, ICU_IEN5_BIT },       /* No.253 IEB IEBINT */
    583         { NULL, INVALID_OFFSET },                       /* No.254 予約 */
    584         { NULL, INVALID_OFFSET },                       /* No.255 予約 */
     568        { NULL, INVALID_OFFSET },                       /* No.254 予約 */
     569        { NULL, INVALID_OFFSET },                       /* No.255 予約 */
    585570};
    586571
    587572
    588573/*
    589  *  IRQコントロールレジスタアドレステーブル
     574 *  IRQコントロールレジスタアドレステーブル
    590575 */
    591576volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/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 */
    5439
    5540/*
    56  *              プロセッサ依存モジュール
     41 *              プロセッサ依存モジュール
    5742 *
    58  *  このインクルードファイルは,target_config.h(または,そこからインク
    59  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    60  *  直接インクルードしてはならない.
     43 *  このインクルードファイルは,target_config.h(または,そこからインク
     44 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     45 *  直接インクルードしてはならない.
    6146 */
    6247
     
    6752
    6853/*
    69  *  割込み要因数
     54 *  割込み要因数
    7055 */
    7156#define INHNO_MAX       UINT_C( 256 )
     
    7358
    7459/*
    75  *  割込み制御用型定義
     60 *  割込み制御用型定義
    7661 */
    7762typedef struct ier_info {
     
    8267
    8368/*
    84  *  割込み制御用定義
     69 *  割込み制御用定義
    8570 */
    8671#define INVALID_OFFSET                          ( 0xFFU )
     
    9378
    9479/*
    95  *  割込み制御用テーブル
     80 *  割込み制御用テーブル
    9681 */
    9782
    98 /* 割込み要因プライオリティレジスタアドレス */
     83/* 割込み要因プライオリティレジスタアドレス */
    9984extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
    100 /* 割込み要求許可レジスタアドレス */
     85/* 割込み要求許可レジスタアドレス */
    10186extern const IER_INFO ier_reg_addr[];
    102 /* IRQコントロールレジスタアドレス */
     87/* IRQコントロールレジスタアドレス */
    10388extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
    10489
    10590
    10691/*
    107  *  プロセッサ依存モジュール
     92 *  プロセッサ依存モジュール
    10893 */
    10994#include "prc_config.h"
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/start.src

    • Property svn:eol-style set to native
    • Property svn:keywords set to Id
    • Property svn:mime-type set to text/x-gas; charset=UTF-8
    r313 r315  
    1111;*  Copyright (C) 2013      by Mitsuhiro Matsuura
    1212;*
    13 ;*  上記著作権è€
    14 ã¯ï¼ŒFree Software Foundation によってå
    15 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹
    16 ;*  GNU General Public License の Version 2 に記述されている条件か,以
    17 ;*  下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
    18 ;*  アを改変したものを含む.以下同じ)を使用・複製・改変・再é
    19 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    20 ;*  利用と呼ぶ)することを無償で許諾する.
    21 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    22 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    23 ;*      スコード中に含まれていること.
    24 ;*  (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
    25 ;*      ジェクトファイルやライブラリなど)の形で利用する場合には,利用
    26 ;*      に伴うドキュメント(利用è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,
    28 ;*      この利用条件および下記の無保証規定を掲載すること.
    29 ;*  (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
    30 ;*      み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
    31 ;*    (a) 利用に伴うドキュメント(利用è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作
    33 ;*        権表示,この利用条件および下記の無保証規定を掲載すること.
    34 ;*    (b) 利用の形æ
    35 ‹ã‚’,別に定める方法によって,上記著作権è€
    36 ã«å ±å‘Šã™ã‚‹
    37 ;*        こと.
    38 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 ;*      害からも,上記著作権è€
    40 ã‚’å
    41 è²¬ã™ã‚‹ã“と.
     13;*  上記著作権者は,Free Software Foundation によって公表されている
     14;*  GNU General Public License の Version 2 に記述されている条件か,以
     15;*  下の(1)~(4)の条件を満たす場合に限り,本ソフトウェア(本ソフトウェ
     16;*  アを改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     17;*  利用と呼ぶ)することを無償で許諾する.
     18;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     19;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     20;*      スコード中に含まれていること.
     21;*  (2) 本ソフトウェアを再利用可能なバイナリコード(リロケータブルオブ
     22;*      ジェクトファイルやライブラリなど)の形で利用する場合には,利用
     23;*      に伴うドキュメント(利用者マニュアルなど)に,上記の著作権表示,
     24;*      この利用条件および下記の無保証規定を掲載すること.
     25;*  (3) 本ソフトウェアを再利用不可能なバイナリコードの形または機器に組
     26;*      み込んだ形で利用する場合には,次のいずれかの条件を満たすこと.
     27;*    (a) 利用に伴うドキュメント(利用者マニュアルなど)に,上記の著作
     28;*        権表示,この利用条件および下記の無保証規定を掲載すること.
     29;*    (b) 利用の形態を,別に定める方法によって,上記著作権者に報告する
     30;*        こと.
     31;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32;*      害からも,上記著作権者を免責すること.
    4233;*
    43 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ã¯ï¼Œ
    45 ;*  本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
    46 ;*  ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
    47 ;*  かなる損害に関しても,その責任を負わない.
     34;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者は,
     35;*  本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ
     36;*  ない.また,本ソフトウェアの利用により直接的または間接的に生じたい
     37;*  かなる損害に関しても,その責任を負わない.
    4838;*
    4939
    5040
    5141        ;
    52         ;  メモリマップの定義(ターゲット依存部)
     42        ;  メモリマップの定義(ターゲット依存部)
    5343        ;
    5444        .include        sectrx.inc
    5545
    56 DFLRE                           .equ    007FC440H               ; DFLREレジスタ
     46DFLRE                           .equ    007FC440H               ; DFLREレジスタ
    5747
    5848DB_BLOCK_ENABLE         .equ    02D0FH
    5949
    6050;
    61 åˆæœŸåŒ–ルーチン
     51初期化ルーチン
    6252;
    6353        .section        P_START, CODE
     
    7161_start:
    7262        ;
    73         ;  電源投å
    74 ¥å¾Œã¯ãƒ¬ãƒ™ãƒ«0, å
    75 ¨å‰²è¾¼ã¿ç¦æ­¢çŠ¶æ
    76 ‹ã§ã‚ã‚‹.
    77         ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
    78         ;  の初期化は行わない.
     63        ;  電源投入後はレベル0, 全割込み禁止状態である.
     64        ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
     65        ;  の初期化は行わない.
    7966        ;
    8067
    8168        ;
    82         ;  å†
    83 è”µROM(データフラッシュ)領域の設定
     69        ;  内蔵ROM(データフラッシュ)領域の設定
    8470        ;
    85         ;  リセット後, データフラッシュ領域は読み出し禁止となっている
    86         ;  ため, 読み出し許可に設定する.
     71        ;  リセット後, データフラッシュ領域は読み出し禁止となっている
     72        ;  ため, 読み出し許可に設定する.
    8773        ;
    8874        mov.l   #DFLRE, r5
     
    9076       
    9177        ;
    92         ;  スタックポインタの設定
     78        ;  スタックポインタの設定
    9379        ;
    94         ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
    95         ;  ユーザ領域を設定する.
    96         ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
     80        ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
     81        ;  ユーザ領域を設定する.
     82        ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
    9783        ;
    9884        mov.l   #__kernel_istkpt, r5
    99         mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
     85        mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
    10086
    10187        ;
    102         ;  可変ベクタテーブルの設定
     88        ;  可変ベクタテーブルの設定
    10389        ;
    104         mvtc    #VVECTOR_TOP, intb                      ; ベクタテーブルの設定
     90        mvtc    #VVECTOR_TOP, intb                      ; ベクタテーブルの設定
    10591
    10692        ;
    107         ;  ハードウェア固有の初期化ルーチンの呼出し
     93        ;  ハードウェア固有の初期化ルーチンの呼出し
    10894        ;
    10995        mov.l   #_hardware_init_hook, r5
     
    11399
    114100        ;
    115         ;  初期値あり変数領域の初期化
     101        ;  初期値あり変数領域の初期化
    116102        ;
    117103init_D:
    118104        mov.l   #(sizeof R), r3
    119105        cmp             #0, r3
    120         beq.b   init_D_2                                        ; サイズ0なら初期化å¿
    121 è¦ãªã—
     106        beq.b   init_D_2                                        ; サイズ0なら初期化必要なし
    122107        mov.l   #(topof R), r1
    123108        mov.l   #(topof D), r2
     
    127112        mov.l   #(sizeof R_2), r3
    128113        cmp             #0, r3
    129         beq.b   init_D_1                                        ; サイズ0なら初期化å¿
    130 è¦ãªã—
     114        beq.b   init_D_1                                        ; サイズ0なら初期化必要なし
    131115        mov.l   #(topof R_2), r1
    132116        mov.l   #(topof D_2), r2
     
    136120        mov.l   #(sizeof R_1), r3
    137121        cmp             #0, r3
    138         beq.b   clear_B                                         ; サイズ0なら初期化å¿
    139 è¦ãªã—
     122        beq.b   clear_B                                         ; サイズ0なら初期化必要なし
    140123        mov.l   #(topof R_1), r1
    141124        mov.l   #(topof D_1), r2
     
    143126
    144127        ;
    145         ;  初期値なし変数領域の初期化
     128        ;  初期値なし変数領域の初期化
    146129        ;
    147130clear_B:
     
    164147
    165148        ;
    166         ;  software_init_hook を呼出し(0 でない場合)
     149        ;  software_init_hook を呼出し(0 でない場合)
    167150        ;
    168         ;  ソフトウェア環境(特にライブラリ)に依存してå¿
    169 è¦ãªåˆæœŸåŒ–処理
    170         ;  がある場合は,software_init_hook という関数を用意すればよい.
     151        ;  ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
     152        ;  がある場合は,software_init_hook という関数を用意すればよい.
    171153        ;
    172154        mov.l   #_software_init_hook, r5
     
    176158
    177159        ;
    178         ;  カーネルスタート
     160        ;  カーネルスタート
    179161        ;
    180162kernel_link:
Note: See TracChangeset for help on using the changeset viewer.