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

SVNプロパティを設定

Location:
rubycfg_asp/trunk/asp_dcre/arch
Files:
59 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/arch/ccrx/common.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/ccrx/configure/README.txt

    • Property svn:mime-type changed from text/plain to text/plane; charset=UTF-8
    r313 r315  
    11                TOPPERS/ASP
    2         <CubeSuite+用プロジェクト生成スクリプトマニュアル>
     2        <CubeSuite+用プロジェクト生成スクリプトマニュアル>
    33       
    4 â—‹æ¦‚要
     4○概要
    55
    6 CubeSuite+用プロジェクト生成スクリプトは,RX630用のASPのプロジェクト
    7 ã‚’作成するスクリプトである.
     6CubeSuite+用プロジェクト生成スクリプトは,RX630用のASPのプロジェクト
     7を作成するスクリプトである.
    88               
    9 â—‹ä½¿ç”¨æ–¹æ³•
     9○使用方法
    1010
    11 ä»¥ä¸‹ã®æ‰‹é †ã§ã‚¿ãƒ¼ã‚²ãƒƒãƒˆç”¨ã®ãƒ—ロジェクトファイルを生成する.
     11以下の手順でターゲット用のプロジェクトファイルを生成する.
    1212
    13 1.本フォルダ(configure)を適当な場所にコピーする.以下のファイルが含ま
    14   れている.
     131.本フォルダ(configure)を適当な場所にコピーする.以下のファイルが含ま
     14  れている.
    1515  ./configure.mtpj
    1616  ./configure.py
     
    1818  ./README.txt
    1919
    20 2.def.pyの編集
    21   以下のdef.pyの設定値を参考に設定する.
     202.def.pyの編集
     21  以下のdef.pyの設定値を参考に設定する.
    2222 
    23 3.configure.mtpjをダブルクリック
    24   configure.py が実行され,asp.mtpjが作成され開かれる.
     233.configure.mtpjをダブルクリック
     24  configure.py が実行され,asp.mtpjが作成され開かれる.
    2525 
    26 4.アクティブプロジェクトを変更
    27   アクティブプロジェクトをaspに変更する. 
     264.アクティブプロジェクトを変更
     27  アクティブプロジェクトをaspに変更する. 
    2828
    2929 
    30 ãƒ—ロジェクトファイル生成後は,asp.mtpj を使用する.なお,プロジェ
    31 ã‚¯ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆå¾Œã¯configure.mtpjとconfigure.pyは削除可能である.
     30プロジェクトファイル生成後は,asp.mtpj を使用する.なお,プロジェ
     31クトファイル生成後はconfigure.mtpjとconfigure.pyは削除可能である.
    3232
    3333
    34 â—‹def.pyの設定値
     34○def.pyの設定値
    3535
    36 ãƒ»SRCDIR
    37  ãƒ»ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ãƒˆãƒƒãƒ—との相対位置
     36SRCDIR
     37 ・ソースコードのトップとの相対位置
    3838
    39 ãƒ»CFG_FILE
    40  ãƒ»cfgファイルの指定.
     39CFG_FILE
     40 ・cfgファイルの指定.
    4141 
    42 ãƒ»TARGET
    43  ãƒ»ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã®æŒ‡å®šï¼Ž./target 以下のいずれかのフォルダ名.
     42TARGET
     43 ・ターゲットの指定../target 以下のいずれかのフォルダ名.
    4444 
    45 ãƒ»TARGET_MCU
    46  ãƒ»ã‚¿ãƒ¼ã‚²ãƒƒãƒˆMCU名の指定.
     45TARGET_MCU
     46 ・ターゲットMCU名の指定.
    4747 
    48 ãƒ»asp_app_files
    49  ãƒ»ã‚¢ãƒ—リケーションファイルの指定.
     48asp_app_files
     49 ・アプリケーションファイルの指定.
    5050 
    51 ãƒ»USER_INCLUDE
    52  ãƒ»ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‘スの指定
     51USER_INCLUDE
     52 ・インクルードパスの指定
    5353 
    54 ãƒ»COPY_SAMPLE1 
    55  ãƒ»sample1のファイルを./sampleからコピーするか指定.
     54COPY_SAMPLE1 
     55 ・sample1のファイルを./sampleからコピーするか指定.
    5656
    57 ãƒ»USE_SERIALDEBUG
    58  ãƒ»CubeSuite+/RXシリアルデバッガを使用するか指定.
     57USE_SERIALDEBUG
     58 ・CubeSuite+/RXシリアルデバッガを使用するか指定.
    5959
    60 â—‹ãƒ—ロジェクト構成
     60○プロジェクト構成
    6161
    62 asp : トッププロジェクト
    63  cfg : サブプロジェクト コンフィギュレータ実行
    64  kernel : サブプロジェクト カーネルビルド用
     62asp : トッププロジェクト
     63 cfg : サブプロジェクト コンフィギュレータ実行
     64 kernel : サブプロジェクト カーネルビルド用
    6565
    66 ä»¥ä¸Šï¼Ž
     66以上.
  • rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.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/ccrx/configure/def.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/ccrx/configure_body.py

    • Property svn:eol-style set to native
    • Property svn:mime-type set to text/x-python; charset=UTF-8
    r313 r315  
    7373
    7474str = src_abs_path + '\\' + statup_file
    75 project.File.Add(str, u"スタートアップ")
     75project.File.Add(str, u"スタートアップ")
    7676
    7777#
  • rubycfg_asp/trunk/asp_dcre/arch/ccrx/kernel_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
     
    6449
    6550/*
    66  *      å
    67 ±é€šã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã®Inline関数のシンボル登録
     51 *      共通インクルードのInline関数のシンボル登録
    6852 */
    6953
     
    10791
    10892/*
    109  *      ターゲット非依存部のInline関数のシンボル登録
     93 *      ターゲット非依存部のInline関数のシンボル登録
    11094 */
    11195
  • rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_asp.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/ccrx/post_cfg.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/ccrx/pre_cfg.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/ccrx/tool_stddef.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    1010 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    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  *  t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用)
     42 *  t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用)
    5743 *
    58  *  このインクルードファイルは,t_stddef.h のå
    59 ˆé ­ã§ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã•ã‚Œã‚‹ï¼Ž
    60  *  他のファイルからは直接インクルードすることはない.他のインクルード
    61  *  ファイルにå
    62 ˆç«‹ã£ã¦å‡¦ç†ã•ã‚Œã‚‹ãŸã‚ï¼Œä»–のインクルードファイルに依存し
    63  *  てはならない.
     44 *  このインクルードファイルは,t_stddef.h の先頭でインクルードされる.
     45 *  他のファイルからは直接インクルードすることはない.他のインクルード
     46 *  ファイルに先立って処理されるため,他のインクルードファイルに依存し
     47 *  てはならない.
    6448 */
    6549
     
    6852
    6953/*
    70  *  コンパイラの拡張機能のためのマクロ定義
     54 *  コンパイラの拡張機能のためのマクロ定義
    7155 */
    7256/*
    73  *  inline 識別子は外部定義を生成しない.
     57 *  inline 識別子は外部定義を生成しない.
    7458 */
    7559#define Inline static
     
    7761
    7862/*
    79  *  インラインアセンブラは本コンパイラでは
    80  *  #pragma inline_asmのみのサポートとなるため,
    81  *  asm/Asm定義は行わない.
     63 *  インラインアセンブラは本コンパイラでは
     64 *  #pragma inline_asmのみのサポートとなるため,
     65 *  asm/Asm定義は行わない.
    8266 */
    8367
    8468/*
    85  *  NoReturn / alignofは本コンパイラではサポートされない.
    86  *  offsetofはstddef.hの定義を利用する.
     69 *  NoReturn / alignofは本コンパイラではサポートされない.
     70 *  offsetofはstddef.hの定義を利用する.
    8771 */
    8872#define NoReturn
     
    9074
    9175/*
    92  *  開発環境の標準インクルードファイルの利用
     76 *  開発環境の標準インクルードファイルの利用
    9377 *
    94  *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
    95  *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
     78 *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
     79 *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
    9680 *
    97  *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
    98  *  いるとは限らないので注意がå¿
    99 è¦ã§ã‚る(ほとんどの開発環境で用意され
    100  *  ている).
     81 *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
     82 *  いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
     83 *  ている).
    10184 */
    10285#ifndef TOPPERS_MACRO_ONLY
     
    10790
    10891/*
    109  *  コンパイラ依存のデータ型の定義
     92 *  コンパイラ依存のデータ型の定義
    11093 *
    111  *  stdint.hをインクルードする
     94 *  stdint.hをインクルードする
    11295 */
    11396#ifndef TOPPERS_MACRO_ONLY
     
    117100
    118101/*
    119  *  浮動小数点型に関する定義
     102 *  浮動小数点型に関する定義
    120103 *
    121  *  下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること.
     104 *  下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること.
    122105 */
    123106#ifndef TOPPERS_MACRO_ONLY
    124 typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
    125 typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
     107typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
     108typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
    126109#endif /* TOPPERS_MACRO_ONLY */
    127110
     
    133116
    134117/*
    135  *  空ラベルの定義
     118 *  空ラベルの定義
    136119 *
    137  *  本コンパイラでは大きさゼロのé
    138 åˆ—はコンパイルエラーになるため,
    139  *  サイズ1にて定義する.
     120 *  本コンパイラでは大きさゼロの配列はコンパイルエラーになるため,
     121 *  サイズ1にて定義する.
    140122 */
    141123#define TOPPERS_EMPTY_LABEL( type, symbol )             type symbol[ 1 ]
  • rubycfg_asp/trunk/asp_dcre/arch/ccrx/updatepath.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/gcc/tool_stddef.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  @(#) $Id$
     
    5641
    5742/*
    58  *              t_stddef.hの開発環境依存部(GCC用)
     43 *              t_stddef.hの開発環境依存部(GCC用)
    5944 */
    6045
     
    6348
    6449/*
    65  *  コンパイラの拡張機能のためのマクロ定義
    66  */
    67 #ifndef __cplusplus                                     /* C++にはinline がある */
     50 *  コンパイラの拡張機能のためのマクロ定義
     51 */
     52#ifndef __cplusplus                                     /* C++にはinline がある */
    6853#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
    69                                                                         /* C99にはinline がある */
    70 #define inline  __inline__                      /* インライン関数 */
     54                                                                        /* C99にはinline がある */
     55#define inline  __inline__                      /* インライン関数 */
    7156#endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
    7257#endif /* __cplusplus */
    7358
    74 #define Inline  static inline           /* インライン関数 */
    75 
    76 #ifndef __cplusplus                                     /* C++にはasmがある */
    77 #define asm             __asm__                         /* インラインアセンブラ */
     59#define Inline  static inline           /* インライン関数 */
     60
     61#ifndef __cplusplus                                     /* C++にはasmがある */
     62#define asm             __asm__                         /* インラインアセンブラ */
    7863#endif /* __cplusplus */
    7964
    80 #define Asm             __asm__ volatile        /* インラインアセンブラ(最適化抑止)*/
     65#define Asm             __asm__ volatile        /* インラインアセンブラ(最適化抑止)*/
    8166
    8267#define NoReturn        __attribute__((__noreturn__))
    83                                                                         /* リターンしない関数 */
    84 
    85 /*
    86  *  開発環境の標準インクルードファイルの利用
    87  *
    88  *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
    89  *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
    90  *
    91  *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
    92  *  いるとは限らないので注意がå¿
    93 è¦ã§ã‚る(ほとんどの開発環境で用意され
    94  *  ている).
     68                                                                        /* リターンしない関数 */
     69
     70/*
     71 *  開発環境の標準インクルードファイルの利用
     72 *
     73 *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
     74 *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
     75 *
     76 *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
     77 *  いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
     78 *  ている).
    9579 */
    9680#ifndef TOPPERS_MACRO_ONLY
     
    10084
    10185/*
    102  *  stdint.hの代用となる定義
    103  *
    104  *  開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
    105  *  ンに当てはまる場合に,stdint.hの代用となる定義を与える.
    106  *
    107  *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
    108  *                        8/16/32/64ビットで,ポインタのビット長がlong
    109  *                        のビット長と一致する場合
     86 *  stdint.hの代用となる定義
     87 *
     88 *  開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
     89 *  ンに当てはまる場合に,stdint.hの代用となる定義を与える.
     90 *
     91 *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
     92 *                        8/16/32/64ビットで,ポインタのビット長がlong
     93 *                        のビット長と一致する場合
    11094 */
    11195#ifdef TOPPERS_STDINT_TYPE1
    11296
    11397/*
    114  *  コンパイラ依存のデータ型の定義
    115  */
    116 #ifndef TOPPERS_MACRO_ONLY
    117 
    118 typedef signed char                     int8_t;         /* 符号付き8ビット整数 */
    119 typedef unsigned char           uint8_t;        /* 符号無し8ビット整数 */
    120 
    121 typedef signed short            int16_t;        /* 符号付き16ビット整数 */
    122 typedef unsigned short          uint16_t;       /* 符号無し16ビット整数 */
    123 
    124 typedef signed int                      int32_t;        /* 符号付き32ビット整数 */
    125 typedef unsigned int            uint32_t;       /* 符号無し32ビット整数 */
    126 
    127 typedef signed long long        int64_t;        /* 符号付き64ビット整数 */
    128 typedef unsigned long long      uint64_t;       /* 符号無し64ビット整数 */
    129 
    130 typedef int8_t                          int_least8_t;   /* 8ビット以上の符号付き整数 */
    131 typedef uint8_t                         uint_least8_t;  /* 8ビット以上の符号無し整数 */
    132 
    133 typedef long                            intptr_t;       /* ポインタを格納できる符号付き整数 */
    134 typedef unsigned long           uintptr_t;      /* ポインタを格納できる符号無し整数 */
    135 
    136 #endif /* TOPPERS_MACRO_ONLY */
    137 
    138 /*
    139  *  コンパイラ依存のデータ型の整数定数を作るマクロ
     98 *  コンパイラ依存のデータ型の定義
     99 */
     100#ifndef TOPPERS_MACRO_ONLY
     101
     102typedef signed char                     int8_t;         /* 符号付き8ビット整数 */
     103typedef unsigned char           uint8_t;        /* 符号無し8ビット整数 */
     104
     105typedef signed short            int16_t;        /* 符号付き16ビット整数 */
     106typedef unsigned short          uint16_t;       /* 符号無し16ビット整数 */
     107
     108typedef signed int                      int32_t;        /* 符号付き32ビット整数 */
     109typedef unsigned int            uint32_t;       /* 符号無し32ビット整数 */
     110
     111typedef signed long long        int64_t;        /* 符号付き64ビット整数 */
     112typedef unsigned long long      uint64_t;       /* 符号無し64ビット整数 */
     113
     114typedef int8_t                          int_least8_t;   /* 8ビット以上の符号付き整数 */
     115typedef uint8_t                         uint_least8_t;  /* 8ビット以上の符号無し整数 */
     116
     117typedef long                            intptr_t;       /* ポインタを格納できる符号付き整数 */
     118typedef unsigned long           uintptr_t;      /* ポインタを格納できる符号無し整数 */
     119
     120#endif /* TOPPERS_MACRO_ONLY */
     121
     122/*
     123 *  コンパイラ依存のデータ型の整数定数を作るマクロ
    140124 */
    141125#ifndef INT8_C
     
    172156
    173157/*
    174  *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
     158 *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
    175159 */
    176160#define INT8_MAX                        SCHAR_MAX
     
    201185
    202186/*
    203  *  浮動小数点型に関する定義
    204  *
    205  *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
    206  *                                                      doubleが倍精度浮動小数点数の場合
     187 *  浮動小数点型に関する定義
     188 *
     189 *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
     190 *                                                      doubleが倍精度浮動小数点数の場合
    207191 */
    208192#ifdef TOPPERS_STDFLOAT_TYPE1
    209193#ifndef TOPPERS_MACRO_ONLY
    210194
    211 typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
    212 typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
     195typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
     196typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
    213197
    214198#endif /* TOPPERS_MACRO_ONLY */
  • rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              トレースログ機能
     43 *              トレースログ機能
    5944 */
    6045
     
    6550
    6651/*
    67  *  トレースログバッファとそれにアクセスするためのポインタ
    68  */
    69 SYSLOG  trace_buffer[TCNT_TRACE_BUFFER];        /* トレースログバッファ */
    70 uint_t  trace_count;                            /* トレースログバッファ中のログの数 */
    71 uint_t  trace_head;                                     /* å
    72 ˆé ­ã®ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ­ã‚°ã®æ ¼ç´ä½ç½® */
    73 uint_t  trace_tail;                                     /* 次のトレースログの格納位置 */
    74 MODE    trace_mode;                                     /* トレースモード */
    75 
    76 /*
    77  *  トレースログ機能の初期化
     52 *  トレースログバッファとそれにアクセスするためのポインタ
     53 */
     54SYSLOG  trace_buffer[TCNT_TRACE_BUFFER];        /* トレースログバッファ */
     55uint_t  trace_count;                            /* トレースログバッファ中のログの数 */
     56uint_t  trace_head;                                     /* 先頭のトレースログの格納位置 */
     57uint_t  trace_tail;                                     /* 次のトレースログの格納位置 */
     58MODE    trace_mode;                                     /* トレースモード */
     59
     60/*
     61 *  トレースログ機能の初期化
    7862 */
    7963void
     
    8973
    9074/*
    91  *  トレースログの開始
     75 *  トレースログの開始
    9276 */
    9377ER
     
    10488
    10589/*
    106  *  トレースログの書込み
     90 *  トレースログの書込み
    10791 */
    10892ER
     
    11599
    116100                /*
    117                  *  トレース時刻の設定
     101                 *  トレース時刻の設定
    118102                 *
    119                  *  LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換
    120                  *  えてしまうのは気持ちが悪いが,wri_logの方で上書きするため問
    121                  *  題はない.
     103                 *  LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換
     104                 *  えてしまうのは気持ちが悪いが,wri_logの方で上書きするため問
     105                 *  題はない.
    122106                 */
    123107                p_trace->logtim = TRACE_GET_TIM();
    124108
    125109                /*
    126                  *  トレースバッファに記録
     110                 *  トレースバッファに記録
    127111                 */
    128112                trace_buffer[trace_tail] = *p_trace;
     
    148132
    149133/*
    150  *  トレースログの読出し
     134 *  トレースログの読出し
    151135 */
    152136ER
     
    159143
    160144        /*
    161          *  トレースログバッファからの取出し
     145         *  トレースログバッファからの取出し
    162146         */
    163147        if (trace_count > 0U) {
     
    179163
    180164/*
    181  *  トレースログを出力するためのライブラリ関数
     165 *  トレースログを出力するためのライブラリ関数
    182166 */
    183167
     
    225209
    226210/*
    227  *  アセンブリ言語で記述されるコードからトレースログを出力するための関
    228  *  数
     211 *  アセンブリ言語で記述されるコードからトレースログを出力するための関
     212 * 
    229213 */
    230214
  • rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              トレースログに関する設定
     43 *              トレースログに関する設定
    5944 *
    60  *  このインクルードファイルは,target_config.hおよびtarget_syssvc.hの
    61  *  みからインクルードされる.また,トレースログ機能の初期化や記録の開
    62  *  始/停止,トレースログのダンプを行うプログラムからインクルードする
    63  *  ことを想定している.
     45 *  このインクルードファイルは,target_config.hおよびtarget_syssvc.hの
     46 *  みからインクルードされる.また,トレースログ機能の初期化や記録の開
     47 *  始/停止,トレースログのダンプを行うプログラムからインクルードする
     48 *  ことを想定している.
    6449 */
    6550
     
    6853
    6954/*
    70  *  トレースログバッファのサイズ
     55 *  トレースログバッファのサイズ
    7156 */
    7257#ifndef TCNT_TRACE_BUFFER
     
    7560
    7661/*
    77  *  トレース時刻の取得方法
     62 *  トレース時刻の取得方法
    7863 */
    7964#ifndef TRACE_GET_TIM
     
    8469
    8570/*
    86  *  トレースログのデータ構造
     71 *  トレースログのデータ構造
    8772 *
    88  *  システムログ機能のログæƒ
    89 å ±ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã¨åŒã˜ã‚‚のを用いる.
     73 *  システムログ機能のログ情報のデータ構造と同じものを用いる.
    9074 */
    9175#include <t_syslog.h>
     
    9377
    9478/*
    95  *  トレースログバッファとそれにアクセスするためのポインタ
     79 *  トレースログバッファとそれにアクセスするためのポインタ
    9680 */
    97 extern TRACE    trace_buffer[];         /* トレースログバッファ */
    98 extern uint_t   trace_count;            /* トレースログバッファ中のログの数 */
    99 extern uint_t   trace_head;                     /* å
    100 ˆé ­ã®ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ­ã‚°ã®æ ¼ç´ä½ç½® */
    101 extern uint_t   trace_tail;                     /* 次のトレースログの格納位置 */
    102 extern uint_t   trace_lost;                     /* 失われたトレースの数 */
     81extern TRACE    trace_buffer[];         /* トレースログバッファ */
     82extern uint_t   trace_count;            /* トレースログバッファ中のログの数 */
     83extern uint_t   trace_head;                     /* 先頭のトレースログの格納位置 */
     84extern uint_t   trace_tail;                     /* 次のトレースログの格納位置 */
     85extern uint_t   trace_lost;                     /* 失われたトレースの数 */
    10386
    10487#endif /* TOPPERS_MACRO_ONLY */
    10588
    10689/*
    107  *  トレースモードの定義
     90 *  トレースモードの定義
    10891 */
    109 #define TRACE_STOP                      UINT_C(0x00)    /* トレース停止 */
    110 #define TRACE_RINGBUF           UINT_C(0x01)    /* リングバッファモード */
    111 #define TRACE_AUTOSTOP          UINT_C(0x02)    /* 自動停止モード */
    112 #define TRACE_CLEAR                     UINT_C(0x04)    /* トレースログのクリア */
     92#define TRACE_STOP                      UINT_C(0x00)    /* トレース停止 */
     93#define TRACE_RINGBUF           UINT_C(0x01)    /* リングバッファモード */
     94#define TRACE_AUTOSTOP          UINT_C(0x02)    /* 自動停止モード */
     95#define TRACE_CLEAR                     UINT_C(0x04)    /* トレースログのクリア */
    11396
    11497#ifndef TOPPERS_MACRO_ONLY
    11598
    11699/*
    117  *  トレースログ機能の初期化
     100 *  トレースログ機能の初期化
    118101 *
    119  *  トレースログ機能を初期化する.初期化ルーチンとして登録することを想
    120  *  定している.引数により次の動作を行う.
     102 *  トレースログ機能を初期化する.初期化ルーチンとして登録することを想
     103 *  定している.引数により次の動作を行う.
    121104 *
    122  *  TRACE_STOP:初期化のみでトレースは開始しない.
    123  *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
    124  *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
     105 *  TRACE_STOP:初期化のみでトレースは開始しない.
     106 *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
     107 *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
    125108 */
    126109extern void     trace_initialize(intptr_t exinf);
    127110
    128111/*
    129  *  トレースログの開始
     112 *  トレースログの開始
    130113 *
    131  *  トレースログの記録を開始/停止する.引数により次の動作を行う.
     114 *  トレースログの記録を開始/停止する.引数により次の動作を行う.
    132115 *
    133  *  TRACE_STOP:トレースを停止.
    134  *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
    135  *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
    136  *  TRACE_CLEAR:トレースログをクリア.
     116 *  TRACE_STOP:トレースを停止.
     117 *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
     118 *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
     119 *  TRACE_CLEAR:トレースログをクリア.
    137120 */
    138121extern ER       trace_sta_log(MODE mode);
    139122
    140123/*
    141  *  トレースログの書込み
     124 *  トレースログの書込み
    142125 */
    143126extern ER       trace_wri_log(TRACE *p_trace);
    144127
    145128/*
    146  *  トレースログの読出し
     129 *  トレースログの読出し
    147130 */
    148131extern ER       trace_rea_log(TRACE *p_trace);
    149132
    150133/*
    151  *  トレースログのダンプ(trace_dump.c)
     134 *  トレースログのダンプ(trace_dump.c)
    152135 *
    153  *  トレースログをダンプする.終了処理ルーチンとして登録することも想定
    154  *  している.引数として,ダンプå
    155 ˆã¨ãªã‚‹æ–‡å­—出力関数へのポインタを渡す.
    156  *  ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
    157  *  す.
     136 *  トレースログをダンプする.終了処理ルーチンとして登録することも想定
     137 *  している.引数として,ダンプ先となる文字出力関数へのポインタを渡す.
     138 *  ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
     139 *  す.
    158140 */
    159141extern void     trace_dump(intptr_t exinf);
    160142
    161143/*
    162  *  トレースログを出力するためのライブラリ関数
     144 *  トレースログを出力するためのライブラリ関数
    163145 */
    164146extern void     trace_write_0(uint_t type);
     
    169151
    170152/*
    171  *  トレースログを出力するためのマクロ
     153 *  トレースログを出力するためのマクロ
    172154 */
    173155
     
    188170
    189171/*
    190  *  トレースログ方法の設定
     172 *  トレースログ方法の設定
    191173 */
    192174#define LOG_TSKSTAT(p_tcb)              trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
  • rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_dump.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              トレースログのダンプ
     41 *              トレースログのダンプ
    5742 */
    5843
     
    6247
    6348/*
    64  *  カーネルæƒ
    65 å ±ã®å–出し
     49 *  カーネル情報の取出し
    6650 */
    6751static intptr_t
     
    11296
    11397/*
    114  *  トレースログの表示
     98 *  トレースログの表示
    11599 */
    116100static void
     
    156140
    157141/*
    158  *  トレースログのダンプ
     142 *  トレースログのダンプ
    159143 */
    160144void
  • 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:
  • rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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