Changeset 315 for rubycfg_asp/trunk/asp_dcre/arch
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- 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
-
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/README.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 1 TOPPERS/ASP 2 ï¼CubeSuite+ç¨ããã¸ã§ã¯ãçæã¹ã¯ãªããããã¥ã¢ã«ï¼2 <CubeSuite+用プロジェクト生成スクリプトマニュアル> 3 3 4 âæ¦è¦ 4 ○概要 5 5 6 CubeSuite+ ç¨ããã¸ã§ã¯ãçæã¹ã¯ãªããã¯ï¼RX630ç¨ã®ASPã®ããã¸ã§ã¯ã7 ãä½æããã¹ã¯ãªããã§ããï¼ 6 CubeSuite+用プロジェクト生成スクリプトは,RX630用のASPのプロジェクト 7 を作成するスクリプトである. 8 8 9 â使ç¨æ¹æ³ 9 ○使用方法 10 10 11 以ä¸ã®æé ã§ã¿ã¼ã²ããç¨ã®ããã¸ã§ã¯ããã¡ã¤ã«ãçæããï¼ 11 以下の手順でターゲット用のプロジェクトファイルを生成する. 12 12 13 1. æ¬ãã©ã«ã(configure)ãé©å½ãªå ´æã«ã³ãã¼ããï¼ä»¥ä¸ã®ãã¡ã¤ã«ãå«ã¾14 ãã¦ããï¼13 1.本フォルダ(configure)を適当な場所にコピーする.以下のファイルが含ま 14 れている. 15 15 ./configure.mtpj 16 16 ./configure.py … … 18 18 ./README.txt 19 19 20 2.def.py ã®ç·¨é21 以ä¸ã®def.pyã®è¨å®å¤ãåèã«è¨å®ããï¼20 2.def.pyの編集 21 以下のdef.pyの設定値を参考に設定する. 22 22 23 3.configure.mtpj ãããã«ã¯ãªãã¯24 configure.py ãå®è¡ããï¼asp.mtpjãä½æããéãããï¼23 3.configure.mtpjをダブルクリック 24 configure.py が実行され,asp.mtpjが作成され開かれる. 25 25 26 4. ã¢ã¯ãã£ãããã¸ã§ã¯ããå¤æ´27 ã¢ã¯ãã£ãããã¸ã§ã¯ããaspã«å¤æ´ããï¼26 4.アクティブプロジェクトを変更 27 アクティブプロジェクトをaspに変更する. 28 28 29 29 30 ããã¸ã§ã¯ããã¡ã¤ã«çæå¾ã¯ï¼asp.mtpj ã使ç¨ããï¼ãªãï¼ããã¸ã§ 31 ã¯ããã¡ã¤ã«çæå¾ã¯configure.mtpjã¨configure.pyã¯åé¤å¯è½ã§ããï¼ 30 プロジェクトファイル生成後は,asp.mtpj を使用する.なお,プロジェ 31 クトファイル生成後はconfigure.mtpjとconfigure.pyは削除可能である. 32 32 33 33 34 âdef.pyã®è¨å®å¤ 34 ○def.pyの設定値 35 35 36 ã»SRCDIR37 ã»ã½ã¼ã¹ã³ã¼ãã®ãããã¨ã®ç¸å¯¾ä½ç½®36 ・SRCDIR 37 ・ソースコードのトップとの相対位置 38 38 39 ã»CFG_FILE40 ã»cfgãã¡ã¤ã«ã®æå®ï¼39 ・CFG_FILE 40 ・cfgファイルの指定. 41 41 42 ã»TARGET43 ã»ã¿ã¼ã²ããã®æå®ï¼./target 以ä¸ã®ããããã®ãã©ã«ãåï¼42 ・TARGET 43 ・ターゲットの指定../target 以下のいずれかのフォルダ名. 44 44 45 ã»TARGET_MCU46 ã»ã¿ã¼ã²ããMCUåã®æå®ï¼45 ・TARGET_MCU 46 ・ターゲットMCU名の指定. 47 47 48 ã»asp_app_files49 ã»ã¢ããªã±ã¼ã·ã§ã³ãã¡ã¤ã«ã®æå®ï¼48 ・asp_app_files 49 ・アプリケーションファイルの指定. 50 50 51 ã»USER_INCLUDE52 ã»ã¤ã³ã¯ã«ã¼ããã¹ã®æå®51 ・USER_INCLUDE 52 ・インクルードパスの指定 53 53 54 ã»COPY_SAMPLE155 ã»sample1ã®ãã¡ã¤ã«ã./sampleããã³ãã¼ãããæå®ï¼54 ・COPY_SAMPLE1 55 ・sample1のファイルを./sampleからコピーするか指定. 56 56 57 ã»USE_SERIALDEBUG58 ã»CubeSuite+/RXã·ãªã¢ã«ãããã¬ã使ç¨ãããæå®ï¼57 ・USE_SERIALDEBUG 58 ・CubeSuite+/RXシリアルデバッガを使用するか指定. 59 59 60 âããã¸ã§ã¯ãæ§æ 60 ○プロジェクト構成 61 61 62 asp : ãããããã¸ã§ã¯ã63 cfg : ãµãããã¸ã§ã¯ã ã³ã³ãã£ã®ã¥ã¬ã¼ã¿å®è¡64 kernel : ãµãããã¸ã§ã¯ã ã«ã¼ãã«ãã«ãç¨62 asp : トッププロジェクト 63 cfg : サブプロジェクト コンフィギュレータ実行 64 kernel : サブプロジェクト カーネルビルド用 65 65 66 以ä¸ï¼ 66 以上. -
Property svn:mime-type
changed from
-
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
-
Property svn:eol-style
set to
-
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
-
Property svn:eol-style
set to
-
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 73 73 74 74 str = src_abs_path + '\\' + statup_file 75 project.File.Add(str, u" ã¹ã¿ã¼ãã¢ãã")75 project.File.Add(str, u"スタートアップ") 76 76 77 77 # -
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/ccrx/kernel_inline_symbols.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 9 9 * Copyright (C) 2013 by Mitsuhiro Matsuura 10 10 * 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 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * @(#) $Id$ … … 57 42 58 43 /* 59 * ã³ã³ãã¤ã©ä¾åå®ç¾©44 * コンパイラ依存定義 60 45 */ 61 46 … … 64 49 65 50 /* 66 * å 67 ±éã¤ã³ã¯ã«ã¼ãã®Inlineé¢æ°ã®ã·ã³ãã«ç»é² 51 * 共通インクルードのInline関数のシンボル登録 68 52 */ 69 53 … … 107 91 108 92 /* 109 * ã¿ã¼ã²ããéä¾åé¨ã®Inlineé¢æ°ã®ã·ã³ãã«ç»é²93 * ターゲット非依存部のInline関数のシンボル登録 110 94 */ 111 95 -
Property svn:mime-type
changed from
-
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
-
Property svn:eol-style
set to
-
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
-
Property svn:eol-style
set to
-
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
-
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/ccrx/tool_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 10 10 * Copyright (C) 2013 by Mitsuhiro Matsuura 11 11 * 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プロジェクトを免責すること. 46 33 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 50 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 51 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 36 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 37 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 52 38 * 53 39 */ 54 40 55 41 /* 56 * t_stddef.h ã®éçºç°å¢ä¾åé¨ï¼ã«ããµã¹ RXãã¼ã«ãã§ã¤ã³ç¨ï¼42 * t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用) 57 43 * 58 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼t_stddef.h ã®å 59 é ã§ã¤ã³ã¯ã«ã¼ããããï¼ 60 * ä»ã®ãã¡ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ä»ã®ã¤ã³ã¯ã«ã¼ã 61 * ãã¡ã¤ã«ã«å 62 ç«ã£ã¦å¦çãããããï¼ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«ä¾åã 63 * ã¦ã¯ãªããªãï¼ 44 * このインクルードファイルは,t_stddef.h の先頭でインクルードされる. 45 * 他のファイルからは直接インクルードすることはない.他のインクルード 46 * ファイルに先立って処理されるため,他のインクルードファイルに依存し 47 * てはならない. 64 48 */ 65 49 … … 68 52 69 53 /* 70 * ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©54 * コンパイラの拡張機能のためのマクロ定義 71 55 */ 72 56 /* 73 * inline èå¥åã¯å¤é¨å®ç¾©ãçæããªã.57 * inline 識別子は外部定義を生成しない. 74 58 */ 75 59 #define Inline static … … 77 61 78 62 /* 79 * ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã¯æ¬ã³ã³ãã¤ã©ã§ã¯80 * #pragma inline_asm ã®ã¿ã®ãµãã¼ãã¨ãªããã,81 * asm/Asm å®ç¾©ã¯è¡ããªã.63 * インラインアセンブラは本コンパイラでは 64 * #pragma inline_asmのみのサポートとなるため, 65 * asm/Asm定義は行わない. 82 66 */ 83 67 84 68 /* 85 * NoReturn / alignof ã¯æ¬ã³ã³ãã¤ã©ã§ã¯ãµãã¼ããããªã.86 * offsetof ã¯stddef.hã®å®ç¾©ãå©ç¨ãã.69 * NoReturn / alignofは本コンパイラではサポートされない. 70 * offsetofはstddef.hの定義を利用する. 87 71 */ 88 72 #define NoReturn … … 90 74 91 75 /* 92 * éçºç°å¢ã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®å©ç¨76 * 開発環境の標準インクルードファイルの利用 93 77 * 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から取り込む. 96 80 * 97 * C++/EC++ã§ã¯ï¼æ¨æºä»æ§ä¸ã¯ãããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç¨æãã㦠98 * ããã¨ã¯éããªãã®ã§æ³¨æãå¿ 99 è¦ã§ããï¼ã»ã¨ãã©ã®éçºç°å¢ã§ç¨æãã 100 * ã¦ããï¼ï¼ 81 * C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて 82 * いるとは限らないので注意が必要である(ほとんどの開発環境で用意され 83 * ている). 101 84 */ 102 85 #ifndef TOPPERS_MACRO_ONLY … … 107 90 108 91 /* 109 * ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã®å®ç¾©92 * コンパイラ依存のデータ型の定義 110 93 * 111 * stdint.h ãã¤ã³ã¯ã«ã¼ããã94 * stdint.hをインクルードする 112 95 */ 113 96 #ifndef TOPPERS_MACRO_ONLY … … 117 100 118 101 /* 119 * æµ®åå°æ°ç¹åã«é¢ããå®ç¾©102 * 浮動小数点型に関する定義 120 103 * 121 * ä¸è¨ã®å®ç¾©ã¯dbl_size = 8ãªãã·ã§ã³ãæå®ããå ´åã®ã¿æå¹ã¨ãããã¨.104 * 下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること. 122 105 */ 123 106 #ifndef TOPPERS_MACRO_ONLY 124 typedef float float32_t; /* IEEE754 æºæ ã®å精度浮åå°æ°ç¹æ°*/125 typedef double double64_t; /* IEEE754 æºæ ã®å精度浮åå°æ°ç¹æ°*/107 typedef float float32_t; /* IEEE754準拠の単精度浮動小数点数 */ 108 typedef double double64_t; /* IEEE754準拠の倍精度浮動小数点数 */ 126 109 #endif /* TOPPERS_MACRO_ONLY */ 127 110 … … 133 116 134 117 /* 135 * 空ã©ãã«ã®å®ç¾©118 * 空ラベルの定義 136 119 * 137 * æ¬ã³ã³ãã¤ã©ã§ã¯å¤§ããã¼ãã®é 138 åã¯ã³ã³ãã¤ã«ã¨ã©ã¼ã«ãªããã, 139 * ãµã¤ãº1ã«ã¦å®ç¾©ãã. 120 * 本コンパイラでは大きさゼロの配列はコンパイルエラーになるため, 121 * サイズ1にて定義する. 140 122 */ 141 123 #define TOPPERS_EMPTY_LABEL( type, symbol ) type symbol[ 1 ] -
Property svn:mime-type
changed from
-
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
-
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/gcc/tool_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 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 * の責任を負わない. 53 38 * 54 39 * @(#) $Id$ … … 56 41 57 42 /* 58 * t_stddef.h ã®éçºç°å¢ä¾åé¨ï¼GCCç¨ï¼43 * t_stddef.hの開発環境依存部(GCC用) 59 44 */ 60 45 … … 63 48 64 49 /* 65 * ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©66 */ 67 #ifndef __cplusplus /* C++ ã«ã¯inline ããã*/50 * コンパイラの拡張機能のためのマクロ定義 51 */ 52 #ifndef __cplusplus /* C++にはinline がある */ 68 53 #if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L 69 /* C99 ã«ã¯inline ããã*/70 #define inline __inline__ /* ã¤ã³ã©ã¤ã³é¢æ°*/54 /* C99にはinline がある */ 55 #define inline __inline__ /* インライン関数 */ 71 56 #endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */ 72 57 #endif /* __cplusplus */ 73 58 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__ /* インラインアセンブラ */ 78 63 #endif /* __cplusplus */ 79 64 80 #define Asm __asm__ volatile /* ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åææ¢ï¼*/65 #define Asm __asm__ volatile /* インラインアセンブラ(最適化抑止)*/ 81 66 82 67 #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 * ている). 95 79 */ 96 80 #ifndef TOPPERS_MACRO_ONLY … … 100 84 101 85 /* 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 ãããã§ï¼ãã¤ã³ã¿ã®ãããé·ãlong109 * ã®ãããé·ã¨ä¸è´ããå ´å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 * のビット長と一致する場合 110 94 */ 111 95 #ifdef TOPPERS_STDINT_TYPE1 112 96 113 97 /* 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 102 typedef signed char int8_t; /* 符号付き8ビット整数 */ 103 typedef unsigned char uint8_t; /* 符号無し8ビット整数 */ 104 105 typedef signed short int16_t; /* 符号付き16ビット整数 */ 106 typedef unsigned short uint16_t; /* 符号無し16ビット整数 */ 107 108 typedef signed int int32_t; /* 符号付き32ビット整数 */ 109 typedef unsigned int uint32_t; /* 符号無し32ビット整数 */ 110 111 typedef signed long long int64_t; /* 符号付き64ビット整数 */ 112 typedef unsigned long long uint64_t; /* 符号無し64ビット整数 */ 113 114 typedef int8_t int_least8_t; /* 8ビット以上の符号付き整数 */ 115 typedef uint8_t uint_least8_t; /* 8ビット以上の符号無し整数 */ 116 117 typedef long intptr_t; /* ポインタを格納できる符号付き整数 */ 118 typedef unsigned long uintptr_t; /* ポインタを格納できる符号無し整数 */ 119 120 #endif /* TOPPERS_MACRO_ONLY */ 121 122 /* 123 * コンパイラ依存のデータ型の整数定数を作るマクロ 140 124 */ 141 125 #ifndef INT8_C … … 172 156 173 157 /* 174 * ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã«æ ¼ç´ã§ããæ大å¤ã¨æå°å¤ã®å®ç¾©158 * コンパイラ依存のデータ型に格納できる最大値と最小値の定義 175 159 */ 176 160 #define INT8_MAX SCHAR_MAX … … 201 185 202 186 /* 203 * æµ®åå°æ°ç¹åã«é¢ããå®ç¾©204 * 205 * TOPPERS_STDFLOAT_TYPE1: float ãIEEE754æºæ ã®å精度浮åå°æ°ç¹æ°ï¼206 * double ãå精度浮åå°æ°ç¹æ°ã®å ´å187 * 浮動小数点型に関する定義 188 * 189 * TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数, 190 * doubleが倍精度浮動小数点数の場合 207 191 */ 208 192 #ifdef TOPPERS_STDFLOAT_TYPE1 209 193 #ifndef TOPPERS_MACRO_ONLY 210 194 211 typedef float float32_t; /* IEEE754 æºæ ã®å精度浮åå°æ°ç¹æ°*/212 typedef double double64_t; /* IEEE754 æºæ ã®å精度浮åå°æ°ç¹æ°*/195 typedef float float32_t; /* IEEE754準拠の単精度浮動小数点数 */ 196 typedef double double64_t; /* IEEE754準拠の倍精度浮動小数点数 */ 213 197 214 198 #endif /* TOPPERS_MACRO_ONLY */ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 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 * の責任を負わない. 53 38 * 54 39 * $Id$ … … 56 41 57 42 /* 58 * ãã¬ã¼ã¹ãã°æ©è½43 * トレースログ機能 59 44 */ 60 45 … … 65 50 66 51 /* 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 */ 54 SYSLOG trace_buffer[TCNT_TRACE_BUFFER]; /* トレースログバッファ */ 55 uint_t trace_count; /* トレースログバッファ中のログの数 */ 56 uint_t trace_head; /* 先頭のトレースログの格納位置 */ 57 uint_t trace_tail; /* 次のトレースログの格納位置 */ 58 MODE trace_mode; /* トレースモード */ 59 60 /* 61 * トレースログ機能の初期化 78 62 */ 79 63 void … … 89 73 90 74 /* 91 * ãã¬ã¼ã¹ãã°ã®éå§75 * トレースログの開始 92 76 */ 93 77 ER … … 104 88 105 89 /* 106 * ãã¬ã¼ã¹ãã°ã®æ¸è¾¼ã¿90 * トレースログの書込み 107 91 */ 108 92 ER … … 115 99 116 100 /* 117 * ãã¬ã¼ã¹æå»ã®è¨å®101 * トレース時刻の設定 118 102 * 119 * LOG_WRI_LOG_ENTER ããå¼ã°ããå ´åã«p_trace->logtimãæ¸ãæ120 * ãã¦ãã¾ãã®ã¯æ°æã¡ãæªããï¼wri_logã®æ¹ã§ä¸æ¸ãããããå121 * é¡ã¯ãªãï¼103 * LOG_WRI_LOG_ENTERから呼ばれた場合にp_trace->logtimを書き換 104 * えてしまうのは気持ちが悪いが,wri_logの方で上書きするため問 105 * 題はない. 122 106 */ 123 107 p_trace->logtim = TRACE_GET_TIM(); 124 108 125 109 /* 126 * ãã¬ã¼ã¹ãããã¡ã«è¨é²110 * トレースバッファに記録 127 111 */ 128 112 trace_buffer[trace_tail] = *p_trace; … … 148 132 149 133 /* 150 * ãã¬ã¼ã¹ãã°ã®èªåºã134 * トレースログの読出し 151 135 */ 152 136 ER … … 159 143 160 144 /* 161 * ãã¬ã¼ã¹ãã°ãããã¡ããã®ååºã145 * トレースログバッファからの取出し 162 146 */ 163 147 if (trace_count > 0U) { … … 179 163 180 164 /* 181 * ãã¬ã¼ã¹ãã°ãåºåããããã®ã©ã¤ãã©ãªé¢æ°165 * トレースログを出力するためのライブラリ関数 182 166 */ 183 167 … … 225 209 226 210 /* 227 * ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã³ã¼ããããã¬ã¼ã¹ãã°ãåºåããããã®é¢228 * æ°211 * アセンブリ言語で記述されるコードからトレースログを出力するための関 212 * 数 229 213 */ 230 214 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 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 * 免責すること. 46 32 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * $Id$ … … 56 41 57 42 /* 58 * ãã¬ã¼ã¹ãã°ã«é¢ããè¨å®43 * トレースログに関する設定 59 44 * 60 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hããã³target_syssvc.hã®61 * ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ã¾ãï¼ãã¬ã¼ã¹ãã°æ©è½ã®åæåãè¨é²ã®é62 * å§ï¼åæ¢ï¼ãã¬ã¼ã¹ãã°ã®ãã³ããè¡ãããã°ã©ã ããã¤ã³ã¯ã«ã¼ããã63 * ãã¨ãæ³å®ãã¦ããï¼45 * このインクルードファイルは,target_config.hおよびtarget_syssvc.hの 46 * みからインクルードされる.また,トレースログ機能の初期化や記録の開 47 * 始/停止,トレースログのダンプを行うプログラムからインクルードする 48 * ことを想定している. 64 49 */ 65 50 … … 68 53 69 54 /* 70 * ãã¬ã¼ã¹ãã°ãããã¡ã®ãµã¤ãº55 * トレースログバッファのサイズ 71 56 */ 72 57 #ifndef TCNT_TRACE_BUFFER … … 75 60 76 61 /* 77 * ãã¬ã¼ã¹æå»ã®åå¾æ¹æ³62 * トレース時刻の取得方法 78 63 */ 79 64 #ifndef TRACE_GET_TIM … … 84 69 85 70 /* 86 * ãã¬ã¼ã¹ãã°ã®ãã¼ã¿æ§é71 * トレースログのデータ構造 87 72 * 88 * ã·ã¹ãã ãã°æ©è½ã®ãã°æ 89 å ±ã®ãã¼ã¿æ§é ã¨åããã®ãç¨ããï¼ 73 * システムログ機能のログ情報のデータ構造と同じものを用いる. 90 74 */ 91 75 #include <t_syslog.h> … … 93 77 94 78 /* 95 * ãã¬ã¼ã¹ãã°ãããã¡ã¨ããã«ã¢ã¯ã»ã¹ããããã®ãã¤ã³ã¿79 * トレースログバッファとそれにアクセスするためのポインタ 96 80 */ 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; /* 失ããããã¬ã¼ã¹ã®æ° */ 81 extern TRACE trace_buffer[]; /* トレースログバッファ */ 82 extern uint_t trace_count; /* トレースログバッファ中のログの数 */ 83 extern uint_t trace_head; /* 先頭のトレースログの格納位置 */ 84 extern uint_t trace_tail; /* 次のトレースログの格納位置 */ 85 extern uint_t trace_lost; /* 失われたトレースの数 */ 103 86 104 87 #endif /* TOPPERS_MACRO_ONLY */ 105 88 106 89 /* 107 * ãã¬ã¼ã¹ã¢ã¼ãã®å®ç¾©90 * トレースモードの定義 108 91 */ 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) /* トレースログのクリア */ 113 96 114 97 #ifndef TOPPERS_MACRO_ONLY 115 98 116 99 /* 117 * ãã¬ã¼ã¹ãã°æ©è½ã®åæå100 * トレースログ機能の初期化 118 101 * 119 * ãã¬ã¼ã¹ãã°æ©è½ãåæåããï¼åæåã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ãæ³120 * å®ãã¦ããï¼å¼æ°ã«ãã次ã®åä½ãè¡ãï¼102 * トレースログ機能を初期化する.初期化ルーチンとして登録することを想 103 * 定している.引数により次の動作を行う. 121 104 * 122 * TRACE_STOP ï¼åæåã®ã¿ã§ãã¬ã¼ã¹ã¯éå§ããªãï¼123 * TRACE_RINGBUF ï¼ãªã³ã°ãããã¡ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼124 * TRACE_AUTOSTOP ï¼èªååæ¢ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼105 * TRACE_STOP:初期化のみでトレースは開始しない. 106 * TRACE_RINGBUF:リングバッファモードでトレースを開始. 107 * TRACE_AUTOSTOP:自動停止モードでトレースを開始. 125 108 */ 126 109 extern void trace_initialize(intptr_t exinf); 127 110 128 111 /* 129 * ãã¬ã¼ã¹ãã°ã®éå§112 * トレースログの開始 130 113 * 131 * ãã¬ã¼ã¹ãã°ã®è¨é²ãéå§ï¼åæ¢ããï¼å¼æ°ã«ãã次ã®åä½ãè¡ãï¼114 * トレースログの記録を開始/停止する.引数により次の動作を行う. 132 115 * 133 * TRACE_STOP ï¼ãã¬ã¼ã¹ãåæ¢ï¼134 * TRACE_RINGBUF ï¼ãªã³ã°ãããã¡ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼135 * TRACE_AUTOSTOP ï¼èªååæ¢ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼136 * TRACE_CLEAR ï¼ãã¬ã¼ã¹ãã°ãã¯ãªã¢ï¼116 * TRACE_STOP:トレースを停止. 117 * TRACE_RINGBUF:リングバッファモードでトレースを開始. 118 * TRACE_AUTOSTOP:自動停止モードでトレースを開始. 119 * TRACE_CLEAR:トレースログをクリア. 137 120 */ 138 121 extern ER trace_sta_log(MODE mode); 139 122 140 123 /* 141 * ãã¬ã¼ã¹ãã°ã®æ¸è¾¼ã¿124 * トレースログの書込み 142 125 */ 143 126 extern ER trace_wri_log(TRACE *p_trace); 144 127 145 128 /* 146 * ãã¬ã¼ã¹ãã°ã®èªåºã129 * トレースログの読出し 147 130 */ 148 131 extern ER trace_rea_log(TRACE *p_trace); 149 132 150 133 /* 151 * ãã¬ã¼ã¹ãã°ã®ãã³ãï¼trace_dump.cï¼134 * トレースログのダンプ(trace_dump.c) 152 135 * 153 * ãã¬ã¼ã¹ãã°ããã³ãããï¼çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ãæ³å® 154 * ãã¦ããï¼å¼æ°ã¨ãã¦ï¼ãã³ãå 155 ã¨ãªãæååºåé¢æ°ã¸ã®ãã¤ã³ã¿ã渡ãï¼ 156 * ã¿ã¼ã²ããä¾åã®ä½ã¬ãã«æååºåãå©ç¨ããå ´åã«ã¯ï¼target_putcã渡 157 * ãï¼ 136 * トレースログをダンプする.終了処理ルーチンとして登録することも想定 137 * している.引数として,ダンプ先となる文字出力関数へのポインタを渡す. 138 * ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡 139 * す. 158 140 */ 159 141 extern void trace_dump(intptr_t exinf); 160 142 161 143 /* 162 * ãã¬ã¼ã¹ãã°ãåºåããããã®ã©ã¤ãã©ãªé¢æ°144 * トレースログを出力するためのライブラリ関数 163 145 */ 164 146 extern void trace_write_0(uint_t type); … … 169 151 170 152 /* 171 * ãã¬ã¼ã¹ãã°ãåºåããããã®ãã¯ã153 * トレースログを出力するためのマクロ 172 154 */ 173 155 … … 188 170 189 171 /* 190 * ãã¬ã¼ã¹ãã°æ¹æ³ã®è¨å®172 * トレースログ方法の設定 191 173 */ 192 174 #define LOG_TSKSTAT(p_tcb) trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_dump.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 6 6 * Graduate School of Information Science, Nagoya Univ., JAPAN 7 7 * 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 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * $Id$ … … 54 39 55 40 /* 56 * ãã¬ã¼ã¹ãã°ã®ãã³ã41 * トレースログのダンプ 57 42 */ 58 43 … … 62 47 63 48 /* 64 * ã«ã¼ãã«æ 65 å ±ã®ååºã 49 * カーネル情報の取出し 66 50 */ 67 51 static intptr_t … … 112 96 113 97 /* 114 * ãã¬ã¼ã¹ãã°ã®è¡¨ç¤º98 * トレースログの表示 115 99 */ 116 100 static void … … 156 140 157 141 /* 158 * ãã¬ã¼ã¹ãã°ã®ãã³ã142 * トレースログのダンプ 159 143 */ 160 144 void -
Property svn:mime-type
changed from
-
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
-
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_cfg1_out.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 1 1 /* 2 * cfg1_out.cã®ãªã³ã¯ã«å¿ 3 è¦ãªã¹ã¿ãã®å®ç¾© 2 * cfg1_out.cのリンクに必要なスタブの定義 4 3 */ 5 4 … … 21 20 22 21 /* 23 * ãªãã»ãããã¡ã¤ã«ãçæããããã®å®ç¾©22 * オフセットファイルを生成するための定義 24 23 */ 25 24 const uint8_t MAGIC_1 = UINT_C(0x12); -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_check.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # ãã¹3ã®çæã¹ã¯ãªããã®ã³ã¢ä¾åé¨ï¼ARMç¨ï¼3 # パス3の生成スクリプトのコア依存部(ARM用) 4 4 # 5 5 # $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $ … … 7 7 8 8 # 9 # ã¿ã¼ã²ããéä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã9 # ターゲット非依存部のインクルード 10 10 # 11 11 IncludeTrb("kernel/kernel_check.trb") -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 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用) 57 43 */ 58 44 … … 62 48 63 49 /* 64 * å²è¾¼ã¿çºçåæ°ãä¿åããå¤æ°50 * 割込み発生回数を保存する変数 65 51 */ 66 52 uint16_t intnest; 67 53 68 54 /* 69 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°55 * CPUロックフラグ実現のための変数 70 56 */ 71 57 #if TIPM_LOCK != -15 72 bool_t lock_flag; /* CPUããã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */ 73 uint32_t saved_ipl; /* å²è¾¼ã¿åªå 74 度ã¬ãã«ãä¿åããå¤æ° */ 58 bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 59 uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 75 60 #endif /* TIPM_LOCK != -15 */ 76 61 77 62 78 63 /* 79 * ããã»ããµä¾åã®åæå64 * プロセッサ依存の初期化 80 65 */ 81 66 void … … 83 68 { 84 69 /* 85 * å²è¾¼ã¿çºçåæ°ã®åæå 86 * 87 * ã¹ã¿ã¼ãã¢ããã¯å 88 ¨å²è¾¼ã¿ããã¯ç¶æ 89 & éã¿ã¹ã¯ã³ã³ããã¹ã 90 * ã«ã¦åä½ãããã, éã¿ã¹ã¯ã³ã³ããã¹ãã«å½è£ 91 ãã. 70 * 割込み発生回数の初期化 71 * 72 * スタートアップは全割込みロック状態 & 非タスクコンテキスト 73 * にて動作するため, 非タスクコンテキストに偽装する. 92 74 */ 93 75 intnest = 1U; … … 95 77 #if TIPM_LOCK != -15 96 78 /* 97 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°ã®åæå79 * CPUロックフラグ実現のための変数の初期化 98 80 */ 99 81 lock_flag = true; … … 104 86 105 87 /* 106 * ããã»ããµä¾åã®çµäºå¦ç88 * プロセッサ依存の終了処理 107 89 */ 108 90 void … … 110 92 { 111 93 /* 112 * ç¹ã«å¿ 113 è¦ãªå¦çã¯ãªã 114 */ 115 } 116 117 118 /* 119 * CPUä¾å¤ã®çºçç¶æ³ã®ãã°åºå 94 * 特に必要な処理はない 95 */ 96 } 97 98 99 /* 100 * CPU例外の発生状況のログ出力 120 101 * 121 * CPUä¾å¤ãã³ãã©ã®ä¸ããï¼CPUä¾å¤æ 122 å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã 123 * ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ãã°ã«åºåããï¼ 102 * CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし 103 * て呼び出すことで,CPU例外の発生状況をシステムログに出力する. 124 104 */ 125 105 #ifdef SUPPORT_XLOG_SYS … … 152 132 153 133 /* 154 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®134 * 割込み要求ラインの属性の設定 155 135 * 156 * ASP ã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã157 * ã¯ãã¦ããï¼cfg_intãµã¼ãã¹ã³ã¼ã«ãè¨ããå ´åã«ã¯ï¼ã¨ã©ã¼ãè¿ããã158 * ã«ãã¹ãã§ãããï¼136 * ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ 137 * クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう 138 * にすべきであろう. 159 139 */ 160 140 void … … 177 157 178 158 /* 179 * å²è¾¼ã¿ã®ãã¹ã¯ 180 * 181 * å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨å®ãï¼å² 182 * è¾¼ã¿åªå 183 度ã®è¨å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼ 184 * ä¸æ¦ãã¹ã¯ããï¼ 159 * 割込みのマスク 160 * 161 * 割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割 162 * 込み優先度の設定を行うのは危険なため,割込み属性にかかわらず, 163 * 一旦マスクする. 185 164 */ 186 165 ( void )x_disable_int( intno ); 187 166 188 167 /* 189 * ã¬ãã«ããªã¬/ã¨ãã¸ããªã¬ã®è¨å®190 * 191 * IRQ ã®ã¿ãµãã¼ããã168 * レベルトリガ/エッジトリガの設定 169 * 170 * IRQのみサポートする 192 171 */ 193 172 if( INTNO_IRQ( intno ) != 0U ){ … … 208 187 else{ 209 188 /* 210 * ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ã¦ãã§ãã¯ãã¦ãããã,211 * ããã¸ãããã¨ã¯ããããªã.189 * コンフィギュレータにてチェックしているため, 190 * ここへくることはありえない. 212 191 */ 213 192 irq_val = 0U; … … 218 197 219 198 /* 220 * å²è¾¼ã¿ã¬ãã«ã®è¨å®221 * 222 * å²è¾¼ã¿çªå·ã«å¯¾å¿ããIPRå¤ãè¨å®ãã.199 * 割込みレベルの設定 200 * 201 * 割込み番号に対応したIPR値を設定する. 223 202 */ 224 203 sil_wrb_mem(ipr_reg_addr[intno], cfg_int_table[intno].intpri); 225 204 226 205 /* 227 * å²è¾¼ã¿ã®ãã¹ã¯è§£é¤206 * 割込みのマスク解除 228 207 */ 229 208 if( ( intatr & TA_ENAINT ) != 0U ){ … … 235 214 #ifndef OMIT_DEFAULT_INT_HANDLER 236 215 /* 237 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã216 * 未登録の割込みが発生した場合に呼び出される 238 217 */ 239 218 void … … 246 225 #ifndef OMIT_DEFAULT_EXC_HANDLER 247 226 /* 248 * æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã227 * 未登録の例外が発生した場合に呼び出される 249 228 */ 250 229 void -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 11 11 * Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 * 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プロジェクトを免責すること. 47 34 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 51 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 52 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 37 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 38 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 53 39 * 54 40 */ 55 41 56 42 /* 57 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼58 * 59 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯60 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã61 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼43 * プロセッサ依存モジュール(RX630用) 44 * 45 * このインクルードファイルは,target_config.h(または,そこからインク 46 * ルードされるファイル)のみからインクルードされる.他のファイルから 47 * 直接インクルードしてはならない. 62 48 */ 63 49 … … 68 54 69 55 /* 70 * ããã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©56 * プロセッサの特殊命令のインライン関数定義 71 57 */ 72 58 #include "prc_insn.h" … … 74 60 75 61 /* 76 * ã¿ã¼ã²ããä¾åã®å²è¾¼ã¿å±æ§ã®å®ç¾©62 * ターゲット依存の割込み属性の定義 77 63 */ 78 64 #define TARGET_INTATR (TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE | TA_LOWLEVEL) … … 80 66 81 67 /* 82 * ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®68 * スタックサイズのチェック方法指定 83 69 */ 84 70 #define CHECK_STKSZ_ALIGN 4 … … 86 72 87 73 /* 88 * ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ 89 * 90 * ã¿ã¹ã¯èµ·åæã«4byte, 91 * å²è¾¼ã¿å 92 ¥å£å¦çã«ã¦48byte, CPUä¾å¤å 93 ¥å£å¦çã«ã¦84byte, 94 * ã§ãããã, æå°å¤ã¯88byteã¨ãã. 74 * タスクスタックサイズの最小値 75 * 76 * タスク起動時に4byte, 77 * 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 78 * であるため, 最小値は88byteとする. 95 79 */ 96 80 #define TARGET_MIN_STKSZ 88 … … 98 82 99 83 /* 100 * éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯åæå¤84 * 非タスクコンテキスト用のスタック初期値 101 85 */ 102 86 … … 105 89 106 90 /* 107 * ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®å®ç¾©91 * タスクコンテキストブロックの定義 108 92 */ 109 93 typedef struct task_context_block { 110 void *sp; /* ã¹ã¿ãã¯ãã¤ã³ã¿*/111 FP pc; /* ããã°ã©ã ã«ã¦ã³ã¿*/94 void *sp; /* スタックポインタ */ 95 FP pc; /* プログラムカウンタ */ 112 96 } TSKCTXB; 113 97 114 98 115 99 /* 116 * å²è¾¼ã¿çºçåæ°ãä¿åããå¤æ°100 * 割込み発生回数を保存する変数 117 101 */ 118 102 extern uint16_t intnest; … … 120 104 121 105 /* 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に設定することを推奨する). 135 115 */ 136 116 #ifndef TIPM_LOCK … … 138 118 #define TIPM_LOCK TMIN_INTPRI 139 119 #else /* USE_SERIALDEBUG */ 140 /* CubeSuite+ 㧠RXã·ãªã¢ã«ãããã¬ã使ç¨ããå ´åã¯éä¿¡ç¨CSIå²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨ãã*/120 /* CubeSuite+ で RXシリアルデバッガを使用する場合は通信用CSI割込みをカーネル管理外とする */ 141 121 #define TIPM_LOCK (TMIN_INTPRI + 1) 142 122 #endif /* USE_SERIALDEBUG */ … … 145 125 146 126 /* 147 * TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®å®ç¾ 148 */ 149 /* 150 * ã³ã³ããã¹ãã®åç 151 § 152 * 153 * RXã§ã¯ï¼å²è¾¼ã¿ã®æ»ãå 154 ãã¿ã¹ã¯ãã©ãããå¤æããããã« intnest 155 * ã使ç¨ãã¦ããï¼ãããç¨ãã¦ã³ã³ããã¹ããå¤æããï¼ 127 * TOPPERS標準割込み処理モデルの実現 128 */ 129 /* 130 * コンテキストの参照 131 * 132 * RXでは,割込みの戻り先がタスクかどうかを判断するために intnest 133 * を使用している.これを用いてコンテキストを判断する. 156 134 */ 157 135 Inline bool_t 158 136 sense_context( void ) 159 137 { 160 /* ãã¹ãã«ã¦ã³ã¿0ãã大ãªãéã¿ã¹ã¯ã³ã³ããã¹ã*/138 /* ネストカウンタ0より大なら非タスクコンテキスト */ 161 139 return ( intnest > 0U ); 162 140 } … … 164 142 165 143 /* 166 * CPUããã¯ãã©ã°å®ç¾ã®ããã®å¤æ° 167 * 168 * ãããã®å¤æ°ã¯ï¼CPUããã¯ç¶æ 169 ã®æã®ã¿æ¸ãæãã¦ãããã®ã¨ããï¼ 144 * CPUロックフラグ実現のための変数 145 * 146 * これらの変数は,CPUロック状態の時のみ書き換えてよいものとする. 170 147 */ 171 148 #if TIPM_LOCK != -15 172 extern bool_t lock_flag; /* CPUããã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */ 173 extern uint32_t saved_ipl; /* å²è¾¼ã¿åªå 174 度ã¬ãã«ãä¿åããå¤æ° */ 149 extern bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 150 extern uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 175 151 #endif /* TIPM_LOCK != -15 */ 176 152 … … 179 155 180 156 /* 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 203 171 */ 204 172 #define IPL_LOCK ( IPM_TO_IPL( TIPM_LOCK ) ) 205 173 206 174 /* 207 * TIPM_ENAALLï¼å²è¾¼ã¿åªå 208 度ãã¹ã¯å 209 ¨è§£é¤ï¼ã®IPL 175 * TIPM_ENAALL(割込み優先度マスク全解除)のIPL 210 176 */ 211 177 #define IPL_ENAALL ( IPM_TO_IPL( TIPM_ENAALL ) ) … … 215 181 216 182 /* 217 * å²è¾¼ã¿è¦å æ¯ã®ã¬ãã« & å±æ§å®ç¾©ãã¼ãã«218 * ( ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããåºå)183 * 割込み要因毎のレベル & 属性定義テーブル 184 * (テンプレートファイルによる出力) 219 185 */ 220 186 typedef struct cfg_int_info { … … 227 193 228 194 /* 229 * å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å® 230 * 231 * å²è¾¼ã¿çªå·ãæå¹ãªå¤ãå³å¯ã«ãã§ãã¯ãããã, 232 * ã³ã³ãã£ã®ã¥ã¬ã¼ã¿åºåãã¼ãã«ãåç 233 §ãã. 195 * 割込み番号の範囲の判定 196 * 197 * 割込み番号が有効な値か厳密にチェックするため, 198 * コンフィギュレータ出力テーブルを参照する. 234 199 */ 235 200 #define VALID_INTNO( intno ) \ … … 238 203 #define VALID_INTNO_CFGINT( intno ) VALID_INTNO( intno ) 239 204 240 /* cre_int ã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®*/205 /* cre_intで有効な割込み番号の指定 */ 241 206 #define VALID_INTNO_CREINT VALID_INTNO_CFGINT((intno)) 242 207 243 /* cre_isr ã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®*/208 /* cre_isrで有効な割込み番号の指定 */ 244 209 #define VALID_INTNO_CREISR(intno) VALID_INTNO_CFGINT((intno)) 245 210 246 211 247 212 /* 248 * å²è¾¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿é¢é£ã®å®ç¾©213 * 割込み制御レジスタ関連の定義 249 214 */ 250 215 #define IRQ_POSEDGE ( 0x08U ) … … 255 220 256 221 /* 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 * ないものと想定している. 276 235 */ 277 236 Inline void … … 284 243 285 244 /* 286 * current_ipl() ã®è¿ãå¤ãç´æ¥saved_iplã«ä¿åããï¼ä¸æå¤æ°ipl287 * ãç¨ãã¦ããã®ã¯ï¼current_ipl()ãå¼ãã ç´å¾ã«å²è¾¼ã¿ãçºçãï¼288 * èµ·åãããå²è¾¼ã¿å¦çã§saved_iplãå¤æ´ãããå¯è½æ§ãããããã§289 * ããï¼245 * current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl 246 * を用いているのは,current_ipl()を呼んだ直後に割込みが発生し, 247 * 起動された割込み処理でsaved_iplが変更される可能性があるためで 248 * ある. 290 249 */ 291 250 ipl = current_ipl(); … … 304 263 305 264 /* 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 * のと想定している. 317 272 */ 318 273 Inline void … … 332 287 333 288 /* 334 * CPUããã¯ç¶æ 335 ã®åç 336 § 289 * CPUロック状態の参照 337 290 */ 338 291 Inline bool_t … … 351 304 352 305 /* 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の高い方に設定する. 363 312 */ 364 313 Inline void … … 384 333 385 334 /* 386 * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå 387 度ãã¹ã¯ã®åç 388 § 389 * 390 * CPUããã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå 391 度ã 392 * ã¹ã¯ãï¼ã»ããããã¦ããæã¯saved_iipmãåç 393 §ããï¼ 335 * (モデル上の)割込み優先度マスクの参照 336 * 337 * CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ 338 * スクを,セットされている時はsaved_iipmを参照する. 394 339 */ 395 340 Inline PRI … … 415 360 416 361 /* 417 * å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ã»ãã418 * 419 * å²è¾¼ã¿å±æ§ãè¨å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ¢420 * ãã©ã°ãã»ãããããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼362 * 割込み要求禁止フラグのセット 363 * 364 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 365 * フラグをセットしようとした場合には,FALSEを返す. 421 366 */ 422 367 Inline bool_t … … 424 369 { 425 370 /* 426 * ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã371 * レベル定義が0である場合はCFG_INTされていない 427 372 */ 428 373 if( cfg_int_table[intno].intpri == 0 ){ … … 440 385 441 386 /* 442 * å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ã¯ãªã¢443 * 444 * å²è¾¼ã¿å±æ§ãè¨å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ¢445 * ãã©ã°ãã¯ãªã¢ãããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼387 * 割込み要求禁止フラグのクリア 388 * 389 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 390 * フラグをクリアしようとした場合には,FALSEを返す. 446 391 */ 447 392 Inline bool_t … … 449 394 { 450 395 /* 451 * ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã396 * レベル定義が0である場合はCFG_INTされていない 452 397 */ 453 398 if( cfg_int_table[intno].intpri == 0 ){ … … 465 410 466 411 /* 467 * å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢412 * 割込み要求のクリア 468 413 */ 469 414 Inline void … … 478 423 479 424 /* 480 * å²è¾¼ã¿è¦æ±ã®ãã§ãã¯425 * 割込み要求のチェック 481 426 */ 482 427 Inline bool_t … … 484 429 { 485 430 /* 486 * å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¯0 or 1ã§ãããªããã,487 * ãã®ã¾ã¾ã®å¤ãè¿ã.431 * 割込み要求レジスタは0 or 1でしかないため, 432 * そのままの値を返す. 488 433 */ 489 434 return ( *IR_REG(intno) ); … … 495 440 496 441 /* 497 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®442 * 割込み要求ラインの属性の設定 498 443 */ 499 444 extern void x_config_int( INTNO intno, ATR intatr, PRI intpri ); … … 501 446 502 447 /* 503 * å²è¾¼ã¿ãã³ãã©ã®å 504 ¥å£ã§å¿ 505 è¦ãªIRCæä½ 448 * 割込みハンドラの入口で必要なIRC操作 506 449 * 507 450 */ … … 509 452 i_begin_int( INTNO intno ) 510 453 { 511 /* ç¹ã«è¡ãã¹ãå¦çã¯ãªã */ 512 } 513 514 515 /* 516 * å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿ 517 è¦ãªIRCæä½ 454 /* 特に行うべき処理はない */ 455 } 456 457 458 /* 459 * 割込みハンドラの出口で必要なIRC操作 518 460 * 519 461 */ … … 521 463 i_end_int( INTNO intno ) 522 464 { 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 * ければならない. 540 476 */ 541 477 extern void dispatch( void ); 542 478 543 479 /* 544 * ãã£ã¹ãããã£ã®åä½éå§ï¼prc_support.a30ï¼ 545 * 546 * start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼ 547 * ã¿ãç¦æ¢ããç¶æ 548 ï¼å 549 ¨å²è¾¼ã¿ããã¯ç¶æ 550 ã¨åçã®ç¶æ 551 ï¼ã§å¼ã³åºããªããã° 552 * ãªããªãï¼ 480 * ディスパッチャの動作開始(prc_support.a30) 481 * 482 * start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込 483 * みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ 484 * ならない. 553 485 */ 554 486 extern void start_dispatch( void ) NoReturn; 555 487 556 488 /* 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 * 度マスク全解除状態で呼び出さなければならない. 567 494 */ 568 495 #define _kernel_exit_and_dispatch(); \ … … 573 500 574 501 /* 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 * す. 580 507 */ 581 508 extern void call_exit_kernel( void ) NoReturn; 582 509 583 510 /* 584 * ã¿ã¹ã¯ã³ã³ããã¹ãã®åæå 585 * 586 * ã¿ã¹ã¯ãä¼æ¢ç¶æ 587 ããå®è¡ã§ããç¶æ 588 ã«ç§»è¡ããæã«å¼ã°ããï¼ãã®æç¹ 589 * ã§ã¹ã¿ãã¯é åã使ã£ã¦ã¯ãªããªãï¼ 590 * 591 * activate_contextãï¼ã¤ã³ã©ã¤ã³é¢æ°ã§ã¯ãªããã¯ãå®ç¾©ã¨ãã¦ããã®ã¯ï¼ 592 * ãã®æç¹ã§ã¯TCBãå®ç¾©ããã¦ããªãããã§ããï¼ 511 * タスクコンテキストの初期化 512 * 513 * タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点 514 * でスタック領域を使ってはならない. 515 * 516 * activate_contextを,インライン関数ではなくマクロ定義としているのは, 517 * この時点ではTCBが定義されていないためである. 593 518 */ 594 519 extern void start_r( void ); … … 598 523 { \ 599 524 \ 600 /* ã¹ã¿ãã¯ãã¤ã³ã¿åæå¤ã®è¨å®*/ \525 /* スタックポインタ初期値の設定 */ \ 601 526 ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) + \ 602 527 ( p_tcb )->p_tinib->stksz ); \ 603 /* èµ·åçªå°ã®è¨å®*/ \528 /* 起動番地の設定 */ \ 604 529 ( p_tcb )->tskctxb.pc = ( FP ) start_r; \ 605 530 } \ … … 608 533 609 534 /* 610 * calltex ã¯ä½¿ç¨ããªã535 * calltexは使用しない 611 536 */ 612 537 #define OMIT_CALLTEX … … 614 539 615 540 /* 616 * å²è¾¼ã¿ãã³ãã©ã®è¨å® 617 * 618 * RX630ã¯ROMã«å²è¾¼ã¿ãã¯ã¿ãé 619 ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£ 620 ããï¼ 541 * 割込みハンドラの設定 542 * 543 * RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する. 621 544 */ 622 545 Inline void … … 627 550 628 551 /* 629 * CPUä¾å¤ãã³ãã©ã®è¨å® 630 * 631 * RX630ã¯ROMã«ä¾å¤ãã¯ã¿ãé 632 ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£ 633 ããï¼ 552 * CPU例外ハンドラの設定 553 * 554 * RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する. 634 555 */ 635 556 Inline void … … 640 561 641 562 /* 642 * å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®å 643 ¥å£å¦çã®çæãã¯ã 644 * 645 * ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããçæãããã空ãã¯ãã¨ããï¼ 563 * 割込み/例外ハンドラの入口処理の生成マクロ 564 * 565 * テンプレートファイルにより生成するため空マクロとする. 646 566 */ 647 567 #define HDR_ENTRY(hdr, intexc_num , tobejmp) 648 568 649 569 /* 650 * å²è¾¼ã¿ãã³ãã©ã®å 651 ¥å£å¦çã®çæãã¯ã 570 * 割込みハンドラの入口処理の生成マクロ 652 571 */ 653 572 #define _INT_ENTRY(inhno, inthdr) _kernel_##inthdr##_##inhno##_entry … … 660 579 661 580 /* 662 * CPUä¾å¤ãã³ãã©ã®å 663 ¥å£å¦çã®çæãã¯ã 581 * CPU例外ハンドラの入口処理の生成マクロ 664 582 */ 665 583 #define _EXC_ENTRY(excno , exchdr) _kernel_##exchdr##_##excno##_entry … … 672 590 673 591 /* 674 * CPUä¾å¤ã®çºçããæã®ã³ã³ããã¹ãã®åç 675 § 676 * 677 * CPUä¾å¤ã®çºçããæã®ã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®æã«FALSEï¼ 678 * ããã§ãªãæã«trueãè¿ãï¼ 592 * CPU例外の発生した時のコンテキストの参照 593 * 594 * CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE, 595 * そうでない時にtrueを返す. 679 596 */ 680 597 Inline bool_t … … 682 599 { 683 600 /* 684 * ãã¹ãã«ã¦ã³ã¿ã1ãã大ãªãéã¿ã¹ã¯ã³ã³ããã¹ã601 * ネストカウンタが1より大なら非タスクコンテキスト 685 602 */ 686 603 return( intnest > 1U ); … … 689 606 690 607 /* 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 694 610 */ 695 611 #define EXC_GET_PSW_OFFSET (4+8+4+60+4) 696 612 697 613 /* 698 * CPUä¾å¤ã®çºçããæã®IPLã®åç 699 § 614 * CPU例外の発生した時のIPLの参照 700 615 */ 701 616 Inline uint32_t … … 715 630 716 631 /* 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を返す). 733 639 * 734 * ã«ã¼ãã«å®è¡ä¸ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã°== 1640 * カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1 735 641 * (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 742 645 * 743 646 * … … 752 655 753 656 /* 754 * ããã»ããµä¾åã®åæå657 * プロセッサ依存の初期化 755 658 */ 756 659 extern void prc_initialize( void ); 757 660 758 661 /* 759 * ããã»ããµä¾åã®çµäºæå¦ç662 * プロセッサ依存の終了時処理 760 663 */ 761 664 extern void prc_terminate( void ); … … 764 667 #ifndef OMIT_DEFAULT_INT_HANDLER 765 668 /* 766 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã669 * 未登録の割込みが発生した場合に呼び出される 767 670 */ 768 671 void default_int_handler( void ); … … 771 674 #ifndef OMIT_DEFAULT_EXC_HANDLER 772 675 /* 773 * æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã676 * 未登録の例外が発生した場合に呼び出される 774 677 */ 775 678 void default_exc_handler( void ); -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_inline_symbols.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 9 9 * Copyright (C) 2013 by Mitsuhiro Matsuura 10 10 * 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 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * @(#) $Id$ … … 57 42 58 43 /* 59 * ã³ã³ãã¤ã©ä¾åå®ç¾©44 * コンパイラ依存定義 60 45 */ 61 46 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_insn.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 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プロジェクトを免責すること. 46 33 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 50 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 51 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 36 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 37 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 52 38 * 53 39 */ 54 40 55 41 /* 56 * ããã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©42 * プロセッサの特殊命令のインライン関数定義 57 43 */ 58 44 … … 72 58 73 59 /* 74 * I ãã©ã°, IPLãåå¾ããããã®ãã¯ãå®ç¾©60 * Iフラグ, IPLを取得するためのマクロ定義 75 61 */ 76 62 #define PSW_I_MASK ( 0x00010000UL ) … … 79 65 80 66 /* 81 * ããã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã®ç¾å¨å¤ã®èªåºã67 * プロセッサステータスレジスタ(PSW)の現在値の読出し 82 68 */ 83 69 #pragma inline_asm current_psw … … 90 76 91 77 /* 92 * ããã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã¸è¨å®78 * プロセッサステータスレジスタ(PSW)へ設定 93 79 */ 94 80 #pragma inline_asm set_psw … … 101 87 102 88 /* 103 * IPL ã®ç¾å¨å¤ã®èªåºã89 * IPLの現在値の読出し 104 90 */ 105 91 Inline uint32_t … … 111 97 112 98 /* 113 * IPL ã¸è¨å®99 * IPLへ設定 114 100 */ 115 101 Inline void … … 121 107 122 108 /* 123 * NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®ç¦æ¢109 * NMIを除くすべての割込みの禁止 124 110 */ 125 111 #pragma inline_asm disint … … 132 118 133 119 /* 134 * NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®è¨±å¯120 * NMIを除くすべての割込みの許可 135 121 */ 136 122 #pragma inline_asm enaint … … 143 129 144 130 /* 145 * ã¨ã³ãã£ã¢ã³å¤æ16bit131 * エンディアン変換 16bit 146 132 */ 147 133 #pragma inline_asm rev_endian_uint16 … … 153 139 154 140 /* 155 * ã¨ã³ãã£ã¢ã³å¤æ32bit141 * エンディアン変換 32bit 156 142 */ 157 143 #pragma inline_asm rev_endian_uint32 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 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 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 */ 53 38 54 39 /* 55 * kernel.h ã®ããã»ããµä¾åé¨ï¼RX630ç¨ï¼40 * kernel.hのプロセッサ依存部(RX630用) 56 41 * 57 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯58 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã59 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼42 * このインクルードファイルは,target_kernel.h(または,そこからインク 43 * ルードされるファイル)のみからインクルードされる.他のファイルから 44 * 直接インクルードしてはならない. 60 45 */ 61 46 … … 64 49 65 50 /* 66 * ã«ã¼ãã«æ¬ä½ãã³ã³ãã¤ã«ããããã®ãã¯ãå®ç¾©51 * カーネル本体をコンパイルするためのマクロ定義 67 52 * 68 * æ¬ç°å¢ã§ã¯1é¢æ°ã1ãªãã¸ã§ã¯ããã¡ã¤ã«ã«ã³ã³ãã¤ã«ãããã¨ãã§ããªãããï¼69 * ALLFUNC ãã¯ããå®ç¾©ããï¼53 * 本環境では1関数を1オブジェクトファイルにコンパイルすることができないため, 54 * ALLFUNCマクロを定義する. 70 55 */ 71 56 #define ALLFUNC … … 73 58 74 59 /* 75 * ãµãã¼ãããæ©è½ã®å®ç¾©60 * サポートする機能の定義 76 61 */ 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をサポートする */ 79 64 80 65 81 66 /* 82 * ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå 83 度ã®ç¯å² 67 * カーネル管理の割込み優先度の範囲 84 68 * 85 * TMIN_INTPRIã®å®ç¾©ãå¤æ´ãããã¨ã§ï¼ã©ã®ã¬ãã«ãããé«ãå²è¾¼ã¿åªå 86 度 87 * ãæã¤ãã®ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ããããå¤æ´ã§ããï¼ 69 * TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度 70 * を持つものをカーネル管理外の割込みとするかを変更できる. 88 71 * 89 * TMIN_INTPRI ã«è¨å®ã§ããå¤ã¯ï¼-15ï½-1ã®ç¯å²ã§ããï¼ä¾ãã°TMIN_INTPRI90 * ã-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 * 設けないことになる. 93 76 */ 94 77 #ifndef TMIN_INTPRI 95 #define TMIN_INTPRI ( -15 ) /* å²è¾¼ã¿åªå 96 度ã®æå°å¤ï¼æé«å¤ï¼*/ 78 #define TMIN_INTPRI ( -15 ) /* 割込み優先度の最小値(最高値)*/ 97 79 #endif /* TMIN_INTPRI */ 98 #define TMAX_INTPRI ( -1 ) /* å²è¾¼ã¿åªå 99 度ã®æ大å¤ï¼æä½å¤ï¼ */ 80 #define TMAX_INTPRI ( -1 ) /* 割込み優先度の最大値(最低値) */ 100 81 101 82 102 83 /* 103 * å²è¾¼ã¿å±æ§ã®å®ç¾©84 * 割込み属性の定義 104 85 */ 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 ) /* 両エッジトリガ */ 108 89 109 #define TA_LOWLEVEL UINT_C( 0x10 ) /* L ã¬ãã«*/90 #define TA_LOWLEVEL UINT_C( 0x10 ) /* Lレベル */ 110 91 111 92 112 93 /* 113 * ããã©ã«ãã®å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®æç¡94 * デフォルトの割込み/例外ハンドラの有無 114 95 */ 115 96 /*#define OMIT_DEFAULT_INT_HANDLER*/ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 9 9 # Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 # 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 # の責任を負わない. 54 39 # 55 40 # $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $ … … 57 42 58 43 # 59 # ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾åé¨ï¼RXç¨ï¼60 # 61 62 # 63 # å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å®ç¾©64 # 65 # RX630 ã§ã¯å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã1対1ã§å¯¾å¿ããï¼44 # パス2の生成スクリプトのコア依存部(RX用) 45 # 46 47 # 48 # 割込み番号と割込みハンドラ番号の定義 49 # 50 # RX630では割込み番号と割込みハンドラ番号が1対1で対応する. 66 51 # 67 52 $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) ] … … 69 54 70 55 # 71 # ä¾å¤çªå·ã®å®ç¾©72 # 73 # åºå®ãã¯ã¿ãã¼ãã«ã®ãã¯ã¿ãã¼ãã«ã¢ãã¬ã¹ã®å°ããé çªã«ä¾å¤çªå·ãå²æ¯ãï¼74 # ( äºç´é åãå«ã)56 # 例外番号の定義 57 # 58 # 固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る. 59 # (予約領域も含む) 75 60 # 76 61 … … 78 63 79 64 # 80 # INT å²è¾¼ã¿ã®çªå·65 # INT割込みの番号 81 66 # 82 67 … … 84 69 85 70 # 86 # å²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ä¾å¤çªå·ã®ç¯å²87 # 88 # ( äºç´é åãå«ã)71 # 割込み番号,割込みハンドラ番号,例外番号の範囲 72 # 73 # (予約領域も含む) 89 74 # 90 75 … … 94 79 95 80 # 96 # ATT_ISR ã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·81 # ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号 97 82 # 98 83 … … 102 87 103 88 # 104 # DEF_INT ï¼DEF_EXCã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·89 # DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号 105 90 # 106 91 … … 110 95 111 96 # 112 # CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨å²è¾¼ã¿åªå 113 度 97 # CFG_INTで使用できる割込み番号と割込み優先度 114 98 # 115 99 … … 119 103 120 104 # 121 # ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½/ä¾å¤ç®¡çæ©è½ã®åæåå¦çã使ç¨ãã105 # ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する 122 106 # 123 107 … … 127 111 128 112 # 129 # ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®113 # スタックサイズのチェック方法指定 130 114 # 131 115 … … 134 118 135 119 # 136 # ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ 137 # 138 # ã¿ã¹ã¯èµ·åæã«4byte, 139 # å²è¾¼ã¿å 140 ¥å£å¦çã«ã¦48byte, CPUä¾å¤å 141 ¥å£å¦çã«ã¦84byte, 142 # ã§ãããã, æå°å¤ã¯88byteã¨ãã. 120 # タスクスタックサイズの最小値 121 # 122 # タスク起動時に4byte, 123 # 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 124 # であるため, 最小値は88byteとする. 143 125 # 144 126 … … 146 128 147 129 # 148 # å®æ°å®ç¾©130 # 定数定義 149 131 # 150 132 … … 152 134 153 135 # 154 # ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§136 # ターゲット定義の割込み要求ライン属性 155 137 # 156 138 $TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL 157 139 158 140 # 159 # ã¿ã¼ã²ããä¾åã®å²è¾¼ã¿ãã³ãã©å±æ§ã®å®ç¾©141 # ターゲット依存の割込みハンドラ属性の定義 160 142 # 161 143 … … 164 146 165 147 # 166 # ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãã³ãã©ã¯åºå®ãããªããã,148 # カーネル管理外割込みハンドラは固定させないため, 167 149 # INTNO_FIX_KERNEL 168 150 # INHNO_FIX_KERNEL 169 151 # INHNO_FIX_NONKERNEL 170 152 # INHNO_FIX_NONKERNEL 171 # ãå®ç¾©ããªã.153 # を定義しない. 172 154 # 173 155 … … 176 158 177 159 # 178 # æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã160 # 標準テンプレートファイルのインクルード 179 161 # 180 162 IncludeTrb("kernel/kernel.trb") 181 163 182 164 # 183 # å²è¾¼ã¿çªå·ããå²è¾¼ã¿åªå 184 度åã³å±æ§ãåãåºããã¼ãã« 165 # 割込み番号から割込み優先度及び属性を取り出すテーブル 185 166 # 186 167 $kernelCfgC.comment_header("Interrupt Level and Attribute Table") … … 201 182 202 183 # 203 # å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©184 # 割込みベクタ及び割込みハンドラ定義 204 185 # 205 186 $kernelCfgAsm.add(<<EOS) 206 187 ; 207 ; RX630 ã¢ã¼ããã¯ãã£ä¾ååºåãã¡ã¤ã«208 ; 209 ; å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©188 ; RX630アーキテクチャ依存出力ファイル 189 ; 190 ; 割込みベクタ及び割込みハンドラ定義 210 191 ; 211 192 … … 277 258 $kernelCfgAsm.append(<<EOS) 278 259 ; 279 ; å¯å¤ãã¯ã¿ãã¼ãã«260 ; 可変ベクタテーブル 280 261 ; 281 262 … … 306 287 $kernelCfgAsm.append(<<EOS) 307 288 ; 308 ; åºå®ãã¯ã¿ãã¼ãã«289 ; 固定ベクタテーブル 309 290 ; 310 291 … … 322 303 .lword 0H 323 304 .lword 0H 324 .lword 0FFFFFFFFH ; å¶å¾¡ã³ã¼ã, IDã³ã¼ã1 - 3325 .lword 0FFFFFFFFH ; ID ã³ã¼ã4 - 7326 .lword 0FFFFFFFFH ; ID ã³ã¼ã8 - 11327 .lword 0FFFFFFFFH ; ID ã³ã¼ã12 - 15305 .lword 0FFFFFFFFH ; 制御コード, IDコード1 - 3 306 .lword 0FFFFFFFFH ; IDコード4 - 7 307 .lword 0FFFFFFFFH ; IDコード8 - 11 308 .lword 0FFFFFFFFH ; IDコード12 - 15 328 309 EOS 329 310 (12..30).each do |excnoVal| … … 342 323 343 324 # 344 # å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾åã®ã¨ã©ã¼ãã§ãã¯325 # 割込み要求ライン属性に関するターゲット依存のエラーチェック 345 326 # 346 327 $cfgData[:CFG_INT].each do |key, params| 347 # IRQ å²è¾¼ã¿çªå·ãã©ããããã§ãã¯328 # IRQ割込み番号かどうかをチェック 348 329 if $INTNO_INT.include?(key) 349 # TA_POSEDGE ã¨TA_NEGEDGEãåæã«è¨å®ããã¦ããå ´å330 # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合 350 331 if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE 351 332 error_illegal_sym("E_RSATR", params, :intatr, :intno) 352 333 end 353 # TA_POSEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å334 # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合 354 335 if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE 355 336 error_illegal_sym("E_RSATR", params, :intatr, :intno) 356 337 end 357 # TA_NEGEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å338 # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 358 339 if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE 359 340 error_illegal_sym("E_RSATR", params, :intatr, :intno) 360 341 end 361 # TA_POSEDGE ã¨TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å342 # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 362 343 if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE 363 344 error_illegal_sym("E_RSATR", params, :intatr, :intno) 364 345 end 365 346 else 366 # IRQ å²è¾¼ã¿ä»¥å¤ã®å²è¾¼ã¿ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãæå®ããã¦ããå ´å347 # IRQ割込み以外の割込みに対して割込み属性が指定されている場合 367 348 if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0 368 349 error_illegal_sym("E_RSATR", params, :intatr, :intno) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_offset.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼3 # オフセットファイル生成用Rubyテンプレート(ARM用) 4 4 # 5 5 # $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $ … … 7 7 8 8 # 9 # ã¿ã¼ã²ããéä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã9 # ターゲット非依存部のインクルード 10 10 # 11 11 IncludeTrb("kernel/genoffset.trb") 12 12 13 13 # 14 # ãã£ã¼ã«ãã®ãªãã»ããã®å®ç¾©ã®çæ14 # フィールドのオフセットの定義の生成 15 15 # 16 16 GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
-
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sil.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 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用) 55 40 */ 56 41 … … 64 49 65 50 /* 66 * å 67 ¨å²è¾¼ã¿ç¦æ¢ 51 * 全割込み禁止 68 52 */ 69 53 Inline uint32_t … … 80 64 81 65 /* 82 * å 83 ¨å²è¾¼ã¿è¨±å¯ 66 * 全割込み許可 84 67 */ 85 68 Inline void … … 93 76 94 77 /* 95 * å 96 ¨å²è¾¼ã¿ããã¯ç¶æ 97 ã®å¶å¾¡ 78 * 全割込みロック状態の制御 98 79 */ 99 80 #define SIL_PRE_LOC uint32_t TOPPERS_i_psw; … … 103 84 104 85 /* 105 * ã¨ã³ãã£ã¢ã³ã®å転86 * エンディアンの反転 106 87 * 107 * æ¬éçºç°å¢ã§ã¯ã¨ã³ãã£ã¢ã³å¤æå½ä»¤ãåå¨ãããã,108 * ã¢ã¼ããã¯ãã£ä¾åé¨ã«ã¦ãã¯ããä¸æ¸ããã.88 * 本開発環境ではエンディアン変換命令が存在するため, 89 * アーキテクチャ依存部にてマクロを上書きする. 109 90 */ 110 91 #define TOPPERS_SIL_REV_ENDIAN_UINT16( data ) \ … … 115 96 116 97 /* 117 * å¾®å°æéå¾ 118 ã¡ 98 * 微少時間待ち 119 99 */ 120 100 extern void sil_dly_nse( ulong_t dlytim ); … … 124 104 125 105 /* 126 * ããã»ããµã®ã¨ã³ãã£ã¢ã³127 */ 128 #define SIL_ENDIAN_LITTLE /* ãªãã«ã¨ã³ãã£ã¢ã³*/106 * プロセッサのエンディアン 107 */ 108 #define SIL_ENDIAN_LITTLE /* リトルエンディアン */ 129 109 130 110 #ifndef TOPPERS_MACRO_ONLY 131 111 132 112 /* 133 * ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°113 * メモリ空間アクセス関数 134 114 */ 135 115 #define TOPPERS_OMIT_SIL_ACCESS 136 116 137 117 /* 138 * 8 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿118 * 8ビット単位の読出し/書込み 139 119 */ 140 120 #ifdef UINT8_MAX … … 158 138 159 139 /* 160 * 16 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿140 * 16ビット単位の読出し/書込み 161 141 */ 162 142 … … 176 156 } 177 157 178 #ifdef SIL_ENDIAN_BIG /* ããã°ã¨ã³ãã£ã¢ã³ããã»ããµ*/158 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 179 159 180 160 #define sil_reh_bem(mem) sil_reh_mem(mem) … … 203 183 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */ 204 184 #else /* SIL_ENDIAN_BIG */ 205 #ifdef SIL_ENDIAN_LITTLE /* ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµ*/185 #ifdef SIL_ENDIAN_LITTLE /* リトルエンディアンプロセッサ */ 206 186 207 187 #define sil_reh_lem(mem) sil_reh_mem(mem) … … 237 217 238 218 /* 239 * 32 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿219 * 32ビット単位の読出し/書込み 240 220 */ 241 221 … … 255 235 } 256 236 257 #ifdef SIL_ENDIAN_BIG /* ããã°ã¨ã³ãã£ã¢ã³ããã»ããµ*/237 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 258 238 259 239 #define sil_rew_bem(mem) sil_rew_mem(mem) … … 281 261 282 262 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */ 283 #else /* SIL_ENDIAN_BIG */ /* ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµ*/263 #else /* SIL_ENDIAN_BIG */ /* リトルエンディアンプロセッサ */ 284 264 285 265 #define sil_rew_lem(mem) sil_rew_mem(mem) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 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 * 免責すること. 43 29 * 44 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 47 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 48 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 49 * ã®è²¬ä»»ãè² ããªãï¼ 30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 50 35 * 51 36 */ 52 37 53 38 /* 54 * t_stddef.h ã®ããã»ããµä¾åé¨ï¼RX630ç¨ï¼39 * t_stddef.hのプロセッサ依存部(RX630用) 55 40 * 56 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯57 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã58 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼41 * このインクルードファイルは,target_stddef.h(または,そこからインク 42 * ルードされるファイル)のみからインクルードされる.他のファイルから 43 * 直接インクルードしてはならない. 59 44 */ 60 45 … … 63 48 64 49 /* 65 * ã¿ã¼ã²ãããèå¥ããããã®ãã¯ãã®å®ç¾©50 * ターゲットを識別するためのマクロの定義 66 51 */ 67 #define TOPPERS_RX630 /* ããã»ããµç¥ç§°*/52 #define TOPPERS_RX630 /* プロセッサ略称 */ 68 53 69 54 #endif /* TOPPERS_PRC_STDDEF_H */ -
Property svn:mime-type
changed from
-
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 11 11 ; Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 ; 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 ; 免責すること. 49 35 ; 50 ; æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 51 ã 52 ; ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 53 ; ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 54 ; ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 55 ; ã®è²¬ä»»ãè² ããªãï¼ 36 ; 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 ; よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 ; に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 ; アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 ; の責任を負わない. 56 41 ; 57 42 ; 58 43 59 44 ; 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 116 78 ; 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 122 83 ; add #TCB_sp, r15, r5 123 84 ; mov.l r0, [r5] 124 ; åãªãã»ããå¤ãå¤æã, æ¡ä»¶ã¢ã»ã³ãã«ã«ããã³ã¼ããåãæ¿ãã125 ; 126 127 ; 128 ; æ§é ä½ã¢ã¯ã»ã¹ã®ãªãã»ããå®ç¾©85 ; 各オフセット値を判断し, 条件アセンブルによりコードを切り替える 86 ; 87 88 ; 89 ; 構造体アクセスのオフセット定義 129 90 ; 130 91 .include offset.inc 131 92 132 93 ; 133 ; å種EQUå®ç¾©(Hãã¡ã¤ã«ã®#defineå®ç¾©)94 ; 各種EQU定義(Hファイルの#define定義) 134 95 ; 135 96 .include asm_config.inc … … 183 144 184 145 ; 185 ; TCB_sp ã¸ã®æ¸è¾¼ã¿ãã¯ã146 ; TCB_sp への書込みマクロ 186 147 ; 187 148 st_TCB_sp .macro src, tcb, tmp … … 195 156 196 157 ; 197 ; TCB_sp ããã®èªåºããã¯ã158 ; TCB_sp からの読出しマクロ 198 159 ; 199 160 ld_TCB_sp .macro dst, tcb, tmp … … 207 168 208 169 ; 209 ; TCB_pc ã¸ã®æ¸è¾¼ã¿ãã¯ã170 ; TCB_pc への書込みマクロ 210 171 ; 211 172 st_TCB_pc .macro src, tcb, tmp … … 219 180 220 181 ; 221 ; TCB_pc ããã®èªåºããã¯ã182 ; TCB_pc からの読出しマクロ 222 183 ; 223 184 ld_TCB_pc .macro dst, tcb, tmp … … 231 192 232 193 ; 233 ; TCB_texptn ããã®èªåºããã¯ã194 ; TCB_texptn からの読出しマクロ 234 195 ; 235 196 ld_TCB_texptn .macro dst, tcb, tmp … … 243 204 244 205 ; 245 ; TCB_p_tinib ããã®èªåºããã¯ã206 ; TCB_p_tinib からの読出しマクロ 246 207 ; 247 208 ld_TCB_p_tinib .macro dst, tcb, tmp … … 255 216 256 217 ; 257 ; TINIB_exinf ããã®èªåºããã¯ã218 ; TINIB_exinf からの読出しマクロ 258 219 ; 259 220 ld_TINIB_exinf .macro dst, tinib, tmp … … 267 228 268 229 ; 269 ; TINIB_task ããã®èªåºããã¯ã230 ; TINIB_task からの読出しマクロ 270 231 ; 271 232 ld_TINIB_task .macro dst, tinib, tmp … … 282 243 283 244 ; 284 ; APIããã®ã¿ã¹ã¯ãã£ã¹ãããã£å 285 ¥å£ 286 ; 287 ; å¼ã³åºãæ¡ä»¶: 288 ; ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç 289 §) 290 ; 291 ; ããã§ã¯, ã³ã³ããã¹ãã®éé¿ã¨, å®è¡åéçªå°ã®è¨å®ããã. 245 ; APIからのタスクディスパッチャ入口 246 ; 247 ; 呼び出し条件: 248 ; ・ディスパッチャモード(ファイルヘッダ参照) 249 ; 250 ; ここでは, コンテキストの退避と, 実行再開番地の設定をする. 292 251 ; 293 252 __kernel_dispatch: 294 pushm r6-r13 ; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å253 pushm r6-r13 ; 非スクラッチレジスタ保存 295 254 mov.l #__kernel_p_runtsk, r15 296 255 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に保存 299 258 bra dispatcher 300 259 301 260 ; 302 ; APIã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£ 303 ; 304 ; å¼ã³åºãæ¡ä»¶: 305 ; ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç 306 §) 307 ; 308 ; ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, ã³ã³ããã¹ãã®å¾©å¸°ããã. 261 ; APIへのタスクディスパッチャ出口 262 ; 263 ; 呼び出し条件: 264 ; ・ディスパッチャモード(ファイルヘッダ参照) 265 ; 266 ; ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする. 309 267 ; 310 268 dispatch_r: 311 btst #TCB_enatex_bit, TCB_enatex[r14] ; ã¿ã¹ã¯ä¾å¤å¦ç許å¯?269 btst #TCB_enatex_bit, TCB_enatex[r14] ; タスク例外処理許可? 312 270 bz dispatch_r_rts 313 ld_TCB_texptn r5, r14, r4 ; ä¿çä¾å¤è¦å ããããï¼271 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 314 272 cmp #0, r5 315 273 bz dispatch_r_rts 316 bsr __kernel_call_texrtn ; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡274 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 317 275 dispatch_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ロック解除状態にし, タスクを起動する. 332 286 ; 333 287 __kernel_start_r: 334 288 mov.l #_ext_tsk, r5 335 push.l r5 ; æ»ãçªå°ãã¹ã¿ãã¯ã«ç©ã289 push.l r5 ; 戻り番地をスタックに積む 336 290 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 ; タスクの起動番地を取得 340 293 .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 ) 356 301 .endif 357 302 jmp r5 358 303 359 304 ; 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 ; ここでは, ディスパッチャモードに変更する. 374 315 ; 375 316 __kernel_start_dispatch: 376 317 mov.l #__kernel_intnest, r5 377 mov.w #0, [r5] ; ã¿ã¹ã¯ã³ã³ããã¹ãã«åæã318 mov.w #0, [r5] ; タスクコンテキストに切換え 378 319 .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 のアドレス取得だけは行なう. 398 332 ; 399 333 __exit_and_dispatch: … … 401 335 402 336 ; 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 からきた場合 : 割込みスタック 415 349 ; 416 350 dispatcher: 417 351 .if LOG_DSP_ENTER == 1 418 352 push.l r15 419 mov.l r14, r1 ; å¼æ°(ãã£ã¹ãããå 420 TCB)ãè¨å® 353 mov.l r14, r1 ; 引数(ディスパッチ元TCB)を設定 421 354 bsr _kernel_log_dsp_enter 422 355 pop.l r15 423 356 .endif 424 357 mov.l #__kernel_p_schedtsk, r5 425 mov.l [r5], [r15] ; p_schedtsk ã p_runtsk ã«358 mov.l [r5], [r15] ; p_schedtsk を p_runtsk に 426 359 mov.l [r15], r14 427 360 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 ; タスクスタックポインタを復帰 430 363 .if LOG_DSP_LEAVE == 1 431 364 push.l r14 432 mov.l r14, r1 ; å¼æ°(ãã£ã¹ãããå 433 TCB)ãè¨å® 365 mov.l r14, r1 ; 引数(ディスパッチ先TCB)を設定 434 366 bsr _kernel_log_dsp_leave 435 367 pop.l r14 436 368 .endif 437 369 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つの意味がある. 449 379 ; 450 380 dispatcher_pre_idle: 451 381 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] ; 非タスクコンテキストに切換え 455 385 .if TIPM_LOCK != -15 456 mov.l #__kernel_lock_flag, r5 ; CPUããã¯è§£é¤ç¶æ 457 㸠386 mov.l #__kernel_lock_flag, r5 ; CPUロック解除状態へ 458 387 mov.l #0, [r5] 459 mvtc #0, psw ; åªå 460 度0ã®å²è¾¼ã¿å¦çä¸ãå½è£ 461 388 mvtc #0, psw ; 優先度0の割込み処理中を偽装 462 389 .endif 463 390 464 391 dispatcher_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 なら 471 396 mov.l [r5], r4 472 397 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] ; タスクコンテキストに切換え 477 402 .if TIPM_LOCK != -15 478 mov.l #__kernel_lock_flag, r5 ; CPUããã¯ç¶æ 479 㸠403 mov.l #__kernel_lock_flag, r5 ; CPUロック状態へ 480 404 mov.l #1, [r5] 481 405 mov.l #__kernel_saved_ipl, r5 482 406 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 ; モードとスタックを非タスクコンテキスト用に切り替え. 498 417 ; 499 418 .glb __kernel_call_exit_kernel 500 419 __kernel_call_exit_kernel: 501 420 .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ロック解除状態へ 506 423 mov.l #0, [r5] 507 424 .endif 508 425 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] ; 非タスクコンテキストに切換え 512 429 bsr __kernel_exit_kernel 513 430 bra __kernel_call_exit_kernel … … 515 432 516 433 ; 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レジスタへのオフセット 540 449 ; ACC + FPSW + R14--R15 + R1--R5 + PC 541 450 ; … … 544 453 ret_int: 545 454 .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値取得 547 456 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ロック状態へ 556 461 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値取得 558 463 and #PSW_IPL_MASK, r5 559 464 mov.l #__kernel_saved_ipl, r4 560 465 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 ; 割込み優先度マスク全解除でない状態 568 468 .endif 569 469 mov.l #__kernel_reqflg, r5 … … 571 471 mov.l #__kernel_p_runtsk, r15 572 472 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 へ 574 474 mov.l [r5], r5 575 475 cmp #0, r5 … … 577 477 mov.l #__kernel_p_schedtsk, r5 578 478 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に保存 584 484 bra dispatcher 585 485 586 486 ; 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: ;タスクモニタ用ラベル 598 496 ret_int_r: 599 popm r6-r13 ; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°497 popm r6-r13 ; 非スクラッチレジスタ復帰 600 498 ret_int_r_call_tex: 601 btst #TCB_enatex_bit, TCB_enatex[r14] ; ã¿ã¹ã¯ä¾å¤å¦ç許å¯?499 btst #TCB_enatex_bit, TCB_enatex[r14] ; タスク例外処理許可? 602 500 bz ret_int_r_rte 603 ld_TCB_texptn r5, r14, r4 ; ä¿çä¾å¤è¦å ããããï¼501 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 604 502 cmp #0, r5 605 503 bz ret_int_r_rte 606 bsr __kernel_call_texrtn ; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡504 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 607 505 ret_int_r_rte: 608 506 .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ロック解除状態へ 613 509 mov.l #0, [r5] 614 510 .endif 615 popm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿å¾©å¸°616 mvtaclo r5 ; ACC æä¸ä½16bitã¯0ã§å¾©å¸°511 popm r4-r5 ; アキュムレータ復帰 512 mvtaclo r5 ; ACC最下位16bitは0で復帰 617 513 mvtachi r4 618 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°619 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°514 popc fpsw ; FPUステータスレジスタ復帰 515 popm r14-r15 ; レジスタ復帰 620 516 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 ; 上方向に向かって積み上げられるものとする. 646 540 ; 647 541 ; ------------------------- … … 671 565 ; -------------------------(SP + 44) 672 566 ; 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 ; ディスパッチが要求された場合に,ディスパッチされない. 687 578 ; 688 579 _kernel_interrupt: 689 pushm r14-r15 ; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿690 pushc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿éé¿580 pushm r14-r15 ; スクラッチレジスタを退避 581 pushc fpsw ; FPUステータスレジスタ退避 691 582 mvfacmi r5 692 shll #16, r5 ; ACC æä¸ä½16bitã¯0ã¨ãã583 shll #16, r5 ; ACC最下位16bitは0とする 693 584 mvfachi r4 694 pushm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿éé¿585 pushm r4-r5 ; アキュムレータ退避 695 586 mov.l #__kernel_intnest, r5 696 587 mov.w [r5], r4 697 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã588 add #1, r4 ; ネスト回数をインクリメント 698 589 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 ; 割込み用のスタックへ切替える 704 595 mov.l [r5], r0 705 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ 706 interrupt_from_int: ; å¤éå²è¾¼ã¿ 707 setpsw i ; å²è¾¼ã¿è¨±å¯(CPUããã¯è§£é¤ç¶æ 708 ) 596 push.l r3 ; タスクスタックを保持 597 interrupt_from_int: ; 多重割込み 598 setpsw i ; 割込み許可(CPUロック解除状態) 709 599 710 600 .if LOG_INH_LEAVE == 1 711 push.l r1 ; ãã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ601 push.l r1 ; ログトレースの引数を保持 712 602 .endif 713 603 714 604 .if LOG_INH_ENTER == 1 715 605 push.l r2 716 bsr _kernel_log_inh_enter ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã 717 ; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å 718 ¥ã£ã¦ãã 606 bsr _kernel_log_inh_enter ; ログトレース関数の呼出し 607 ; 引数の割込み要因番号は既にr1に入っている 719 608 pop r2 720 609 .endif 721 610 722 jsr r2 ; C ã«ã¼ãã³å¼ã³åºã611 jsr r2 ; Cルーチン呼び出し 723 612 724 613 .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ロック状態) 731 619 mov.l #__kernel_intnest, r5 732 620 mov.w [r5], r4 733 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã621 sub #1, r4 ; ネスト回数をデクリメント 734 622 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 ; ディスパッチ要求がないか? 740 628 mov.l [r5], r5 741 629 cmp #1, r5 742 bz ret_int ; ããã° ret_int ã¸ã¸ã£ã³ã630 bz ret_int ; あれば ret_int へジャンプ 743 631 interrupt_return: 744 popm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿å¾©å¸°745 mvtaclo r5 ; ACC æä¸ä½16bitã¯0ã§å¾©å¸°632 popm r4-r5 ; アキュムレータ復帰 633 mvtaclo r5 ; ACC最下位16bitは0で復帰 746 634 mvtachi r4 747 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°748 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°635 popc fpsw ; FPUステータスレジスタ復帰 636 popm r14-r15 ; レジスタ復帰 749 637 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 ; する目的で退避しており, 出口処理では保存内容を破棄すればよい. 779 662 ; 780 663 ; ------------------------- 781 ; | CPU ä¾å¤è¦å çªå·| <----- p_excinf664 ; | CPU例外要因番号 | <----- p_excinf 782 665 ; ------------------------- (intptr_t)(p_excinf + 0) 783 666 ; | R6(4byte) | … … 822 705 ; ------------------------- (intptr_t)(p_excinf + 80) 823 706 ; 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例外ハンドラ呼出し後に不要となるスタック情報のサイズ 850 728 ; EXCNO + R6--R13 851 729 ; … … 853 731 854 732 _kernel_exception: 855 pushm r14-r15 ; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿733 pushm r14-r15 ; スクラッチレジスタを退避 856 734 pushc fpsw 857 735 mvfacmi r5 858 shll #16, r5 ; ACC æä¸ä½16bitã¯0ã¨ãã736 shll #16, r5 ; ACC最下位16bitは0とする 859 737 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 ; スタックポインタを取り出し 864 742 mov.l EXC_GET_PSW_OFFSET[r3], r5 865 743 and #PSW_I_MASK, r5 866 bz exception_nonkernel ; å 867 ¨å²è¾¼ã¿ç¦æ¢(CPUããã¯)ç¶æ 868 ãªã管çå¤ 744 bz exception_nonkernel ; 全割込み禁止(CPUロック)状態なら管理外 869 745 .if TIPM_LOCK != -15 870 746 mov.l EXC_GET_PSW_OFFSET[r3], r5 871 747 and #PSW_IPL_MASK, r5 872 748 cmp #IPL_LOCK, r5 873 bgt exception_nonkernel ; IPL ãCPUããã¯ã¬ãã«ä»¥ä¸ãªã管çå¤749 bgt exception_nonkernel ; IPLがCPUロックレベル以上なら管理外 874 750 .endif 875 751 mov.l #__kernel_intnest, r5 876 752 mov.w [r5], r4 877 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã753 add #1, r4 ; ネスト回数をインクリメント 878 754 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 ; 割込み用のスタックへ切替える 883 759 mov.l [r5], r0 884 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ885 exception_from_int: ; å¤éå²è¾¼ã¿760 push.l r3 ; タスクスタックを保持 761 exception_from_int: ; 多重割込み 886 762 mov.l EXC_GET_PSW_OFFSET[r3], r5 887 mvtc r5, psw ; CPUä¾å¤çºçåã®ç¶æ 888 ã«æ»ã 763 mvtc r5, psw ; CPU例外発生前の状態に戻す 889 764 .if LOG_EXC_LEAVE == 1 890 push.l r1 ; ãã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ765 push.l r1 ; ログトレースの引数を保持 891 766 .endif 892 767 893 768 .if LOG_EXC_ENTER == 1 894 769 pushm r2-r3 895 bsr _kernel_log_exc_enter ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã 896 ; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å 897 ¥ã£ã¦ãã 770 bsr _kernel_log_exc_enter ; ログトレース関数の呼出し 771 ; 引数の割込み要因番号は既にr1に入っている 898 772 popm r2-r3 899 773 .endif 900 774 901 mov.l r3, r1 ; å¼æ°ã®p_excinfãè¨å®902 jsr r2 ; C ã«ã¼ãã³å¼ã³åºã775 mov.l r3, r1 ; 引数のp_excinfを設定 776 jsr r2 ; Cルーチン呼び出し 903 777 904 778 .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 ; ここからは必ず割込み禁止 911 784 mov.l #__kernel_intnest, r5 912 785 mov.w [r5], r4 913 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã786 sub #1, r4 ; ネスト回数をデクリメント 914 787 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 ; ディスパッチ要求がないか? 920 793 mov.l [r5], r5 921 794 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 へジャンプ 926 798 927 799 exception_nonkernel: 928 800 mov.l #__kernel_intnest, r5 929 801 mov.w [r5], r4 930 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã802 add #1, r4 ; ネスト回数をインクリメント 931 803 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 ; 割込み用のスタックへ切替える 936 808 mov.l [r5], r0 937 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ938 exception_from_nonkernelint: ; å¤éå²è¾¼ã¿809 push.l r3 ; タスクスタックを保持 810 exception_from_nonkernelint: ; 多重割込み 939 811 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 ; ここからは必ず割込み禁止 948 818 mov.l #__kernel_intnest, r5 949 819 mov.w [r5], r4 950 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã820 sub #1, r4 ; ネスト回数をデクリメント 951 821 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 ; タスクのスタックに戻す 956 826 957 827 exception_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で復帰 962 831 mvtachi r4 963 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°964 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°832 popc fpsw ; FPUステータスレジスタ復帰 833 popm r14-r15 ; レジスタ復帰 965 834 popm r1-r5 966 rte ; å²è¾¼ã¿åã®å¦çã«æ»ã 967 968 969 ; 970 ; å¾®å°æéå¾ 971 ã¡ 835 rte ; 割込み前の処理に戻る 836 837 838 ; 839 ; 微少時間待ち 972 840 ; 973 841 _sil_dly_nse: -
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_syssvc.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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プロジェクトを免責すること. 43 30 * 44 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 47 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 48 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 33 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 34 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 49 35 * 50 36 */ 51 37 52 38 /* 53 * ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼RX630ç¨ï¼39 * テストプログラムのターゲット依存定義(RX630用) 54 40 */ 55 41 … … 58 44 59 45 /* 60 * èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾åé¨ã®èä½æ¨©è¡¨ç¤ºã61 * 追å ããããã®ãã¯ãï¼46 * 起動メッセージにターゲット依存部の著作権表示を 47 * 追加するためのマクロ. 62 48 */ 63 49 #define PRC_COPYRIGHT \ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 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 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 */ 53 38 54 39 /* 55 * ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼RX630ç¨ï¼40 * テストプログラムのターゲット依存定義(RX630用) 56 41 */ 57 42 … … 59 44 #define TOPPERS_PRC_TEST_H 60 45 61 #define CPUEXC1 25 /* æµ®åå°æ°ç¹ä¾å¤*/46 #define CPUEXC1 25 /* 浮動小数点例外 */ 62 47 #define RAISE_CPU_EXCEPTION trigger_cpu_exception() 63 48 -
Property svn:mime-type
changed from
-
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 6 6 ;* Copyright (C) 2010 by Witz Corporation, JAPAN 7 7 ;* 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 ;* 害からも,上記著作権者を免責すること. 37 28 ;* 38 ;* æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 39 ã¯ï¼ 40 ;* æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã 41 ;* ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã 42 ;* ããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 29 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者は, 30 ;* 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ 31 ;* ない.また,本ソフトウェアの利用により直接的または間接的に生じたい 32 ;* かなる損害に関しても,その責任を負わない. 43 33 ;* 44 34 … … 49 39 _trigger_cpu_exception: 50 40 ; 51 ; CPU ä¾å¤ã®çºç41 ; CPU例外の発生 52 42 ; 53 ; ã¼ãå²ãç®ãè¡ããã¨ã§, æµ®åå°æ°ç¹ä¾å¤ã54 ; çºçããã.43 ; ゼロ割り算を行うことで, 浮動小数点例外を 44 ; 発生させる. 55 45 ; 56 46 mvtc #00001000H, fpsw -
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_unrename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
-
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * RX630 ã«ä¾åããå®ç¾©42 * RX630に依存する定義 58 43 */ 59 44 #ifndef TOPPERS_RX630_H … … 61 46 62 47 /* 63 * CPU ä¾å¤ãã³ãã©çªå·ã®å®ç¾©(åºå®ãã¯ã¿ãã¼ãã«)48 * CPU例外ハンドラ番号の定義(固定ベクタテーブル) 64 49 * 65 * çªå·ã®ç¯å²ã¯0 - 3166 */ 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 * 割込み番号の定義(可変ベクタテーブル) 75 60 */ 76 61 #define INT_BUSERR 16 … … 261 246 262 247 /* 263 * åã¢ã¸ã¥ã¼ã«ã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 264 å ± 248 * 各モジュールのレジスタ及び設定ビット情報 265 249 */ 266 250 … … 268 252 269 253 /* 270 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Aï¼MSTPCRAï¼254 * モジュールストップコントロールレジスタA(MSTPCRA) 271 255 */ 272 256 #define SYSTEM_MSTPCRA_ADDR ( ( volatile uint32_t __evenaccess * )0x00080010 ) … … 306 290 307 291 /* 308 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Bï¼MSTPCRBï¼292 * モジュールストップコントロールレジスタB(MSTPCRB) 309 293 */ 310 294 #define SYSTEM_MSTPCRB_ADDR ( ( volatile uint32_t __evenaccess * )0x00080014 ) … … 343 327 344 328 /* 345 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Cï¼MSTPCRCï¼329 * モジュールストップコントロールレジスタC(MSTPCRC) 346 330 */ 347 331 #define SYSTEM_MSTPCRC_ADDR ( ( volatile uint32_t __evenaccess * )0x00080018 ) … … 380 364 381 365 /* 382 * ã¯ããã¯çºçåè·¯366 * クロック発生回路 383 367 */ 384 368 #define SYSTEM_SCKCR_ADDR ( ( volatile uint32_t __evenaccess * )0x00080020 ) … … 400 384 401 385 /* 402 * ãããã¯ãã¬ã¸ã¹ã¿386 * プロテクトレジスタ 403 387 */ 404 388 #define SYSTEM_PRCR_ADDR ( ( volatile uint16_t __evenaccess * )0x000803FE ) 405 389 406 390 /* 407 * å²ãè¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿391 * 割り込み要求レジスタ 408 392 */ 409 393 #define ICU_IR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087000 ) … … 666 650 667 651 /* 668 * å²ãè¾¼ã¿è¦æ±å 669 è¨å®ã¬ã¸ã¹ã¿ 652 * 割り込み要求先設定レジスタ 670 653 */ 671 654 #define ICU_ISELR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087100 ) … … 928 911 929 912 /* 930 * å²ãè¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿913 * 割り込み要求許可レジスタ 931 914 */ 932 915 #define ICU_IER02_ADDR ( ( volatile uint8_t __evenaccess * )0x00087202 ) … … 969 952 970 953 /* 971 * å²ãè¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿i(i=0ï½253)ã®è¨å®954 * 割り込み要因プライオリティレジスタi(i=0~253)の設定 972 955 */ 973 956 #define ICU_IPR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087300 ) … … 1231 1214 1232 1215 /* 1233 * IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿1216 * IRQコントロールレジスタ 1234 1217 */ 1235 1218 #define ICU_IRQ0_ADDR ( ( volatile uint8_t __evenaccess * )0x00087500 ) … … 1253 1236 1254 1237 /* 1255 * åãã£ã³ãã«ã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 1256 å ± 1238 * 各チャンネルのレジスタ及び設定ビット情報 1257 1239 */ 1258 1240 #define CMT_CMSTR0_ADDR ( ( volatile uint16_t __evenaccess * )0x00088000 ) … … 1363 1345 1364 1346 /* 1365 * I/Oãã¼ãã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 1366 å ± 1347 * I/Oポートのレジスタ及び設定ビット情報 1367 1348 */ 1368 1349 #define PORT0_PDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C000 ) … … 1534 1515 1535 1516 /* 1536 * ãã«ããã¡ã³ã¯ã·ã§ã³ãã³ã³ã³ããã¼ã©ã®ã¬ã¸ã¹ã¿æ 1537 å ± 1517 * マルチファンクションピンコントローラのレジスタ情報 1538 1518 */ 1539 1519 #define MPC_PFUSB0_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C114 ) … … 1674 1654 1675 1655 /* 1676 * ãªã¢ã«ã¿ã¤ã ã¯ããã¯1656 * リアルタイムクロック 1677 1657 */ 1678 1658 #define RTC_R64CNT_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C400 ) … … 1686 1666 1687 1667 /* 1688 * 12 ãããA/D ã³ã³ãã¼ã¿1668 * 12 ビットA/D コンバータ 1689 1669 */ 1690 1670 #define S12AD_ADCSR_ADDR ( ( volatile uint8_t __evenaccess * )0x00089000 ) … … 1915 1895 1916 1896 /* 1917 * UART é¢é£ã®å®ç¾©1897 * UART関連の定義 1918 1898 * 1919 * pdic ã®rx600/rx630_uart.cã§ä½¿ç¨ããï¼1920 */ 1921 /* 1922 * ã·ãªã¢ã«I/Oã®åæ°1899 * pdicのrx600/rx630_uart.cで使用する. 1900 */ 1901 /* 1902 * シリアルI/Oの個数 1923 1903 */ 1924 1904 #define TNUM_SIOP ( 2 ) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 */ 54 39 55 40 /* 56 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«41 * プロセッサ依存モジュール 57 42 */ 58 43 … … 61 46 62 47 /* 63 * å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«48 * 割込み要因プライオリティレジスタアドレステーブル 64 49 */ 65 50 volatile 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 予約 */ 87 72 ICU_IPR001_ADDR, /* No.21 FCU FIFERR */ 88 NULL, /* No.22 äºç´*/73 NULL, /* No.22 予約 */ 89 74 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 予約 */ 93 78 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 */ 98 83 ICU_IPR032_ADDR, /* No.32 ETHER */ 99 84 ICU_IPR033_ADDR, /* No.33 USB0 D0FIFO0 */ … … 124 109 ICU_IPR056_ADDR, /* No.58 CAN RXM2 */ 125 110 ICU_IPR056_ADDR, /* No.59 CAN TXM2 */ 126 NULL, /* No.60 äºç´*/127 NULL, /* No.61 äºç´*/111 NULL, /* No.60 予約 */ 112 NULL, /* No.61 予約 */ 128 113 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 予約 */ 156 141 ICU_IPR090_ADDR, /* No.90 USBR0 */ 157 142 ICU_IPR091_ADDR, /* No.91 USBR1 */ 158 143 ICU_IPR092_ADDR, /* No.92 RTC ALM */ 159 144 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 予約 */ 164 149 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 予約 */ 168 153 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 予約 */ 172 157 ICU_IPR106_ADDR, /* No.106 ICU GROUP0 */ 173 158 ICU_IPR107_ADDR, /* No.107 ICU GROUP1 */ … … 177 162 ICU_IPR111_ADDR, /* No.111 ICU GROUP5 */ 178 163 ICU_IPR112_ADDR, /* No.112 ICU GROUP6 */ 179 NULL, /* No.113 äºç´*/164 NULL, /* No.113 予約 */ 180 165 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 予約 */ 188 173 ICU_IPR122_ADDR, /* No.122 SCI12 SCIX0 */ 189 174 ICU_IPR123_ADDR, /* No.123 SCI12 SCIX1 */ … … 232 217 ICU_IPR167_ADDR, /* No.166 POE OEI1 */ 233 218 ICU_IPR167_ADDR, /* No.167 POE OEI2 */ 234 NULL, /* No.168 äºç´*/235 NULL, /* No.169 äºç´*/219 NULL, /* No.168 予約 */ 220 NULL, /* No.169 予約 */ 236 221 ICU_IPR170_ADDR, /* No.170 TMR0 CMIA0 */ 237 222 ICU_IPR170_ADDR, /* No.171 TMR0 CMIB0 */ … … 268 253 ICU_IPR202_ADDR, /* No.202 EXDMAC EXDMACI0 */ 269 254 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 予約 */ 280 265 ICU_IPR214_ADDR, /* No.214 SCI0 RXI0 */ 281 266 ICU_IPR214_ADDR, /* No.215 SCI0 TXI0 */ … … 318 303 ICU_IPR250_ADDR, /* No.252 SCI12 TEI12 */ 319 304 ICU_IPR253_ADDR, /* No.253 IEB IEBINT */ 320 NULL, /* No.254 äºç´*/321 NULL, /* No.255 äºç´*/305 NULL, /* No.254 予約 */ 306 NULL, /* No.255 予約 */ 322 307 }; 323 308 324 309 325 310 /* 326 * å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«311 * 割込み要求許可レジスタアドレステーブル 327 312 */ 328 313 const 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 予約 */ 350 335 { ICU_IER02_ADDR, ICU_IEN5_BIT }, /* No.21 FCU FIFERR */ 351 { NULL, INVALID_OFFSET }, /* No.22 äºç´*/336 { NULL, INVALID_OFFSET }, /* No.22 予約 */ 352 337 { 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 予約 */ 356 341 { 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 */ 361 346 { ICU_IER04_ADDR, ICU_IEN0_BIT }, /* No.32 ETHER */ 362 347 { ICU_IER04_ADDR, ICU_IEN1_BIT }, /* No.33 USB0 D0FIFO0 */ … … 387 372 { ICU_IER07_ADDR, ICU_IEN2_BIT }, /* No.58 CAN2 RXM2 */ 388 373 { 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 予約 */ 391 376 { 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 予約 */ 419 404 { ICU_IER0B_ADDR, ICU_IEN2_BIT }, /* No.90 USBR0 */ 420 405 { ICU_IER0B_ADDR, ICU_IEN3_BIT }, /* No.91 USBR1 */ 421 406 { ICU_IER0B_ADDR, ICU_IEN4_BIT }, /* No.92 RTC ALM */ 422 407 { 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 予約 */ 427 412 { 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 予約 */ 431 416 { 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 予約 */ 435 420 { ICU_IER0D_ADDR, ICU_IEN2_BIT }, /* No.106 ICU GROUP0 */ 436 421 { ICU_IER0D_ADDR, ICU_IEN3_BIT }, /* No.107 ICU GROUP1 */ … … 440 425 { ICU_IER0D_ADDR, ICU_IEN7_BIT }, /* No.111 ICU GROUP5 */ 441 426 { ICU_IER0E_ADDR, ICU_IEN0_BIT }, /* No.112 ICU GROUP6 */ 442 { NULL, INVALID_OFFSET }, /* No.113 äºç´*/427 { NULL, INVALID_OFFSET }, /* No.113 予約 */ 443 428 { 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 予約 */ 451 436 { ICU_IER0F_ADDR, ICU_IEN2_BIT }, /* No.122 SCI12 SCIX0 */ 452 437 { ICU_IER0F_ADDR, ICU_IEN3_BIT }, /* No.123 SCI12 SCIX1 */ … … 495 480 { ICU_IER14_ADDR, ICU_IEN6_BIT }, /* No.166 POE OEI1 */ 496 481 { 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 予約 */ 499 484 { ICU_IER15_ADDR, ICU_IEN2_BIT }, /* No.170 TMR0 CMIA0 */ 500 485 { ICU_IER15_ADDR, ICU_IEN3_BIT }, /* No.171 TMR0 CMIB0 */ … … 531 516 { ICU_IER19_ADDR, ICU_IEN2_BIT }, /* No.202 EXDMAC EXDMAC0I */ 532 517 { 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 予約 */ 543 528 { ICU_IER1A_ADDR, ICU_IEN6_BIT }, /* No.214 SCI0 RXI0 */ 544 529 { ICU_IER1A_ADDR, ICU_IEN7_BIT }, /* No.215 SCI0 TXI0 */ … … 581 566 { ICU_IER1F_ADDR, ICU_IEN4_BIT }, /* No.252 SCI12 TEI12 */ 582 567 { 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 予約 */ 585 570 }; 586 571 587 572 588 573 /* 589 * IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«574 * IRQコントロールレジスタアドレステーブル 590 575 */ 591 576 volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = { -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 */ 54 39 55 40 /* 56 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«41 * プロセッサ依存モジュール 57 42 * 58 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯59 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã60 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼43 * このインクルードファイルは,target_config.h(または,そこからインク 44 * ルードされるファイル)のみからインクルードされる.他のファイルから 45 * 直接インクルードしてはならない. 61 46 */ 62 47 … … 67 52 68 53 /* 69 * å²è¾¼ã¿è¦å æ°54 * 割込み要因数 70 55 */ 71 56 #define INHNO_MAX UINT_C( 256 ) … … 73 58 74 59 /* 75 * å²è¾¼ã¿å¶å¾¡ç¨åå®ç¾©60 * 割込み制御用型定義 76 61 */ 77 62 typedef struct ier_info { … … 82 67 83 68 /* 84 * å²è¾¼ã¿å¶å¾¡ç¨å®ç¾©69 * 割込み制御用定義 85 70 */ 86 71 #define INVALID_OFFSET ( 0xFFU ) … … 93 78 94 79 /* 95 * å²è¾¼ã¿å¶å¾¡ç¨ãã¼ãã«80 * 割込み制御用テーブル 96 81 */ 97 82 98 /* å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/83 /* 割込み要因プライオリティレジスタアドレス */ 99 84 extern volatile uint8_t __evenaccess * const ipr_reg_addr[]; 100 /* å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/85 /* 割込み要求許可レジスタアドレス */ 101 86 extern const IER_INFO ier_reg_addr[]; 102 /* IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/87 /* IRQコントロールレジスタアドレス */ 103 88 extern volatile uint8_t __evenaccess * const irqcr_reg_addr[]; 104 89 105 90 106 91 /* 107 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«92 * プロセッサ依存モジュール 108 93 */ 109 94 #include "prc_config.h" -
Property svn:mime-type
changed from
-
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 11 11 ;* Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 ;* 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 ;* 害からも,上記著作権者を免責すること. 42 33 ;* 43 ;* æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 44 ã¯ï¼ 45 ;* æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã 46 ;* ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã 47 ;* ããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 34 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者は, 35 ;* 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ 36 ;* ない.また,本ソフトウェアの利用により直接的または間接的に生じたい 37 ;* かなる損害に関しても,その責任を負わない. 48 38 ;* 49 39 50 40 51 41 ; 52 ; ã¡ã¢ãªãããã®å®ç¾©(ã¿ã¼ã²ããä¾åé¨)42 ; メモリマップの定義(ターゲット依存部) 53 43 ; 54 44 .include sectrx.inc 55 45 56 DFLRE .equ 007FC440H ; DFLRE ã¬ã¸ã¹ã¿46 DFLRE .equ 007FC440H ; DFLREレジスタ 57 47 58 48 DB_BLOCK_ENABLE .equ 02D0FH 59 49 60 50 ; 61 ; åæåã«ã¼ãã³51 ; 初期化ルーチン 62 52 ; 63 53 .section P_START, CODE … … 71 61 _start: 72 62 ; 73 ; é»æºæå 74 ¥å¾ã¯ã¬ãã«0, å 75 ¨å²è¾¼ã¿ç¦æ¢ç¶æ 76 ã§ãã. 77 ; ã«ã¼ãã«ã§ã¯é«éå²è¾¼ã¿ã使ç¨ããªããããBPC, BPSWåã³FINTV 78 ; ã®åæåã¯è¡ããªã. 63 ; 電源投入後はレベル0, 全割込み禁止状態である. 64 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV 65 ; の初期化は行わない. 79 66 ; 80 67 81 68 ; 82 ; å 83 èµROMï¼ãã¼ã¿ãã©ãã·ã¥ï¼é åã®è¨å® 69 ; 内蔵ROM(データフラッシュ)領域の設定 84 70 ; 85 ; ãªã»ããå¾, ãã¼ã¿ãã©ãã·ã¥é åã¯èªã¿åºãç¦æ¢ã¨ãªã£ã¦ãã86 ; ãã, èªã¿åºã許å¯ã«è¨å®ãã.71 ; リセット後, データフラッシュ領域は読み出し禁止となっている 72 ; ため, 読み出し許可に設定する. 87 73 ; 88 74 mov.l #DFLRE, r5 … … 90 76 91 77 ; 92 ; ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨å®78 ; スタックポインタの設定 93 79 ; 94 ; ã¦ã¼ã¶ã«ã¦éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãç¨æããå ´å,95 ; ã¦ã¼ã¶é åãè¨å®ãã.96 ; kernel_cfg.c ã«ã¦"_kernel_istkpt"ã®å¤ã決å®ãã.80 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合, 81 ; ユーザ領域を設定する. 82 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する. 97 83 ; 98 84 mov.l #__kernel_istkpt, r5 99 mov.l [r5], r0 ; éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãè¨å®85 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定 100 86 101 87 ; 102 ; å¯å¤ãã¯ã¿ãã¼ãã«ã®è¨å®88 ; 可変ベクタテーブルの設定 103 89 ; 104 mvtc #VVECTOR_TOP, intb ; ãã¯ã¿ãã¼ãã«ã®è¨å®90 mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定 105 91 106 92 ; 107 ; ãã¼ãã¦ã§ã¢åºæã®åæåã«ã¼ãã³ã®å¼åºã93 ; ハードウェア固有の初期化ルーチンの呼出し 108 94 ; 109 95 mov.l #_hardware_init_hook, r5 … … 113 99 114 100 ; 115 ; åæå¤ããå¤æ°é åã®åæå101 ; 初期値あり変数領域の初期化 116 102 ; 117 103 init_D: 118 104 mov.l #(sizeof R), r3 119 105 cmp #0, r3 120 beq.b init_D_2 ; ãµã¤ãº0ãªãåæåå¿ 121 è¦ãªã 106 beq.b init_D_2 ; サイズ0なら初期化必要なし 122 107 mov.l #(topof R), r1 123 108 mov.l #(topof D), r2 … … 127 112 mov.l #(sizeof R_2), r3 128 113 cmp #0, r3 129 beq.b init_D_1 ; ãµã¤ãº0ãªãåæåå¿ 130 è¦ãªã 114 beq.b init_D_1 ; サイズ0なら初期化必要なし 131 115 mov.l #(topof R_2), r1 132 116 mov.l #(topof D_2), r2 … … 136 120 mov.l #(sizeof R_1), r3 137 121 cmp #0, r3 138 beq.b clear_B ; ãµã¤ãº0ãªãåæåå¿ 139 è¦ãªã 122 beq.b clear_B ; サイズ0なら初期化必要なし 140 123 mov.l #(topof R_1), r1 141 124 mov.l #(topof D_1), r2 … … 143 126 144 127 ; 145 ; åæå¤ãªãå¤æ°é åã®åæå128 ; 初期値なし変数領域の初期化 146 129 ; 147 130 clear_B: … … 164 147 165 148 ; 166 ; software_init_hook ãå¼åºãï¼0 ã§ãªãå ´åï¼149 ; software_init_hook を呼出し(0 でない場合) 167 150 ; 168 ; ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾åãã¦å¿ 169 è¦ãªåæåå¦ç 170 ; ãããå ´åã¯ï¼software_init_hook ã¨ããé¢æ°ãç¨æããã°ãã. 151 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理 152 ; がある場合は,software_init_hook という関数を用意すればよい. 171 153 ; 172 154 mov.l #_software_init_hook, r5 … … 176 158 177 159 ; 178 ; ã«ã¼ãã«ã¹ã¿ã¼ã160 ; カーネルスタート 179 161 ; 180 162 kernel_link: -
Property svn:eol-style
set to
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc
-
Property svn:mime-type
changed from
text/x-makefile
totext/x-makefile; charset=UTF-8
r313 r315 1 1 # 2 # Makefile ã®ããã»ããµä¾åé¨ï¼M68040ç¨ï¼2 # Makefileのプロセッサ依存部(M68040用) 3 3 # 4 4 5 5 # 6 # GNU éçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ããã¯ãã£ã®å®ç¾©6 # GNU開発環境のターゲットアーキテクチャの定義 7 7 # 8 8 GCC_TARGET = rx-elf 9 9 10 10 # 11 # ããã»ããµä¾åé¨ãã£ã¬ã¯ããªåã®å®ç¾©11 # プロセッサ依存部ディレクトリ名の定義 12 12 # 13 13 PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL) 14 14 15 15 # 16 # ã³ã³ãã¤ã«ãªãã·ã§ã³16 # コンパイルオプション 17 17 # 18 18 COPTS := $(COPTS) -ffunction-sections -fno-function-cse -fsigned-char -fdata-sections -mlittle-endian-data -mcpu=rx600 -m64bit-doubles … … 20 20 21 21 # 22 # ã«ã¼ãã«ã«é¢ããå®ç¾©22 # カーネルに関する定義 23 23 # 24 24 KERNEL_DIR := $(KERNEL_DIR) $(PRCDIR) … … 27 27 28 28 # 29 # ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©29 # コンフィギュレータ関係の変数の定義 30 30 # 31 31 CFG_TABS := $(CFG_TABS) --symval-table $(PRCDIR)/prc_sym.def 32 32 33 33 # 34 # ãªãã»ãããã¡ã¤ã«çæã®ããã®å®ç¾©34 # オフセットファイル生成のための定義 35 35 # 36 36 OFFSET_TRB = $(PRCDIR)/prc_offset.trb -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 8 8 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 9 9 * 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 * の責任を負わない. 53 38 * 54 39 * @(#) $Id$ … … 57 42 58 43 /* 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 * (例) 79 60 * TCB_texptn .equ 14 80 61 * TCB_sp .equ 20 … … 84 65 * TCB_enatex_mask .equ 0040H 85 66 * 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 の値の間には次の関係がある. 97 75 * (*_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 * 使用していない. 104 81 */ 105 82 106 83 /* 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) 構造体の先頭からメンバへのオフセット 144 118 * 145 119 * ! BEGIN TCB_texptn … … 147 121 * ! END 148 122 * 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 には 154 127 * 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 のように表現する. アセンブリ言語ファイルでは 163 136 * 164 137 * ! BEGIN TCB_sp … … 170 143 * ! END * 171 144 * 172 * ã®ããã«ãªã,14H(=20) ãæ±ããå¤ãªã®ã§offset.inc ã«ã¯æ¬¡ã®ããã«173 * è¨è¿°ãã.145 * のようになり,14H(=20) が求める値なのでoffset.inc には次のように 146 * 記述する. 174 147 * 175 148 * TCB_sp .equ 20 176 149 * 177 * (3) ã¡ã³ããé¢æ°ã¸ã®ãã¤ã³ã¿ã§ãã£ãå ´å178 * 179 * 次㯠TCB_pc ã®å ´å.150 * (3) メンバが関数へのポインタであった場合 151 * 152 * 次は TCB_pc の場合. 180 153 * 181 154 * ! BEGIN TCB_pc … … 184 157 * ! END 185 158 * 186 * pc ã sp ã¨åãã, TCBæ§é ä½ã®ç´æ¥ã®ã¡ã³ãã§ã¯ãªãã187 * TCB_pc ã¨è¡¨ç¾ãã¦ãã. ããã¯é¢æ°ã®ã¢ãã¬ã¹ãæ ¼ç´ããå¤æ°ãªã®ã§,159 * pc も sp と同じく, TCB構造体の直接のメンバではないが 160 * TCB_pc と表現している. これは関数のアドレスを格納する変数なので, 188 161 * (((TCB *)0)->tskctxb.pc)(); 189 * ã¨ãã¦é¢æ°å¼ã³åºãã®ããã«è¨è¿°ããã¨ä¸è¨ã®ãããªã¢ã»ã³ããªè¨èª190 * ã³ã¼ããåºåãã. ã·ã³ãã«å®ç¾©ããéã®ã·ã³ãã«åã¯ä»ã¾ã§ã¨191 * åãã, TCB_pc ã¨ãã.192 * æ±ããå¤ã¯æ§é ä½ããé¢æ°ãã¤ã³ã¿ã¾ã§ã®ãªãã»ããã§ãã, ä¸ã®mov.l193 * å½ä»¤ã®çµæãã 00000018H(=24) ã¨ãªã.194 * ãããã£ã¦, offset.inc ã«ã¯æ¬¡ã®ããã«è¨è¿°ãã.162 * として関数呼び出しのように記述すると上記のようなアセンブリ言語 163 * コードを出力する. シンボル定義する際のシンボル名は今までと 164 * 同じく, TCB_pc とする. 165 * 求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l 166 * 命令の結果から 00000018H(=24) となる. 167 * したがって, offset.inc には次のように記述する. 195 168 * 196 169 * TCB_pc .equ 24 197 170 * 198 * (4) æ§é ä½ã®ã¡ã³ããããããã£ã¼ã«ãã§ãã®ãããä½ç½®ãç¥ãããå ´å171 * (4) 構造体のメンバがビットフィールドでそのビット位置も知りたい場合 199 172 * 200 173 * ! BEGIN TCB_enatex … … 202 175 * ! END 203 176 * 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 * 以上より次のように書くことができる. 212 184 * 213 185 * TCB_enatex .equ 13 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_cfg1_out.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 1 1 /* 2 * cfg1_out.cã®ãªã³ã¯ã«å¿ 3 è¦ãªã¹ã¿ãã®å®ç¾© 2 * cfg1_out.cのリンクに必要なスタブの定義 4 3 */ 5 4 … … 21 20 22 21 /* 23 * ãªãã»ãããã¡ã¤ã«ãçæããããã®å®ç¾©22 * オフセットファイルを生成するための定義 24 23 */ 25 24 const uint8_t MAGIC_1 = 0x12; -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_check.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # ãã¹3ã®çæã¹ã¯ãªããã®ã³ã¢ä¾åé¨ï¼ARMç¨ï¼3 # パス3の生成スクリプトのコア依存部(ARM用) 4 4 # 5 5 # $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $ … … 7 7 8 8 # 9 # ã¿ã¼ã²ããéä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã9 # ターゲット非依存部のインクルード 10 10 # 11 11 IncludeTrb("kernel/kernel_check.trb") -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 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 * の責任を負わない. 55 40 * 56 41 * @(#) $Id$ … … 58 43 59 44 /* 60 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼45 * プロセッサ依存モジュール(RX630用) 61 46 */ 62 47 … … 66 51 67 52 /* 68 * å²è¾¼ã¿çºçåæ°ãä¿åããå¤æ°53 * 割込み発生回数を保存する変数 69 54 */ 70 55 uint16_t intnest; 71 56 72 57 /* 73 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°58 * CPUロックフラグ実現のための変数 74 59 */ 75 60 #if TIPM_LOCK != -15 76 bool_t lock_flag; /* CPUããã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */ 77 uint32_t saved_ipl; /* å²è¾¼ã¿åªå 78 度ã¬ãã«ãä¿åããå¤æ° */ 61 bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 62 uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 79 63 #endif /* TIPM_LOCK != -15 */ 80 64 81 65 82 66 /* 83 * ããã»ããµä¾åã®åæå67 * プロセッサ依存の初期化 84 68 */ 85 69 void … … 87 71 { 88 72 /* 89 * å²è¾¼ã¿çºçåæ°ã®åæå 90 * 91 * ã¹ã¿ã¼ãã¢ããã¯å 92 ¨å²è¾¼ã¿ããã¯ç¶æ 93 & éã¿ã¹ã¯ã³ã³ããã¹ã 94 * ã«ã¦åä½ãããã, éã¿ã¹ã¯ã³ã³ããã¹ãã«å½è£ 95 ãã. 73 * 割込み発生回数の初期化 74 * 75 * スタートアップは全割込みロック状態 & 非タスクコンテキスト 76 * にて動作するため, 非タスクコンテキストに偽装する. 96 77 */ 97 78 intnest = 1U; … … 99 80 #if TIPM_LOCK != -15 100 81 /* 101 * CPU ããã¯ãã©ã°å®ç¾ã®ããã®å¤æ°ã®åæå82 * CPUロックフラグ実現のための変数の初期化 102 83 */ 103 84 lock_flag = true; … … 108 89 109 90 /* 110 * ããã»ããµä¾åã®çµäºå¦ç91 * プロセッサ依存の終了処理 111 92 */ 112 93 void … … 114 95 { 115 96 /* 116 * ç¹ã«å¿ 117 è¦ãªå¦çã¯ãªã 118 */ 119 } 120 121 122 /* 123 * CPUä¾å¤ã®çºçç¶æ³ã®ãã°åºå 97 * 特に必要な処理はない 98 */ 99 } 100 101 102 /* 103 * CPU例外の発生状況のログ出力 124 104 * 125 * CPUä¾å¤ãã³ãã©ã®ä¸ããï¼CPUä¾å¤æ 126 å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã 127 * ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ãã°ã«åºåããï¼ 105 * CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし 106 * て呼び出すことで,CPU例外の発生状況をシステムログに出力する. 128 107 */ 129 108 #ifdef SUPPORT_XLOG_SYS … … 156 135 157 136 /* 158 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®137 * 割込み要求ラインの属性の設定 159 138 * 160 * ASP ã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã161 * ã¯ãã¦ããï¼cfg_intãµã¼ãã¹ã³ã¼ã«ãè¨ããå ´åã«ã¯ï¼ã¨ã©ã¼ãè¿ããã162 * ã«ãã¹ãã§ãããï¼139 * ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ 140 * クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう 141 * にすべきであろう. 163 142 */ 164 143 void … … 181 160 182 161 /* 183 * å²è¾¼ã¿ã®ãã¹ã¯ 184 * 185 * å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨å®ãï¼å² 186 * è¾¼ã¿åªå 187 度ã®è¨å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼ 188 * ä¸æ¦ãã¹ã¯ããï¼ 162 * 割込みのマスク 163 * 164 * 割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割 165 * 込み優先度の設定を行うのは危険なため,割込み属性にかかわらず, 166 * 一旦マスクする. 189 167 */ 190 168 ( void )x_disable_int( intno ); 191 169 192 170 /* 193 * ã¬ãã«ããªã¬/ã¨ãã¸ããªã¬ã®è¨å®194 * 195 * IRQ ã®ã¿ãµãã¼ããã171 * レベルトリガ/エッジトリガの設定 172 * 173 * IRQのみサポートする 196 174 */ 197 175 if( INTNO_IRQ( intno ) != 0U ){ … … 212 190 else{ 213 191 /* 214 * ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ã¦ãã§ãã¯ãã¦ãããã,215 * ããã¸ãããã¨ã¯ããããªã.192 * コンフィギュレータにてチェックしているため, 193 * ここへくることはありえない. 216 194 */ 217 195 irq_val = 0U; … … 222 200 223 201 /* 224 * å²è¾¼ã¿ã¬ãã«ã®è¨å®225 * 226 * å²è¾¼ã¿çªå·ã«å¯¾å¿ããIPRå¤ãè¨å®ãã.202 * 割込みレベルの設定 203 * 204 * 割込み番号に対応したIPR値を設定する. 227 205 */ 228 206 sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri); 229 207 230 208 /* 231 * å²è¾¼ã¿ã®ãã¹ã¯è§£é¤209 * 割込みのマスク解除 232 210 */ 233 211 if( ( intatr & TA_ENAINT ) != 0U ){ … … 239 217 #ifndef OMIT_DEFAULT_INT_HANDLER 240 218 /* 241 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã219 * 未登録の割込みが発生した場合に呼び出される 242 220 */ 243 221 void … … 250 228 #ifndef OMIT_DEFAULT_EXC_HANDLER 251 229 /* 252 * æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã230 * 未登録の例外が発生した場合に呼び出される 253 231 */ 254 232 void -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 11 11 * Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 * 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 * 免責すること. 49 35 * 50 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 51 ã 52 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 53 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 54 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 55 * ã®è²¬ä»»ãè² ããªãï¼ 36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 * の責任を負わない. 56 41 * 57 42 * @(#) $Id$ … … 59 44 60 45 /* 61 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼62 * 63 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯64 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã65 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼46 * プロセッサ依存モジュール(RX630用) 47 * 48 * このインクルードファイルは,target_config.h(または,そこからインク 49 * ルードされるファイル)のみからインクルードされる.他のファイルから 50 * 直接インクルードしてはならない. 66 51 */ 67 52 … … 70 55 71 56 /* 72 * ããã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©57 * プロセッサの特殊命令のインライン関数定義 73 58 */ 74 59 #include "prc_insn.h" … … 78 63 79 64 /* 80 * éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã®ã¹ã¿ãã¯åæå¤65 * 非タスクコンテキスト用のスタック初期値 81 66 */ 82 67 … … 84 69 85 70 /* 86 * ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®å®ç¾©71 * タスクコンテキストブロックの定義 87 72 */ 88 73 typedef struct task_context_block { 89 void *sp; /* ã¹ã¿ãã¯ãã¤ã³ã¿*/90 FP pc; /* ããã°ã©ã ã«ã¦ã³ã¿*/74 void *sp; /* スタックポインタ */ 75 FP pc; /* プログラムカウンタ */ 91 76 } TSKCTXB; 92 77 93 78 94 79 /* 95 * å²è¾¼ã¿çºçåæ°ãä¿åããå¤æ°80 * 割込み発生回数を保存する変数 96 81 */ 97 82 extern uint16_t intnest; … … 100 85 101 86 /* 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に設定することを推奨する). 115 96 */ 116 97 #ifndef TIPM_LOCK … … 121 102 122 103 /* 123 * TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®å®ç¾ 124 */ 125 /* 126 * ã³ã³ããã¹ãã®åç 127 § 128 * 129 * RXã§ã¯ï¼å²è¾¼ã¿ã®æ»ãå 130 ãã¿ã¹ã¯ãã©ãããå¤æããããã« intnest 131 * ã使ç¨ãã¦ããï¼ãããç¨ãã¦ã³ã³ããã¹ããå¤æããï¼ 104 * TOPPERS標準割込み処理モデルの実現 105 */ 106 /* 107 * コンテキストの参照 108 * 109 * RXでは,割込みの戻り先がタスクかどうかを判断するために intnest 110 * を使用している.これを用いてコンテキストを判断する. 132 111 */ 133 112 Inline bool_t 134 113 sense_context( void ) 135 114 { 136 /* ãã¹ãã«ã¦ã³ã¿0ãã大ãªãéã¿ã¹ã¯ã³ã³ããã¹ã*/115 /* ネストカウンタ0より大なら非タスクコンテキスト */ 137 116 return ( intnest > 0U ); 138 117 } … … 140 119 141 120 /* 142 * CPUããã¯ãã©ã°å®ç¾ã®ããã®å¤æ° 143 * 144 * ãããã®å¤æ°ã¯ï¼CPUããã¯ç¶æ 145 ã®æã®ã¿æ¸ãæãã¦ãããã®ã¨ããï¼ 121 * CPUロックフラグ実現のための変数 122 * 123 * これらの変数は,CPUロック状態の時のみ書き換えてよいものとする. 146 124 */ 147 125 #if TIPM_LOCK != -15 148 extern bool_t lock_flag; /* CPUããã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */ 149 extern uint32_t saved_ipl; /* å²è¾¼ã¿åªå 150 度ã¬ãã«ãä¿åããå¤æ° */ 126 extern bool_t lock_flag; /* CPUロックフラグの値を保持する変数 */ 127 extern uint32_t saved_ipl; /* 割込み優先度レベルを保存する変数 */ 151 128 #endif /* TIPM_LOCK != -15 */ 152 129 … … 155 132 156 133 /* 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 179 148 */ 180 149 #define IPL_LOCK ( IPM_TO_IPL( TIPM_LOCK ) ) 181 150 182 151 /* 183 * TIPM_ENAALLï¼å²è¾¼ã¿åªå 184 度ãã¹ã¯å 185 ¨è§£é¤ï¼ã®IPL 152 * TIPM_ENAALL(割込み優先度マスク全解除)のIPL 186 153 */ 187 154 #define IPL_ENAALL ( IPM_TO_IPL( TIPM_ENAALL ) ) … … 191 158 192 159 /* 193 * å²è¾¼ã¿è¦å æ¯ã®ã¬ãã« & å±æ§å®ç¾©ãã¼ãã«194 * ( ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããåºå)160 * 割込み要因毎のレベル & 属性定義テーブル 161 * (テンプレートファイルによる出力) 195 162 */ 196 163 typedef struct cfg_int_info { … … 203 170 204 171 /* 205 * å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å® 206 * 207 * å²è¾¼ã¿çªå·ãæå¹ãªå¤ãå³å¯ã«ãã§ãã¯ãããã, 208 * ã³ã³ãã£ã®ã¥ã¬ã¼ã¿åºåãã¼ãã«ãåç 209 §ãã. 172 * 割込み番号の範囲の判定 173 * 174 * 割込み番号が有効な値か厳密にチェックするため, 175 * コンフィギュレータ出力テーブルを参照する. 210 176 */ 211 177 #define VALID_INTNO( intno ) \ … … 214 180 #define VALID_INTNO_CFGINT( intno ) VALID_INTNO( intno ) 215 181 216 /* cre_int ã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®*/182 /* cre_intで有効な割込み番号の指定 */ 217 183 #define VALID_INTNO_CREINT VALID_INTNO_CFGINT((intno)) 218 184 219 /* cre_isr ã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®*/185 /* cre_isrで有効な割込み番号の指定 */ 220 186 #define VALID_INTNO_CREISR(intno) VALID_INTNO_CFGINT((intno)) 221 187 222 188 223 189 /* 224 * å²è¾¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿é¢é£ã®å®ç¾©190 * 割込み制御レジスタ関連の定義 225 191 */ 226 192 #define IRQ_POSEDGE ( 0x08U ) … … 231 197 232 198 /* 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 * ないものと想定している. 252 212 */ 253 213 Inline void … … 260 220 261 221 /* 262 * current_ipl() ã®è¿ãå¤ãç´æ¥saved_iplã«ä¿åããï¼ä¸æå¤æ°ipl263 * ãç¨ãã¦ããã®ã¯ï¼current_ipl()ãå¼ãã ç´å¾ã«å²è¾¼ã¿ãçºçãï¼264 * èµ·åãããå²è¾¼ã¿å¦çã§saved_iplãå¤æ´ãããå¯è½æ§ãããããã§265 * ããï¼222 * current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl 223 * を用いているのは,current_ipl()を呼んだ直後に割込みが発生し, 224 * 起動された割込み処理でsaved_iplが変更される可能性があるためで 225 * ある. 266 226 */ 267 227 ipl = current_ipl(); … … 280 240 281 241 /* 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 * のと想定している. 293 249 */ 294 250 Inline void … … 308 264 309 265 /* 310 * CPUããã¯ç¶æ 311 ã®åç 312 § 266 * CPUロック状態の参照 313 267 */ 314 268 Inline bool_t … … 327 281 328 282 /* 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の高い方に設定する. 339 289 */ 340 290 Inline void … … 360 310 361 311 /* 362 * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå 363 度ãã¹ã¯ã®åç 364 § 365 * 366 * CPUããã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå 367 度ã 368 * ã¹ã¯ãï¼ã»ããããã¦ããæã¯saved_iipmãåç 369 §ããï¼ 312 * (モデル上の)割込み優先度マスクの参照 313 * 314 * CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ 315 * スクを,セットされている時はsaved_iipmを参照する. 370 316 */ 371 317 Inline PRI … … 391 337 392 338 /* 393 * å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ã»ãã394 * 395 * å²è¾¼ã¿å±æ§ãè¨å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ¢396 * ãã©ã°ãã»ãããããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼339 * 割込み要求禁止フラグのセット 340 * 341 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 342 * フラグをセットしようとした場合には,FALSEを返す. 397 343 */ 398 344 Inline bool_t … … 400 346 { 401 347 /* 402 * ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã348 * レベル定義が0である場合はCFG_INTされていない 403 349 */ 404 350 if( cfg_int_table[intno].intpri == 0 ){ … … 416 362 417 363 /* 418 * å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ã®ã¯ãªã¢419 * 420 * å²è¾¼ã¿å±æ§ãè¨å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ¢421 * ãã©ã°ãã¯ãªã¢ãããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼364 * 割込み要求禁止フラグのクリア 365 * 366 * 割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止 367 * フラグをクリアしようとした場合には,FALSEを返す. 422 368 */ 423 369 Inline bool_t … … 425 371 { 426 372 /* 427 * ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã373 * レベル定義が0である場合はCFG_INTされていない 428 374 */ 429 375 if( cfg_int_table[intno].intpri == 0 ){ … … 441 387 442 388 /* 443 * å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢389 * 割込み要求のクリア 444 390 */ 445 391 Inline void … … 454 400 455 401 /* 456 * å²è¾¼ã¿è¦æ±ã®ãã§ãã¯402 * 割込み要求のチェック 457 403 */ 458 404 Inline bool_t … … 460 406 { 461 407 /* 462 * å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¯0 or 1ã§ãããªããã,463 * ãã®ã¾ã¾ã®å¤ãè¿ã.408 * 割込み要求レジスタは0 or 1でしかないため, 409 * そのままの値を返す. 464 410 */ 465 411 return ( *IR_REG(intno) ); … … 471 417 472 418 /* 473 * å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨å®419 * 割込み要求ラインの属性の設定 474 420 */ 475 421 extern void x_config_int( INTNO intno, ATR intatr, PRI intpri ); … … 477 423 478 424 /* 479 * å²è¾¼ã¿ãã³ãã©ã®å 480 ¥å£ã§å¿ 481 è¦ãªIRCæä½ 425 * 割込みハンドラの入口で必要なIRC操作 482 426 * 483 427 */ … … 488 432 489 433 /* 490 * ã¬ãã«æ¤åºã®å²è¾¼ã¿ã«å¯¾ãã¦ã¯å²è¾¼ã¿ã¹ãã¼ã¿ã¹491 * ãã©ã°ãã¯ãªã¢ãã.434 * レベル検出の割込みに対しては割込みステータス 435 * フラグをクリアする. 492 436 */ 493 437 if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){ 494 438 if( *IR_REG(intno) > 0U ){ 495 439 /* 496 * å¤é¨å²è¾¼ã¿ã®å ´å, IRQ端åãHighã«æ»ã£ã¦ãã497 * ãã¨ã確èªããæ¨ãè¨è¼ããã¦ããã, çç¥ãã.440 * 外部割込みの場合, IRQ端子がHighに戻っている 441 * ことを確認する旨が記載されているが, 省略する. 498 442 */ 499 443 // *ir_reg_addr[intno] = 0U; 500 444 501 445 /* 502 * ãã¼ãã¦ã§ã¢ããã¥ã¢ã«ã«0ã«ãªã£ããã¨ã503 * 確èªããæ¨ãè¨è¼ãããã, ã¬ã¸ã¹ã¿å¤ãèªã¿åºã.446 * ハードウェアマニュアルに0になったことを 447 * 確認する旨が記載あるため, レジスタ値を読み出す. 504 448 */ 505 449 // reg = *ir_reg_addr[intno]; … … 510 454 511 455 /* 512 * å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿ 513 è¦ãªIRCæä½ 456 * 割込みハンドラの出口で必要なIRC操作 514 457 * 515 458 */ … … 517 460 i_end_int( INTNO intno ) 518 461 { 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 * ければならない. 536 473 */ 537 474 extern void dispatch( void ); 538 475 539 476 /* 540 * ãã£ã¹ãããã£ã®åä½éå§ï¼prc_support.a30ï¼ 541 * 542 * start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼ 543 * ã¿ãç¦æ¢ããç¶æ 544 ï¼å 545 ¨å²è¾¼ã¿ããã¯ç¶æ 546 ã¨åçã®ç¶æ 547 ï¼ã§å¼ã³åºããªããã° 548 * ãªããªãï¼ 477 * ディスパッチャの動作開始(prc_support.a30) 478 * 479 * start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込 480 * みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ 481 * ならない. 549 482 */ 550 483 extern void start_dispatch( void ) NoReturn; 551 484 552 485 /* 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 * 度マスク全解除状態で呼び出さなければならない. 563 491 */ 564 492 #define _kernel_exit_and_dispatch(); \ … … 569 497 570 498 /* 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 * す. 576 504 */ 577 505 extern void call_exit_kernel( void ) NoReturn; 578 506 579 507 /* 580 * ã¿ã¹ã¯ã³ã³ããã¹ãã®åæå 581 * 582 * ã¿ã¹ã¯ãä¼æ¢ç¶æ 583 ããå®è¡ã§ããç¶æ 584 ã«ç§»è¡ããæã«å¼ã°ããï¼ãã®æç¹ 585 * ã§ã¹ã¿ãã¯é åã使ã£ã¦ã¯ãªããªãï¼ 586 * 587 * activate_contextãï¼ã¤ã³ã©ã¤ã³é¢æ°ã§ã¯ãªããã¯ãå®ç¾©ã¨ãã¦ããã®ã¯ï¼ 588 * ãã®æç¹ã§ã¯TCBãå®ç¾©ããã¦ããªãããã§ããï¼ 508 * タスクコンテキストの初期化 509 * 510 * タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点 511 * でスタック領域を使ってはならない. 512 * 513 * activate_contextを,インライン関数ではなくマクロ定義としているのは, 514 * この時点ではTCBが定義されていないためである. 589 515 */ 590 516 extern void start_r( void ); … … 594 520 { \ 595 521 \ 596 /* ã¹ã¿ãã¯ãã¤ã³ã¿åæå¤ã®è¨å®*/ \522 /* スタックポインタ初期値の設定 */ \ 597 523 ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) + \ 598 524 ( p_tcb )->p_tinib->stksz ); \ 599 /* èµ·åçªå°ã®è¨å®*/ \525 /* 起動番地の設定 */ \ 600 526 ( p_tcb )->tskctxb.pc = ( FP ) start_r; \ 601 527 } \ … … 604 530 605 531 /* 606 * calltex ã¯ä½¿ç¨ããªã532 * calltexは使用しない 607 533 */ 608 534 #define OMIT_CALLTEX … … 610 536 611 537 /* 612 * å²è¾¼ã¿ãã³ãã©ã®è¨å® 613 * 614 * RX630ã¯ROMã«å²è¾¼ã¿ãã¯ã¿ãé 615 ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£ 616 ããï¼ 538 * 割込みハンドラの設定 539 * 540 * RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する. 617 541 */ 618 542 Inline void … … 623 547 624 548 /* 625 * CPUä¾å¤ãã³ãã©ã®è¨å® 626 * 627 * RX630ã¯ROMã«ä¾å¤ãã¯ã¿ãé 628 ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£ 629 ããï¼ 549 * CPU例外ハンドラの設定 550 * 551 * RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する. 630 552 */ 631 553 Inline void … … 636 558 637 559 /* 638 * å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®å 639 ¥å£å¦çã®çæãã¯ã 640 * 641 * ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããçæãããã空ãã¯ãã¨ããï¼ 560 * 割込み/例外ハンドラの入口処理の生成マクロ 561 * 562 * テンプレートファイルにより生成するため空マクロとする. 642 563 */ 643 564 #define HDR_ENTRY(hdr, intexc_num , tobejmp) 644 565 645 566 /* 646 * å²è¾¼ã¿ãã³ãã©ã®å 647 ¥å£å¦çã®çæãã¯ã 567 * 割込みハンドラの入口処理の生成マクロ 648 568 */ 649 569 #define _INT_ENTRY(inhno, inthdr) _kernel_##inthdr##_##inhno##_entry … … 656 576 657 577 /* 658 * CPUä¾å¤ãã³ãã©ã®å 659 ¥å£å¦çã®çæãã¯ã 578 * CPU例外ハンドラの入口処理の生成マクロ 660 579 */ 661 580 #define _EXC_ENTRY(excno , exchdr) _kernel_##exchdr##_##excno##_entry … … 668 587 669 588 /* 670 * CPUä¾å¤ã®çºçããæã®ã³ã³ããã¹ãã®åç 671 § 672 * 673 * CPUä¾å¤ã®çºçããæã®ã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®æã«FALSEï¼ 674 * ããã§ãªãæã«trueãè¿ãï¼ 589 * CPU例外の発生した時のコンテキストの参照 590 * 591 * CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE, 592 * そうでない時にtrueを返す. 675 593 */ 676 594 Inline bool_t … … 678 596 { 679 597 /* 680 * ãã¹ãã«ã¦ã³ã¿ã1ãã大ãªãéã¿ã¹ã¯ã³ã³ããã¹ã598 * ネストカウンタが1より大なら非タスクコンテキスト 681 599 */ 682 600 return( intnest > 1U ); … … 686 604 687 605 /* 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 691 608 */ 692 609 #define EXC_GET_PSW_OFFSET (4+8+4+60+4) … … 695 612 696 613 /* 697 * CPUä¾å¤ã®çºçããæã®IPLã®åç 698 § 614 * CPU例外の発生した時のIPLの参照 699 615 */ 700 616 Inline uint32_t … … 714 630 715 631 /* 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を返す). 732 639 * 733 * ã«ã¼ãã«å®è¡ä¸ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã°== 1640 * カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1 734 641 * (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 741 645 * 742 646 * … … 751 655 752 656 /* 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を返す). 765 663 * 766 * ã«ã¼ãã«å®è¡ä¸ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã°== 1664 * カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1 767 665 * (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 773 669 * (else) IPL < TIPM_LOCK 774 670 */ … … 788 684 789 685 /* 790 * ããã»ããµä¾åã®åæå686 * プロセッサ依存の初期化 791 687 */ 792 688 extern void prc_initialize( void ); 793 689 794 690 /* 795 * ããã»ããµä¾åã®çµäºæå¦ç691 * プロセッサ依存の終了時処理 796 692 */ 797 693 extern void prc_terminate( void ); … … 800 696 #ifndef OMIT_DEFAULT_INT_HANDLER 801 697 /* 802 * æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã698 * 未登録の割込みが発生した場合に呼び出される 803 699 */ 804 700 void default_int_handler( void ); … … 807 703 #ifndef OMIT_DEFAULT_EXC_HANDLER 808 704 /* 809 * æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã705 * 未登録の例外が発生した場合に呼び出される 810 706 */ 811 707 void default_exc_handler( void ); -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_insn.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 10 10 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 * 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 * 免責すること. 48 34 * 49 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 50 ã 51 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 52 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 53 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 54 * ã®è²¬ä»»ãè² ããªãï¼ 35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 55 40 * 56 41 * @(#) $Id$ … … 58 43 59 44 /* 60 * ããã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©ï¼RX630ç¨ï¼45 * プロセッサの特殊命令のインライン関数定義(RX630用) 61 46 */ 62 47 … … 76 61 77 62 /* 78 * I ãã©ã°, IPLãåå¾ããããã®ãã¯ãå®ç¾©63 * Iフラグ, IPLを取得するためのマクロ定義 79 64 */ 80 65 #define PSW_I_MASK ( 0x00010000UL ) … … 84 69 85 70 /* 86 * I ãã©ã°, IPLãåå¾ããããã®ãã¯ãå®ç¾©71 * Iフラグ, IPLを取得するためのマクロ定義 87 72 */ 88 73 #define PSW_I_MASK ( 0x00010000 ) … … 94 79 95 80 /* 96 * ããã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã®ç¾å¨å¤ã®èªåºã81 * プロセッサステータスレジスタ(PSW)の現在値の読出し 97 82 */ 98 83 static uint32_t … … 106 91 107 92 /* 108 * ããã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã¸è¨å®93 * プロセッサステータスレジスタ(PSW)へ設定 109 94 */ 110 95 static void … … 116 101 117 102 /* 118 * IPL ã®ç¾å¨å¤ã®èªåºã103 * IPLの現在値の読出し 119 104 */ 120 105 Inline uint32_t … … 126 111 127 112 /* 128 * IPL ã¸è¨å®113 * IPLへ設定 129 114 */ 130 115 Inline void … … 136 121 137 122 /* 138 * NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®ç¦æ¢123 * NMIを除くすべての割込みの禁止 139 124 */ 140 125 static void … … 146 131 147 132 /* 148 * NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®è¨±å¯133 * NMIを除くすべての割込みの許可 149 134 */ 150 135 static void … … 156 141 157 142 /* 158 * ã¨ã³ãã£ã¢ã³å¤æ16bit143 * エンディアン変換 16bit 159 144 */ 160 145 static uint16_t … … 166 151 167 152 /* 168 * ã¨ã³ãã£ã¢ã³å¤æ32bit153 * エンディアン変換 32bit 169 154 */ 170 155 static uint32_t -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 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 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 54 39 55 40 /* 56 * kernel.h ã®ããã»ããµä¾åé¨ï¼RX630ç¨ï¼41 * kernel.hのプロセッサ依存部(RX630用) 57 42 * 58 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯59 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã60 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼43 * このインクルードファイルは,target_kernel.h(または,そこからインク 44 * ルードされるファイル)のみからインクルードされる.他のファイルから 45 * 直接インクルードしてはならない. 61 46 */ 62 47 … … 65 50 66 51 /* 67 * ã«ã¼ãã«æ¬ä½ãã³ã³ãã¤ã«ããããã®ãã¯ãå®ç¾©52 * カーネル本体をコンパイルするためのマクロ定義 68 53 */ 69 54 //#define ALLFUNC … … 71 56 72 57 /* 73 * ãµãã¼ãããæ©è½ã®å®ç¾©58 * サポートする機能の定義 74 59 */ 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をサポートする */ 77 62 78 63 /* 79 * ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå 80 度ã®ç¯å² 64 * カーネル管理の割込み優先度の範囲 81 65 * 82 * TMIN_INTPRIã®å®ç¾©ãå¤æ´ãããã¨ã§ï¼ã©ã®ã¬ãã«ãããé«ãå²è¾¼ã¿åªå 83 度 84 * ãæã¤ãã®ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ããããå¤æ´ã§ããï¼ 66 * TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度 67 * を持つものをカーネル管理外の割込みとするかを変更できる. 85 68 * 86 * TMIN_INTPRI ã«è¨å®ã§ããå¤ã¯ï¼-15ï½-1ã®ç¯å²ã§ããï¼ä¾ãã°TMIN_INTPRI87 * ã-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 * 設けないことになる. 90 73 */ 91 74 #ifndef TMIN_INTPRI 92 #define TMIN_INTPRI ( -15 ) /* å²è¾¼ã¿åªå 93 度ã®æå°å¤ï¼æé«å¤ï¼*/ 75 #define TMIN_INTPRI ( -15 ) /* 割込み優先度の最小値(最高値)*/ 94 76 #endif /* TMIN_INTPRI */ 95 #define TMAX_INTPRI ( -1 ) /* å²è¾¼ã¿åªå 96 度ã®æ大å¤ï¼æä½å¤ï¼ */ 77 #define TMAX_INTPRI ( -1 ) /* 割込み優先度の最大値(最低値) */ 97 78 98 79 99 80 /* 100 * å²è¾¼ã¿å±æ§ã®å®ç¾©81 * 割込み属性の定義 101 82 */ 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 ) /* 両エッジトリガ */ 105 86 106 #define TA_LOWLEVEL UINT_C( 0x10 ) /* L ã¬ãã«*/87 #define TA_LOWLEVEL UINT_C( 0x10 ) /* Lレベル */ 107 88 108 89 109 90 /* 110 * ããã©ã«ãã®å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®æç¡91 * デフォルトの割込み/例外ハンドラの有無 111 92 */ 112 93 /*#define OMIT_DEFAULT_INT_HANDLER*/ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 9 9 # Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 # 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 # の責任を負わない. 54 39 # 55 40 # $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $ … … 57 42 58 43 # 59 # ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾åé¨ï¼RXç¨ï¼60 # 61 62 # 63 # å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å®ç¾©64 # 65 # RX630 ã§ã¯å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã1対1ã§å¯¾å¿ããï¼44 # パス2の生成スクリプトのコア依存部(RX用) 45 # 46 47 # 48 # 割込み番号と割込みハンドラ番号の定義 49 # 50 # RX630では割込み番号と割込みハンドラ番号が1対1で対応する. 66 51 # 67 52 $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) ] … … 69 54 70 55 # 71 # ä¾å¤çªå·ã®å®ç¾©72 # 73 # åºå®ãã¯ã¿ãã¼ãã«ã®ãã¯ã¿ãã¼ãã«ã¢ãã¬ã¹ã®å°ããé çªã«ä¾å¤çªå·ãå²æ¯ãï¼74 # ( äºç´é åãå«ã)56 # 例外番号の定義 57 # 58 # 固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る. 59 # (予約領域も含む) 75 60 # 76 61 … … 78 63 79 64 # 80 # INT å²è¾¼ã¿ã®çªå·65 # INT割込みの番号 81 66 # 82 67 … … 84 69 85 70 # 86 # å²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ä¾å¤çªå·ã®ç¯å²87 # 88 # ( äºç´é åãå«ã)71 # 割込み番号,割込みハンドラ番号,例外番号の範囲 72 # 73 # (予約領域も含む) 89 74 # 90 75 … … 94 79 95 80 # 96 # ATT_ISR ã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·81 # ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号 97 82 # 98 83 … … 102 87 103 88 # 104 # DEF_INT ï¼DEF_EXCã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·89 # DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号 105 90 # 106 91 … … 110 95 111 96 # 112 # CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨å²è¾¼ã¿åªå 113 度 97 # CFG_INTで使用できる割込み番号と割込み優先度 114 98 # 115 99 … … 119 103 120 104 # 121 # ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½/ä¾å¤ç®¡çæ©è½ã®åæåå¦çã使ç¨ãã105 # ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する 122 106 # 123 107 … … 127 111 128 112 # 129 # ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®113 # スタックサイズのチェック方法指定 130 114 # 131 115 … … 134 118 135 119 # 136 # ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ 137 # 138 # ã¿ã¹ã¯èµ·åæã«4byte, 139 # å²è¾¼ã¿å 140 ¥å£å¦çã«ã¦48byte, CPUä¾å¤å 141 ¥å£å¦çã«ã¦84byte, 142 # ã§ãããã, æå°å¤ã¯88byteã¨ãã. 120 # タスクスタックサイズの最小値 121 # 122 # タスク起動時に4byte, 123 # 割込み入口処理にて48byte, CPU例外入口処理にて84byte, 124 # であるため, 最小値は88byteとする. 143 125 # 144 126 … … 146 128 147 129 # 148 # å®æ°å®ç¾©130 # 定数定義 149 131 # 150 132 … … 152 134 153 135 # 154 # ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§136 # ターゲット定義の割込み要求ライン属性 155 137 # 156 138 $TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL 157 139 158 140 # 159 # ã¿ã¼ã²ããä¾åã®å²è¾¼ã¿ãã³ãã©å±æ§ã®å®ç¾©141 # ターゲット依存の割込みハンドラ属性の定義 160 142 # 161 143 … … 164 146 165 147 # 166 # ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãã³ãã©ã¯åºå®ãããªããã,148 # カーネル管理外割込みハンドラは固定させないため, 167 149 # INTNO_FIX_KERNEL 168 150 # INHNO_FIX_KERNEL 169 151 # INHNO_FIX_NONKERNEL 170 152 # INHNO_FIX_NONKERNEL 171 # ãå®ç¾©ããªã.153 # を定義しない. 172 154 # 173 155 … … 176 158 177 159 # 178 # æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã160 # 標準テンプレートファイルのインクルード 179 161 # 180 162 IncludeTrb("kernel/kernel.trb") 181 163 182 164 # 183 # å²è¾¼ã¿çªå·ããå²è¾¼ã¿åªå 184 度åã³å±æ§ãåãåºããã¼ãã« 165 # 割込み番号から割込み優先度及び属性を取り出すテーブル 185 166 # 186 167 $kernelCfgC.comment_header("Interrupt Level and Attribute Table") … … 201 182 202 183 # 203 # å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©184 # 割込みベクタ及び割込みハンドラ定義 204 185 # 205 186 $kernelCfgAsm.add(<<EOS) 206 187 ; 207 ; RX630 ã¢ã¼ããã¯ãã£ä¾ååºåãã¡ã¤ã«208 ; 209 ; å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©188 ; RX630アーキテクチャ依存出力ファイル 189 ; 190 ; 割込みベクタ及び割込みハンドラ定義 210 191 ; 211 192 … … 277 258 $kernelCfgAsm.append(<<EOS) 278 259 ; 279 ; å¯å¤ãã¯ã¿ãã¼ãã«260 ; 可変ベクタテーブル 280 261 ; 281 262 … … 305 286 $kernelCfgAsm.append(<<EOS) 306 287 ; 307 ; åºå®ãã¯ã¿ãã¼ãã«288 ; 固定ベクタテーブル 308 289 ; 309 290 … … 318 299 .word 0FFFFFFFFH ; OFS0 319 300 .space 010H 320 .word 0FFFFFFFFH ; å¶å¾¡ã³ã¼ã, IDã³ã¼ã1 - 3321 .word 0FFFFFFFFH ; ID ã³ã¼ã4 - 7322 .word 0FFFFFFFFH ; ID ã³ã¼ã8 - 11323 .word 0FFFFFFFFH ; ID ã³ã¼ã12 - 15301 .word 0FFFFFFFFH ; 制御コード, IDコード1 - 3 302 .word 0FFFFFFFFH ; IDコード4 - 7 303 .word 0FFFFFFFFH ; IDコード8 - 11 304 .word 0FFFFFFFFH ; IDコード12 - 15 324 305 EOS 325 306 (12..30).each do |excnoVal| … … 338 319 339 320 # 340 # å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾åã®ã¨ã©ã¼ãã§ãã¯321 # 割込み要求ライン属性に関するターゲット依存のエラーチェック 341 322 # 342 323 $cfgData[:CFG_INT].each do |key, params| 343 # IRQ å²è¾¼ã¿çªå·ãã©ããããã§ãã¯324 # IRQ割込み番号かどうかをチェック 344 325 if $INTNO_INT.include?(key) 345 # TA_POSEDGE ã¨TA_NEGEDGEãåæã«è¨å®ããã¦ããå ´å326 # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合 346 327 if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE 347 328 error_illegal_sym("E_RSATR", params, :intatr, :intno) 348 329 end 349 # TA_POSEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å330 # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合 350 331 if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE 351 332 error_illegal_sym("E_RSATR", params, :intatr, :intno) 352 333 end 353 # TA_NEGEDGE ã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å334 # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 354 335 if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE 355 336 error_illegal_sym("E_RSATR", params, :intatr, :intno) 356 337 end 357 # TA_POSEDGE ã¨TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨å®ããã¦ããå ´å338 # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合 358 339 if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE 359 340 error_illegal_sym("E_RSATR", params, :intatr, :intno) 360 341 end 361 342 else 362 # IRQ å²è¾¼ã¿ä»¥å¤ã®å²è¾¼ã¿ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãæå®ããã¦ããå ´å343 # IRQ割込み以外の割込みに対して割込み属性が指定されている場合 363 344 if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0 364 345 error_illegal_sym("E_RSATR", params, :intatr, :intno) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_offset.trb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby; charset=UTF-8
r313 r315 1 1 # -*- coding: utf-8 -*- 2 2 # 3 # ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼3 # オフセットファイル生成用Rubyテンプレート(ARM用) 4 4 # 5 5 # $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $ … … 7 7 8 8 # 9 # ã¿ã¼ã²ããéä¾åé¨ã®ã¤ã³ã¯ã«ã¼ã9 # ターゲット非依存部のインクルード 10 10 # 11 11 IncludeTrb("kernel/genoffset.trb") 12 12 13 13 # 14 # ãã£ã¼ã«ãã®ãªãã»ããã®å®ç¾©ã®çæ14 # フィールドのオフセットの定義の生成 15 15 # 16 16 GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
-
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sil.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 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 * の責任を負わない. 50 35 * 51 36 * @(#) $Id$ … … 53 38 54 39 /* 55 * sil.h ã®ããã»ããµä¾åé¨ï¼RX630ç¨ï¼40 * sil.hのプロセッサ依存部(RX630用) 56 41 */ 57 42 … … 65 50 66 51 /* 67 * å 68 ¨å²è¾¼ã¿ç¦æ¢ 52 * 全割込み禁止 69 53 */ 70 54 Inline uint32_t … … 81 65 82 66 /* 83 * å 84 ¨å²è¾¼ã¿è¨±å¯ 67 * 全割込み許可 85 68 */ 86 69 Inline void … … 94 77 95 78 /* 96 * å 97 ¨å²è¾¼ã¿ããã¯ç¶æ 98 ã®å¶å¾¡ 79 * 全割込みロック状態の制御 99 80 */ 100 81 #define SIL_PRE_LOC uint32_t TOPPERS_i_psw; … … 104 85 105 86 /* 106 * ã¨ã³ãã£ã¢ã³ã®å転87 * エンディアンの反転 107 88 * 108 * æ¬éçºç°å¢ã§ã¯ã¨ã³ãã£ã¢ã³å¤æå½ä»¤ãåå¨ãããã,109 * ã¢ã¼ããã¯ãã£ä¾åé¨ã«ã¦ãã¯ããä¸æ¸ããã.89 * 本開発環境ではエンディアン変換命令が存在するため, 90 * アーキテクチャ依存部にてマクロを上書きする. 110 91 */ 111 92 #define TOPPERS_SIL_REV_ENDIAN_UINT16( data ) \ … … 116 97 117 98 /* 118 * å¾®å°æéå¾ 119 ã¡ 99 * 微少時間待ち 120 100 */ 121 101 extern void sil_dly_nse( ulong_t dlytim ) throw(); … … 125 105 126 106 /* 127 * ããã»ããµã®ã¨ã³ãã£ã¢ã³128 */ 129 #define SIL_ENDIAN_LITTLE /* ãªãã«ã¨ã³ãã£ã¢ã³*/107 * プロセッサのエンディアン 108 */ 109 #define SIL_ENDIAN_LITTLE /* リトルエンディアン */ 130 110 131 111 #ifndef TOPPERS_MACRO_ONLY 132 112 133 113 /* 134 * ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°114 * メモリ空間アクセス関数 135 115 */ 136 116 #define TOPPERS_OMIT_SIL_ACCESS 137 117 138 118 /* 139 * 8 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿119 * 8ビット単位の読出し/書込み 140 120 */ 141 121 #ifdef UINT8_MAX … … 159 139 160 140 /* 161 * 16 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿141 * 16ビット単位の読出し/書込み 162 142 */ 163 143 … … 177 157 } 178 158 179 #ifdef SIL_ENDIAN_BIG /* ããã°ã¨ã³ãã£ã¢ã³ããã»ããµ*/159 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 180 160 181 161 #define sil_reh_bem(mem) sil_reh_mem(mem) … … 204 184 #endif /* TOPPERS_OMIT_SIL_WRH_LEM */ 205 185 #else /* SIL_ENDIAN_BIG */ 206 #ifdef SIL_ENDIAN_LITTLE /* ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµ*/186 #ifdef SIL_ENDIAN_LITTLE /* リトルエンディアンプロセッサ */ 207 187 208 188 #define sil_reh_lem(mem) sil_reh_mem(mem) … … 238 218 239 219 /* 240 * 32 ãããåä½ã®èªåºãï¼æ¸è¾¼ã¿220 * 32ビット単位の読出し/書込み 241 221 */ 242 222 … … 256 236 } 257 237 258 #ifdef SIL_ENDIAN_BIG /* ããã°ã¨ã³ãã£ã¢ã³ããã»ããµ*/238 #ifdef SIL_ENDIAN_BIG /* ビッグエンディアンプロセッサ */ 259 239 260 240 #define sil_rew_bem(mem) sil_rew_mem(mem) … … 282 262 283 263 #endif /* TOPPERS_OMIT_SIL_WRW_LEM */ 284 #else /* SIL_ENDIAN_BIG */ /* ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµ*/264 #else /* SIL_ENDIAN_BIG */ /* リトルエンディアンプロセッサ */ 285 265 286 266 #define sil_rew_lem(mem) sil_rew_mem(mem) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 5 5 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 6 6 * 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 * 免責すること. 43 29 * 44 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 47 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 48 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 49 * ã®è²¬ä»»ãè² ããªãï¼ 30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 50 35 * 51 36 * @(#) $Id$ … … 53 38 54 39 /* 55 * t_stddef.h ã®ããã»ããµä¾åé¨ï¼RX630ç¨ï¼40 * t_stddef.hのプロセッサ依存部(RX630用) 56 41 * 57 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯58 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã59 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼42 * このインクルードファイルは,target_stddef.h(または,そこからインク 43 * ルードされるファイル)のみからインクルードされる.他のファイルから 44 * 直接インクルードしてはならない. 60 45 */ 61 46 … … 64 49 65 50 /* 66 * ã¿ã¼ã²ãããèå¥ããããã®ãã¯ãã®å®ç¾©51 * ターゲットを識別するためのマクロの定義 67 52 */ 68 #define TOPPERS_RX630 /* ããã»ããµç¥ç§°*/53 #define TOPPERS_RX630 /* プロセッサ略称 */ 69 54 70 55 #endif /* TOPPERS_PRC_STDDEF_H */ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_support.S
-
Property svn:mime-type
changed from
text/plain
totext/gas; charset=UTF-8
r313 r315 11 11 ; Copyright (C) 2013 by Mitsuhiro Matsuura 12 12 ; 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 ; 免責すること. 49 35 ; 50 ; æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 51 ã 52 ; ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 53 ; ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 54 ; ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 55 ; ã®è²¬ä»»ãè² ããªãï¼ 36 ; 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 37 ; よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 38 ; に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 39 ; アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 40 ; の責任を負わない. 56 41 ; 57 42 ; @(#) $Id$ … … 59 44 60 45 ; 61 ; ããã»ããµä¾åã¢ã¸ã¥ã¼ã« ã¢ã»ã³ããªè¨èªé¨ï¼RX630ç¨ï¼46 ; プロセッサ依存モジュール アセンブリ言語部(RX630用) 62 47 ; 63 48 #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) /* 型キャストを行うマクロ */ 67 52 #include "kernel_impl.h" 68 53 69 54 ; 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 122 84 ; 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 128 89 ; add #TCB_sp, r15, r5 129 90 ; mov.l r0, [r5] 130 ; åãªãã»ããå¤ãå¤æã, æ¡ä»¶ã¢ã»ã³ãã«ã«ããã³ã¼ããåãæ¿ãã131 ; 132 133 ; 134 ; æ§é ä½ã¢ã¯ã»ã¹ã®ãªãã»ããå®ç¾©91 ; 各オフセット値を判断し, 条件アセンブルによりコードを切り替える 92 ; 93 94 ; 95 ; 構造体アクセスのオフセット定義 135 96 ; 136 97 #include "offset.h" 137 98 138 99 ; 139 ; å種EQUå®ç¾©(Hãã¡ã¤ã«ã®#defineå®ç¾©)100 ; 各種EQU定義(Hファイルの#define定義) 140 101 ; 141 102 #include "target_config.h" … … 190 151 191 152 ; 192 ; TCB_sp ã¸ã®æ¸è¾¼ã¿ãã¯ã153 ; TCB_sp への書込みマクロ 193 154 ; 194 155 .macro st_TCB_sp src, tcb, tmp … … 202 163 203 164 ; 204 ; TCB_sp ããã®èªåºããã¯ã165 ; TCB_sp からの読出しマクロ 205 166 ; 206 167 .macro ld_TCB_sp dst, tcb, tmp … … 214 175 215 176 ; 216 ; TCB_pc ã¸ã®æ¸è¾¼ã¿ãã¯ã177 ; TCB_pc への書込みマクロ 217 178 ; 218 179 .macro st_TCB_pc src, tcb, tmp … … 226 187 227 188 ; 228 ; TCB_pc ããã®èªåºããã¯ã189 ; TCB_pc からの読出しマクロ 229 190 ; 230 191 .macro ld_TCB_pc dst, tcb, tmp … … 238 199 239 200 ; 240 ; TCB_texptn ããã®èªåºããã¯ã201 ; TCB_texptn からの読出しマクロ 241 202 ; 242 203 .macro ld_TCB_texptn dst, tcb, tmp … … 250 211 251 212 ; 252 ; TCB_p_tinib ããã®èªåºããã¯ã213 ; TCB_p_tinib からの読出しマクロ 253 214 ; 254 215 .macro ld_TCB_p_tinib dst, tcb, tmp … … 262 223 263 224 ; 264 ; TINIB_exinf ããã®èªåºããã¯ã225 ; TINIB_exinf からの読出しマクロ 265 226 ; 266 227 .macro ld_TINIB_exinf dst, tinib, tmp … … 274 235 275 236 ; 276 ; TINIB_task ããã®èªåºããã¯ã237 ; TINIB_task からの読出しマクロ 277 238 ; 278 239 .macro ld_TINIB_task dst, tinib, tmp … … 289 250 290 251 ; 291 ; APIããã®ã¿ã¹ã¯ãã£ã¹ãããã£å 292 ¥å£ 293 ; 294 ; å¼ã³åºãæ¡ä»¶: 295 ; ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç 296 §) 297 ; 298 ; ããã§ã¯, ã³ã³ããã¹ãã®éé¿ã¨, å®è¡åéçªå°ã®è¨å®ããã. 252 ; APIからのタスクディスパッチャ入口 253 ; 254 ; 呼び出し条件: 255 ; ・ディスパッチャモード(ファイルヘッダ参照) 256 ; 257 ; ここでは, コンテキストの退避と, 実行再開番地の設定をする. 299 258 ; 300 259 __kernel_dispatch: 301 pushm r6-r13 ; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å260 pushm r6-r13 ; 非スクラッチレジスタ保存 302 261 mov.l #__kernel_p_runtsk, r15 303 262 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に保存 306 265 bra dispatcher 307 266 308 267 ; 309 ; APIã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£ 310 ; 311 ; å¼ã³åºãæ¡ä»¶: 312 ; ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç 313 §) 314 ; 315 ; ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, ã³ã³ããã¹ãã®å¾©å¸°ããã. 268 ; APIへのタスクディスパッチャ出口 269 ; 270 ; 呼び出し条件: 271 ; ・ディスパッチャモード(ファイルヘッダ参照) 272 ; 273 ; ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする. 316 274 ; 317 275 dispatch_r: 318 btst #TCB_enatex_bit, TCB_enatex[r14].b ; ã¿ã¹ã¯ä¾å¤å¦ç許å¯?276 btst #TCB_enatex_bit, TCB_enatex[r14].b ; タスク例外処理許可? 319 277 bz dispatch_r_rts 320 ld_TCB_texptn r5, r14, r4 ; ä¿çä¾å¤è¦å ããããï¼278 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 321 279 cmp #0, r5 322 280 bz dispatch_r_rts 323 bsr __kernel_call_texrtn ; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡281 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 324 282 dispatch_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ロック解除状態にし, タスクを起動する. 339 293 ; 340 294 __kernel_start_r: 341 295 mov.l #_ext_tsk, r5 342 push.l r5 ; æ»ãçªå°ãã¹ã¿ãã¯ã«ç©ã296 push.l r5 ; 戻り番地をスタックに積む 343 297 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 ; タスクの起動番地を取得 347 300 .if TIPM_LOCK == -15 348 setpsw i ; å²è¾¼ã¿è¨±å¯(CPUããã¯è§£é¤ç¶æ 349 ) 301 setpsw i ; 割込み許可(CPUロック解除状態) 350 302 .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 ) 363 308 .endif 364 309 jmp r5 365 310 366 311 ; 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 ; ここでは, ディスパッチャモードに変更する. 381 322 ; 382 323 __kernel_start_dispatch: 383 324 mov.l #__kernel_intnest, r5 384 mov.w #0, [r5] ; ã¿ã¹ã¯ã³ã³ããã¹ãã«åæã325 mov.w #0, [r5] ; タスクコンテキストに切換え 385 326 #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 のアドレス取得だけは行なう. 405 339 ; 406 340 __exit_and_dispatch: … … 408 342 409 343 ; 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 からきた場合 : 割込みスタック 422 356 ; 423 357 dispatcher: 424 358 .if LOG_DSP_ENTER == 1 425 359 push.l r15 426 mov.l r14, r1 ; å¼æ°(ãã£ã¹ãããå 427 TCB)ãè¨å® 360 mov.l r14, r1 ; 引数(ディスパッチ元TCB)を設定 428 361 bsr _kernel_log_dsp_enter 429 362 pop.l r15 430 363 .endif 431 364 mov.l #__kernel_p_schedtsk, r5 432 mov.l [r5], [r15] ; p_schedtsk ã p_runtsk ã«365 mov.l [r5], [r15] ; p_schedtsk を p_runtsk に 433 366 mov.l [r15], r14 434 367 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 ; タスクスタックポインタを復帰 437 370 .if LOG_DSP_LEAVE == 1 438 371 push.l r14 439 mov.l r14, r1 ; å¼æ°(ãã£ã¹ãããå 440 TCB)ãè¨å® 372 mov.l r14, r1 ; 引数(ディスパッチ先TCB)を設定 441 373 bsr _kernel_log_dsp_leave 442 374 pop.l r14 443 375 .endif 444 376 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つの意味がある. 456 386 ; 457 387 dispatcher_pre_idle: 458 388 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] ; 非タスクコンテキストに切換え 462 392 #if TIPM_LOCK != -15 463 mov.l #__kernel_lock_flag, r5 ; CPUããã¯è§£é¤ç¶æ 464 㸠393 mov.l #__kernel_lock_flag, r5 ; CPUロック解除状態へ 465 394 mov.l #0, [r5] 466 mvtc #0, psw ; åªå 467 度0ã®å²è¾¼ã¿å¦çä¸ãå½è£ 468 395 mvtc #0, psw ; 優先度0の割込み処理中を偽装 469 396 #endif 470 397 471 398 dispatcher_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 なら 478 403 mov.l [r5], r4 479 404 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] ; タスクコンテキストに切換え 484 409 #if TIPM_LOCK != -15 485 mov.l #__kernel_lock_flag, r5 ; CPUããã¯ç¶æ 486 㸠410 mov.l #__kernel_lock_flag, r5 ; CPUロック状態へ 487 411 mov.l #1, [r5] 488 412 mov.l #__kernel_saved_ipl, r5 489 413 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 ; モードとスタックを非タスクコンテキスト用に切り替え. 505 424 ; 506 425 .global __kernel_call_exit_kernel 507 426 __kernel_call_exit_kernel: 508 427 #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ロック解除状態へ 513 430 mov.l #0, [r5] 514 431 #endif 515 432 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] ; 非タスクコンテキストに切換え 519 436 bsr __kernel_exit_kernel 520 437 bra __kernel_call_exit_kernel … … 522 439 523 440 ; 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レジスタへのオフセット 547 456 ; ACC + FPSW + R14--R15 + R1--R5 + PC 548 457 ; … … 551 460 ret_int: 552 461 .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値取得 554 463 and #PSW_IPL_MASK, r5 555 mvtc r5, psw ; å 556 ¨å²è¾¼ã¿ããã¯(CPUããã¯)ç¶æ 557 558 ; å²è¾¼ã¿/CPUä¾å¤çºçåã®å²è¾¼ã¿åªå 559 度 464 mvtc r5, psw ; 全割込みロック(CPUロック)状態 465 ; 割込み/CPU例外発生前の割込み優先度 560 466 .else 561 mov.l #__kernel_lock_flag, r5 ; CPUããã¯ç¶æ 562 㸠467 mov.l #__kernel_lock_flag, r5 ; CPUロック状態へ 563 468 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値取得 565 470 and #PSW_IPL_MASK, r5 566 471 mov.l #__kernel_saved_ipl, r4 567 472 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 ; 割込み優先度マスク全解除でない状態 575 475 .endif 576 476 mov.l #__kernel_reqflg, r5 … … 578 478 mov.l #__kernel_p_runtsk, r15 579 479 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 へ 581 481 mov.l [r5], r5 582 482 cmp #0, r5 … … 584 484 mov.l #__kernel_p_schedtsk, r5 585 485 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に保存 591 491 bra dispatcher 592 492 593 493 ; 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: ;タスクモニタ用ラベル 605 503 ret_int_r: 606 popm r6-r13 ; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°504 popm r6-r13 ; 非スクラッチレジスタ復帰 607 505 ret_int_r_call_tex: 608 btst #TCB_enatex_bit, TCB_enatex[r14].b ; ã¿ã¹ã¯ä¾å¤å¦ç許å¯?506 btst #TCB_enatex_bit, TCB_enatex[r14].b ; タスク例外処理許可? 609 507 bz ret_int_r_rte 610 ld_TCB_texptn r5, r14, r4 ; ä¿çä¾å¤è¦å ããããï¼508 ld_TCB_texptn r5, r14, r4 ; 保留例外要因があるか? 611 509 cmp #0, r5 612 510 bz ret_int_r_rte 613 bsr __kernel_call_texrtn ; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡511 bsr __kernel_call_texrtn ; タスク例外ハンドラ呼出し処理実行 614 512 ret_int_r_rte: 615 513 #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ロック解除状態へ 620 516 mov.l #0, [r5] 621 517 #endif 622 popm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿å¾©å¸°623 mvtaclo r5 ; ACC æä¸ä½16bitã¯0ã§å¾©å¸°518 popm r4-r5 ; アキュムレータ復帰 519 mvtaclo r5 ; ACC最下位16bitは0で復帰 624 520 mvtachi r4 625 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°626 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°521 popc fpsw ; FPUステータスレジスタ復帰 522 popm r14-r15 ; レジスタ復帰 627 523 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 ; 上方向に向かって積み上げられるものとする. 653 547 ; 654 548 ; ------------------------- … … 678 572 ; -------------------------(SP + 44) 679 573 ; 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 ; ディスパッチが要求された場合に,ディスパッチされない. 694 585 ; 695 586 _kernel_interrupt: 696 pushm r14-r15 ; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿697 pushc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿éé¿587 pushm r14-r15 ; スクラッチレジスタを退避 588 pushc fpsw ; FPUステータスレジスタ退避 698 589 mvfacmi r5 699 shll #16, r5 ; ACC æä¸ä½16bitã¯0ã¨ãã590 shll #16, r5 ; ACC最下位16bitは0とする 700 591 mvfachi r4 701 pushm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿éé¿592 pushm r4-r5 ; アキュムレータ退避 702 593 mov.l #__kernel_intnest, r5 703 594 mov.w [r5], r4 704 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã595 add #1, r4 ; ネスト回数をインクリメント 705 596 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 ; 割込み用のスタックへ切替える 711 602 mov.l [r5], r0 712 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ 713 interrupt_from_int: ; å¤éå²è¾¼ã¿ 714 setpsw i ; å²è¾¼ã¿è¨±å¯(CPUããã¯è§£é¤ç¶æ 715 ) 603 push.l r3 ; タスクスタックを保持 604 interrupt_from_int: ; 多重割込み 605 setpsw i ; 割込み許可(CPUロック解除状態) 716 606 717 607 .if LOG_INH_LEAVE == 1 718 push.l r1 ; ãã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ608 push.l r1 ; ログトレースの引数を保持 719 609 .endif 720 610 721 611 .if LOG_INH_ENTER == 1 722 612 push.l r2 723 bsr _kernel_log_inh_enter ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã 724 ; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å 725 ¥ã£ã¦ãã 613 bsr _kernel_log_inh_enter ; ログトレース関数の呼出し 614 ; 引数の割込み要因番号は既にr1に入っている 726 615 pop r2 727 616 .endif 728 617 729 jsr r2 ; C ã«ã¼ãã³å¼ã³åºã618 jsr r2 ; Cルーチン呼び出し 730 619 731 620 .if LOG_INH_LEAVE == 1 732 pop r1 ; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨å®733 bsr _kernel_log_inh_leave ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã621 pop r1 ; 引数に割込み要因番号を設定 622 bsr _kernel_log_inh_leave ; ログトレース関数の呼出し 734 623 .endif 735 624 736 clrpsw i ; å²è¾¼ã¿ç¦æ¢(CPUããã¯ç¶æ 737 ) 625 clrpsw i ; 割込み禁止(CPUロック状態) 738 626 mov.l #__kernel_intnest, r5 739 627 mov.w [r5], r4 740 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã628 sub #1, r4 ; ネスト回数をデクリメント 741 629 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 ; ディスパッチ要求がないか? 747 635 mov.l [r5], r5 748 636 cmp #1, r5 749 bz ret_int ; ããã° ret_int ã¸ã¸ã£ã³ã637 bz ret_int ; あれば ret_int へジャンプ 750 638 interrupt_return: 751 popm r4-r5 ; ã¢ãã¥ã ã¬ã¼ã¿å¾©å¸°752 mvtaclo r5 ; ACC æä¸ä½16bitã¯0ã§å¾©å¸°639 popm r4-r5 ; アキュムレータ復帰 640 mvtaclo r5 ; ACC最下位16bitは0で復帰 753 641 mvtachi r4 754 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°755 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°642 popc fpsw ; FPUステータスレジスタ復帰 643 popm r14-r15 ; レジスタ復帰 756 644 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 ; する目的で退避しており, 出口処理では保存内容を破棄すればよい. 786 669 ; 787 670 ; ------------------------- 788 ; | CPU ä¾å¤è¦å çªå·| <----- p_excinf671 ; | CPU例外要因番号 | <----- p_excinf 789 672 ; ------------------------- (intptr_t)(p_excinf + 0) 790 673 ; | R6(4byte) | … … 829 712 ; ------------------------- (intptr_t)(p_excinf + 80) 830 713 ; 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例外ハンドラ呼出し後に不要となるスタック情報のサイズ 857 735 ; EXCNO + R6--R13 858 736 ; … … 860 738 861 739 _kernel_exception: 862 pushm r14-r15 ; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿740 pushm r14-r15 ; スクラッチレジスタを退避 863 741 pushc fpsw 864 742 mvfacmi r5 865 shll #16, r5 ; ACC æä¸ä½16bitã¯0ã¨ãã743 shll #16, r5 ; ACC最下位16bitは0とする 866 744 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 ; スタックポインタを取り出し 871 749 mov.l EXC_GET_PSW_OFFSET[r3], r5 872 750 and #PSW_I_MASK, r5 873 bz exception_nonkernel ; å 874 ¨å²è¾¼ã¿ç¦æ¢(CPUããã¯)ç¶æ 875 ãªã管çå¤ 751 bz exception_nonkernel ; 全割込み禁止(CPUロック)状態なら管理外 876 752 #if TIPM_LOCK != -15 877 753 mov.l EXC_GET_PSW_OFFSET[r3], r5 878 754 and #PSW_IPL_MASK, r5 879 755 cmp #IPL_LOCK, r5 880 bgt exception_nonkernel ; IPL ãCPUããã¯ã¬ãã«ä»¥ä¸ãªã管çå¤756 bgt exception_nonkernel ; IPLがCPUロックレベル以上なら管理外 881 757 #endif 882 758 mov.l #__kernel_intnest, r5 883 759 mov.w [r5], r4 884 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã760 add #1, r4 ; ネスト回数をインクリメント 885 761 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 ; 割込み用のスタックへ切替える 890 766 mov.l [r5], r0 891 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ892 exception_from_int: ; å¤éå²è¾¼ã¿767 push.l r3 ; タスクスタックを保持 768 exception_from_int: ; 多重割込み 893 769 mov.l EXC_GET_PSW_OFFSET[r3], r5 894 mvtc r5, psw ; CPUä¾å¤çºçåã®ç¶æ 895 ã«æ»ã 770 mvtc r5, psw ; CPU例外発生前の状態に戻す 896 771 #if LOG_EXC_LEAVE == 1 897 push.l r1 ; ãã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ772 push.l r1 ; ログトレースの引数を保持 898 773 #endif 899 774 900 775 #if LOG_EXC_ENTER == 1 901 776 pushm r2-r3 902 bsr _kernel_log_exc_enter ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã 903 ; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å 904 ¥ã£ã¦ãã 777 bsr _kernel_log_exc_enter ; ログトレース関数の呼出し 778 ; 引数の割込み要因番号は既にr1に入っている 905 779 popm r2-r3 906 780 #endif 907 781 908 mov.l r3, r1 ; å¼æ°ã®p_excinfãè¨å®909 jsr r2 ; C ã«ã¼ãã³å¼ã³åºã782 mov.l r3, r1 ; 引数のp_excinfを設定 783 jsr r2 ; Cルーチン呼び出し 910 784 911 785 .if LOG_EXC_LEAVE == 1 912 pop r1 ; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨å®913 bsr _kernel_log_exc_leave ; ãã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã786 pop r1 ; 引数に割込み要因番号を設定 787 bsr _kernel_log_exc_leave ; ログトレース関数の呼出し 914 788 .endif 915 789 916 clrpsw i ; ããããã¯å¿ 917 ãå²è¾¼ã¿ç¦æ¢ 790 clrpsw i ; ここからは必ず割込み禁止 918 791 mov.l #__kernel_intnest, r5 919 792 mov.w [r5], r4 920 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã793 sub #1, r4 ; ネスト回数をデクリメント 921 794 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 ; ディスパッチ要求がないか? 927 800 mov.l [r5], r5 928 801 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 へジャンプ 933 805 934 806 exception_nonkernel: 935 807 mov.l #__kernel_intnest, r5 936 808 mov.w [r5], r4 937 add #1, r4 ; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã809 add #1, r4 ; ネスト回数をインクリメント 938 810 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 ; 割込み用のスタックへ切替える 943 815 mov.l [r5], r0 944 push.l r3 ; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ945 exception_from_nonkernelint: ; å¤éå²è¾¼ã¿816 push.l r3 ; タスクスタックを保持 817 exception_from_nonkernelint: ; 多重割込み 946 818 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 ; ここからは必ず割込み禁止 955 825 mov.l #__kernel_intnest, r5 956 826 mov.w [r5], r4 957 sub #1, r4 ; ãã¹ãåæ°ããã¯ãªã¡ã³ã827 sub #1, r4 ; ネスト回数をデクリメント 958 828 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 ; タスクのスタックに戻す 963 833 964 834 exception_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で復帰 969 838 mvtachi r4 970 popc fpsw ; FPU ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°971 popm r14-r15 ; ã¬ã¸ã¹ã¿å¾©å¸°839 popc fpsw ; FPUステータスレジスタ復帰 840 popm r14-r15 ; レジスタ復帰 972 841 popm r1-r5 973 rte ; å²è¾¼ã¿åã®å¦çã«æ»ã 974 975 976 ; 977 ; å¾®å°æéå¾ 978 ã¡ 842 rte ; 割込み前の処理に戻る 843 844 845 ; 846 ; 微少時間待ち 979 847 ; 980 848 _sil_dly_nse: -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_syssvc.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼RX630ç¨ï¼42 * テストプログラムのターゲット依存定義(RX630用) 58 43 */ 59 44 … … 62 47 63 48 /* 64 * èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾åé¨ã®èä½æ¨©è¡¨ç¤ºã65 * 追å ããããã®ãã¯ãï¼49 * 起動メッセージにターゲット依存部の著作権表示を 50 * 追加するためのマクロ. 66 51 */ 67 52 #define PRC_COPYRIGHT \ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.S
-
Property svn:mime-type
changed from
text/plain
totext/gas; charset=UTF-8
r313 r315 6 6 ;* Copyright (C) 2010 by Witz Corporation, JAPAN 7 7 ;* 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 ;* 免責すること. 44 30 ;* 45 ;* æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 ;* ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 ;* ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 ;* ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 ;* ã®è²¬ä»»ãè² ããªãï¼ 31 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 ;* の責任を負わない. 51 36 ;* 52 37 ;* @(#) $Id$ … … 59 44 _trigger_cpu_exception: 60 45 ; 61 ; CPU ä¾å¤ã®çºç46 ; CPU例外の発生 62 47 ; 63 ; ã¼ãå²ãç®ãè¡ããã¨ã§, æµ®åå°æ°ç¹ä¾å¤ã64 ; çºçããã.48 ; ゼロ割り算を行うことで, 浮動小数点例外を 49 ; 発生させる. 65 50 ; 66 51 mvtc #00001000H, fpsw -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 6 6 * Copyright (C) 2008-2010 by Witz Corporation, JAPAN 7 7 * 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 * 免責すること. 44 30 * 45 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 * ã®è²¬ä»»ãè² ããªãï¼ 31 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 * の責任を負わない. 51 36 * 52 37 * @(#) $Id$ … … 54 39 55 40 /* 56 * ãã¹ãããã°ã©ã ã®ã¿ã¼ã²ããä¾åå®ç¾©ï¼RX630ç¨ï¼41 * テストプログラムのターゲット依存定義(RX630用) 57 42 */ 58 43 … … 60 45 #define TOPPERS_PRC_TEST_H 61 46 62 #define CPUEXC1 25 /* æµ®åå°æ°ç¹ä¾å¤*/47 #define CPUEXC1 25 /* 浮動小数点例外 */ 63 48 #define RAISE_CPU_EXCEPTION trigger_cpu_exception() 64 49 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_unrename.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
-
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * RX630 ã«ä¾åããå®ç¾©42 * RX630に依存する定義 58 43 */ 59 44 #ifndef TOPPERS_RX630_H … … 63 48 64 49 /* 65 * CPU ä¾å¤ãã³ãã©çªå·ã®å®ç¾©(åºå®ãã¯ã¿ãã¼ãã«)50 * CPU例外ハンドラ番号の定義(固定ベクタテーブル) 66 51 * 67 * çªå·ã®ç¯å²ã¯0 - 3168 */ 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 * 割込み番号の定義(可変ベクタテーブル) 77 62 */ 78 63 #define INT_BUSERR 16 … … 263 248 264 249 /* 265 * åã¢ã¸ã¥ã¼ã«ã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 266 å ± 250 * 各モジュールのレジスタ及び設定ビット情報 267 251 */ 268 252 … … 270 254 271 255 /* 272 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Aï¼MSTPCRAï¼256 * モジュールストップコントロールレジスタA(MSTPCRA) 273 257 */ 274 258 #define SYSTEM_MSTPCRA_ADDR ( ( volatile uint32_t __evenaccess * )0x00080010 ) … … 308 292 309 293 /* 310 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Bï¼MSTPCRBï¼294 * モジュールストップコントロールレジスタB(MSTPCRB) 311 295 */ 312 296 #define SYSTEM_MSTPCRB_ADDR ( ( volatile uint32_t __evenaccess * )0x00080014 ) … … 345 329 346 330 /* 347 * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ããã¼ã«ã¬ã¸ã¹ã¿Cï¼MSTPCRCï¼331 * モジュールストップコントロールレジスタC(MSTPCRC) 348 332 */ 349 333 #define SYSTEM_MSTPCRC_ADDR ( ( volatile uint32_t __evenaccess * )0x00080018 ) … … 382 366 383 367 /* 384 * ã¯ããã¯çºçåè·¯368 * クロック発生回路 385 369 */ 386 370 #define SYSTEM_SCKCR_ADDR ( ( volatile uint32_t __evenaccess * )0x00080020 ) … … 402 386 403 387 /* 404 * ãããã¯ãã¬ã¸ã¹ã¿388 * プロテクトレジスタ 405 389 */ 406 390 #define SYSTEM_PRCR_ADDR ( ( volatile uint16_t __evenaccess * )0x000803FE ) 407 391 408 392 /* 409 * å²ãè¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿393 * 割り込み要求レジスタ 410 394 */ 411 395 #define ICU_IR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087000 ) … … 668 652 669 653 /* 670 * å²ãè¾¼ã¿è¦æ±å 671 è¨å®ã¬ã¸ã¹ã¿ 654 * 割り込み要求先設定レジスタ 672 655 */ 673 656 #define ICU_ISELR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087100 ) … … 930 913 931 914 /* 932 * å²ãè¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿915 * 割り込み要求許可レジスタ 933 916 */ 934 917 #define ICU_IER02_ADDR ( ( volatile uint8_t __evenaccess * )0x00087202 ) … … 971 954 972 955 /* 973 * å²ãè¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿i(i=0ï½253)ã®è¨å®956 * 割り込み要因プライオリティレジスタi(i=0~253)の設定 974 957 */ 975 958 #define ICU_IPR000_ADDR ( ( volatile uint8_t __evenaccess * )0x00087300 ) … … 1233 1216 1234 1217 /* 1235 * IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿1218 * IRQコントロールレジスタ 1236 1219 */ 1237 1220 #define ICU_IRQ0_ADDR ( ( volatile uint8_t __evenaccess * )0x00087500 ) … … 1255 1238 1256 1239 /* 1257 * åãã£ã³ãã«ã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 1258 å ± 1240 * 各チャンネルのレジスタ及び設定ビット情報 1259 1241 */ 1260 1242 #define CMT_CMSTR0_ADDR ( ( volatile uint16_t __evenaccess * )0x00088000 ) … … 1365 1347 1366 1348 /* 1367 * I/Oãã¼ãã®ã¬ã¸ã¹ã¿åã³è¨å®ãããæ 1368 å ± 1349 * I/Oポートのレジスタ及び設定ビット情報 1369 1350 */ 1370 1351 #define PORT0_PDR_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C000 ) … … 1536 1517 1537 1518 /* 1538 * ãã«ããã¡ã³ã¯ã·ã§ã³ãã³ã³ã³ããã¼ã©ã®ã¬ã¸ã¹ã¿æ 1539 å ± 1519 * マルチファンクションピンコントローラのレジスタ情報 1540 1520 */ 1541 1521 #define MPC_PFUSB0_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C114 ) … … 1676 1656 1677 1657 /* 1678 * ãªã¢ã«ã¿ã¤ã ã¯ããã¯1658 * リアルタイムクロック 1679 1659 */ 1680 1660 #define RTC_R64CNT_ADDR ( ( volatile uint8_t __evenaccess * )0x0008C400 ) … … 1688 1668 1689 1669 /* 1690 * 12 ãããA/D ã³ã³ãã¼ã¿1670 * 12 ビットA/D コンバータ 1691 1671 */ 1692 1672 #define S12AD_ADCSR_ADDR ( ( volatile uint8_t __evenaccess * )0x00089000 ) … … 1917 1897 1918 1898 /* 1919 * UART é¢é£ã®å®ç¾©1899 * UART関連の定義 1920 1900 * 1921 * pdic ã®rx600/rx630_uart.cã§ä½¿ç¨ããï¼1922 */ 1923 /* 1924 * ã·ãªã¢ã«I/Oã®åæ°1901 * pdicのrx600/rx630_uart.cで使用する. 1902 */ 1903 /* 1904 * シリアルI/Oの個数 1925 1905 */ 1926 1906 #define TNUM_SIOP ( 2 ) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.c
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼42 * プロセッサ依存モジュール(RX630用) 58 43 */ 59 44 … … 62 47 63 48 /* 64 * å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«49 * 割込み要因プライオリティレジスタアドレステーブル 65 50 */ 66 51 volatile 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 予約 */ 88 73 ICU_IPR001_ADDR, /* No.21 FCU FIFERR */ 89 NULL, /* No.22 äºç´*/74 NULL, /* No.22 予約 */ 90 75 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 予約 */ 94 79 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 */ 99 84 ICU_IPR032_ADDR, /* No.32 ETHER */ 100 85 ICU_IPR033_ADDR, /* No.33 USB0 D0FIFO0 */ … … 125 110 ICU_IPR056_ADDR, /* No.58 CAN RXM2 */ 126 111 ICU_IPR056_ADDR, /* No.59 CAN TXM2 */ 127 NULL, /* No.60 äºç´*/128 NULL, /* No.61 äºç´*/112 NULL, /* No.60 予約 */ 113 NULL, /* No.61 予約 */ 129 114 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 予約 */ 157 142 ICU_IPR090_ADDR, /* No.90 USBR0 */ 158 143 ICU_IPR091_ADDR, /* No.91 USBR1 */ 159 144 ICU_IPR092_ADDR, /* No.92 RTC ALM */ 160 145 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 予約 */ 165 150 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 予約 */ 169 154 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 予約 */ 173 158 ICU_IPR106_ADDR, /* No.106 ICU GROUP0 */ 174 159 ICU_IPR107_ADDR, /* No.107 ICU GROUP1 */ … … 178 163 ICU_IPR111_ADDR, /* No.111 ICU GROUP5 */ 179 164 ICU_IPR112_ADDR, /* No.112 ICU GROUP6 */ 180 NULL, /* No.113 äºç´*/165 NULL, /* No.113 予約 */ 181 166 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 予約 */ 189 174 ICU_IPR122_ADDR, /* No.122 SCI12 SCIX0 */ 190 175 ICU_IPR123_ADDR, /* No.123 SCI12 SCIX1 */ … … 233 218 ICU_IPR167_ADDR, /* No.166 POE OEI1 */ 234 219 ICU_IPR167_ADDR, /* No.167 POE OEI2 */ 235 NULL, /* No.168 äºç´*/236 NULL, /* No.169 äºç´*/220 NULL, /* No.168 予約 */ 221 NULL, /* No.169 予約 */ 237 222 ICU_IPR170_ADDR, /* No.170 TMR0 CMIA0 */ 238 223 ICU_IPR170_ADDR, /* No.171 TMR0 CMIB0 */ … … 269 254 ICU_IPR202_ADDR, /* No.202 EXDMAC EXDMACI0 */ 270 255 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 予約 */ 281 266 ICU_IPR214_ADDR, /* No.214 SCI0 RXI0 */ 282 267 ICU_IPR214_ADDR, /* No.215 SCI0 TXI0 */ … … 319 304 ICU_IPR250_ADDR, /* No.252 SCI12 TEI12 */ 320 305 ICU_IPR253_ADDR, /* No.253 IEB IEBINT */ 321 NULL, /* No.254 äºç´*/322 NULL, /* No.255 äºç´*/306 NULL, /* No.254 予約 */ 307 NULL, /* No.255 予約 */ 323 308 }; 324 309 325 310 326 311 /* 327 * å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«312 * 割込み要求許可レジスタアドレステーブル 328 313 */ 329 314 const 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 予約 */ 351 336 { ICU_IER02_ADDR, ICU_IEN5_BIT }, /* No.21 FCU FIFERR */ 352 { NULL, INVALID_OFFSET }, /* No.22 äºç´*/337 { NULL, INVALID_OFFSET }, /* No.22 予約 */ 353 338 { 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 予約 */ 357 342 { 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 */ 362 347 { ICU_IER04_ADDR, ICU_IEN0_BIT }, /* No.32 ETHER */ 363 348 { ICU_IER04_ADDR, ICU_IEN1_BIT }, /* No.33 USB0 D0FIFO0 */ … … 388 373 { ICU_IER07_ADDR, ICU_IEN2_BIT }, /* No.58 CAN2 RXM2 */ 389 374 { 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 予約 */ 392 377 { 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 予約 */ 420 405 { ICU_IER0B_ADDR, ICU_IEN2_BIT }, /* No.90 USBR0 */ 421 406 { ICU_IER0B_ADDR, ICU_IEN3_BIT }, /* No.91 USBR1 */ 422 407 { ICU_IER0B_ADDR, ICU_IEN4_BIT }, /* No.92 RTC ALM */ 423 408 { 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 予約 */ 428 413 { 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 予約 */ 432 417 { 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 予約 */ 436 421 { ICU_IER0D_ADDR, ICU_IEN2_BIT }, /* No.106 ICU GROUP0 */ 437 422 { ICU_IER0D_ADDR, ICU_IEN3_BIT }, /* No.107 ICU GROUP1 */ … … 441 426 { ICU_IER0D_ADDR, ICU_IEN7_BIT }, /* No.111 ICU GROUP5 */ 442 427 { ICU_IER0E_ADDR, ICU_IEN0_BIT }, /* No.112 ICU GROUP6 */ 443 { NULL, INVALID_OFFSET }, /* No.113 äºç´*/428 { NULL, INVALID_OFFSET }, /* No.113 予約 */ 444 429 { 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 予約 */ 452 437 { ICU_IER0F_ADDR, ICU_IEN2_BIT }, /* No.122 SCI12 SCIX0 */ 453 438 { ICU_IER0F_ADDR, ICU_IEN3_BIT }, /* No.123 SCI12 SCIX1 */ … … 496 481 { ICU_IER14_ADDR, ICU_IEN6_BIT }, /* No.166 POE OEI1 */ 497 482 { 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 予約 */ 500 485 { ICU_IER15_ADDR, ICU_IEN2_BIT }, /* No.170 TMR0 CMIA0 */ 501 486 { ICU_IER15_ADDR, ICU_IEN3_BIT }, /* No.171 TMR0 CMIB0 */ … … 532 517 { ICU_IER19_ADDR, ICU_IEN2_BIT }, /* No.202 EXDMAC EXDMAC0I */ 533 518 { 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 予約 */ 544 529 { ICU_IER1A_ADDR, ICU_IEN6_BIT }, /* No.214 SCI0 RXI0 */ 545 530 { ICU_IER1A_ADDR, ICU_IEN7_BIT }, /* No.215 SCI0 TXI0 */ … … 582 567 { ICU_IER1F_ADDR, ICU_IEN4_BIT }, /* No.252 SCI12 TEI12 */ 583 568 { 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 予約 */ 586 571 }; 587 572 588 573 589 574 /* 590 * IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«575 * IRQコントロールレジスタアドレステーブル 591 576 */ 592 577 volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = { -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 7 7 * Copyright (C) 2013 by Mitsuhiro Matsuura 8 8 * 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼42 * プロセッサ依存モジュール(RX630用) 58 43 * 59 * ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯60 * ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã61 * ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼44 * このインクルードファイルは,target_config.h(または,そこからインク 45 * ルードされるファイル)のみからインクルードされる.他のファイルから 46 * 直接インクルードしてはならない. 62 47 */ 63 48 … … 68 53 69 54 /* 70 * å²è¾¼ã¿è¦å æ°55 * 割込み要因数 71 56 */ 72 57 #define INHNO_MAX UINT_C( 256 ) … … 75 60 76 61 /* 77 * å²è¾¼ã¿å¶å¾¡ç¨åå®ç¾©62 * 割込み制御用型定義 78 63 */ 79 64 typedef struct ier_info { … … 85 70 86 71 /* 87 * å²è¾¼ã¿å¶å¾¡ç¨å®ç¾©72 * 割込み制御用定義 88 73 */ 89 74 #define INVALID_OFFSET ( 0xFFU ) … … 98 83 99 84 /* 100 * å²è¾¼ã¿å¶å¾¡ç¨ãã¼ãã«85 * 割込み制御用テーブル 101 86 */ 102 87 103 /* å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/88 /* 割込み要因プライオリティレジスタアドレス */ 104 89 extern volatile uint8_t __evenaccess * const ipr_reg_addr[]; 105 /* å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/90 /* 割込み要求許可レジスタアドレス */ 106 91 extern const IER_INFO ier_reg_addr[]; 107 /* å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/92 /* 割込み要求レジスタアドレス */ 108 93 extern volatile uint8_t __evenaccess * const ir_reg_addr[]; 109 /* IRQ ã³ã³ããã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹*/94 /* IRQコントロールレジスタアドレス */ 110 95 extern volatile uint8_t __evenaccess * const irqcr_reg_addr[]; 111 96 … … 113 98 114 99 /* 115 * ããã»ããµä¾åã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼100 * プロセッサ依存モジュール(RX630用) 116 101 */ 117 102 #include "rx630_gcc/prc_config.h" -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/start.S
-
Property svn:mime-type
changed from
text/plain
totext/gas; charset=UTF-8
r313 r315 10 10 ;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN 11 11 ;* 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 ;* 免責すること. 48 34 ;* 49 ;* æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 50 ã 51 ;* ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 52 ;* ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 53 ;* ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 54 ;* ã®è²¬ä»»ãè² ããªãï¼ 35 ;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 ;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 ;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 ;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 ;* の責任を負わない. 55 40 ;* 56 41 ;* @(#) $Id$ … … 58 43 59 44 #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) /* 型キャストを行うマクロ */ 63 48 #include "kernel_impl.h" 64 49 #include "sectrx.inc" 65 50 66 51 ; 67 ; ã¡ã¢ãªãããã®å®ç¾©(ã¿ã¼ã²ããä¾åé¨)52 ; メモリマップの定義(ターゲット依存部) 68 53 ; 69 54 70 .equ DFLRE, 007FC440H ; DFLRE ã¬ã¸ã¹ã¿55 .equ DFLRE, 007FC440H ; DFLREレジスタ 71 56 72 57 .equ DB_BLOCK_ENABLE, 02D0FH 73 58 74 59 ; 75 ; åæåã«ã¼ãã³60 ; 初期化ルーチン 76 61 ; 77 62 .section P, CODE … … 86 71 _start: 87 72 ; 88 ; é»æºæå 89 ¥å¾ã¯ã¬ãã«0, å 90 ¨å²è¾¼ã¿ç¦æ¢ç¶æ 91 ã§ãã. 92 ; ã«ã¼ãã«ã§ã¯é«éå²è¾¼ã¿ã使ç¨ããªããããBPC, BPSWåã³FINTV 93 ; ã®åæåã¯è¡ããªã. 73 ; 電源投入後はレベル0, 全割込み禁止状態である. 74 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV 75 ; の初期化は行わない. 94 76 ; 95 77 96 78 ; 97 ; å 98 èµROMï¼ãã¼ã¿ãã©ãã·ã¥ï¼é åã®è¨å® 79 ; 内蔵ROM(データフラッシュ)領域の設定 99 80 ; 100 ; ãªã»ããå¾, ãã¼ã¿ãã©ãã·ã¥é åã¯èªã¿åºãç¦æ¢ã¨ãªã£ã¦ãã101 ; ãã, èªã¿åºã許å¯ã«è¨å®ãã.81 ; リセット後, データフラッシュ領域は読み出し禁止となっている 82 ; ため, 読み出し許可に設定する. 102 83 ; 103 84 mov.l #DFLRE, r5 … … 105 86 106 87 ; 107 ; ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨å®88 ; スタックポインタの設定 108 89 ; 109 ; ã¦ã¼ã¶ã«ã¦éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãç¨æããå ´å,110 ; ã¦ã¼ã¶é åãè¨å®ãã.111 ; kernel_cfg.c ã«ã¦"_kernel_istkpt"ã®å¤ã決å®ãã.90 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合, 91 ; ユーザ領域を設定する. 92 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する. 112 93 ; 113 94 mov.l #__kernel_istkpt, r5 114 mov.l [r5], r0 ; éã¿ã¹ã¯ã³ã³ããã¹ãç¨ã¹ã¿ãã¯é åãè¨å®95 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定 115 96 116 97 ; 117 ; å¯å¤ãã¯ã¿ãã¼ãã«ã®è¨å®98 ; 可変ベクタテーブルの設定 118 99 ; 119 ; mvtc #VVECTOR_TOP, intb ; ãã¯ã¿ãã¼ãã«ã®è¨å®120 mvtc #_vvector_table, intb ; ãã¯ã¿ãã¼ãã«ã®è¨å®100 ; mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定 101 mvtc #_vvector_table, intb ; ベクタテーブルの設定 121 102 122 103 ; 123 ; ãã¼ãã¦ã§ã¢åºæã®åæåã«ã¼ãã³ã®å¼åºã104 ; ハードウェア固有の初期化ルーチンの呼出し 124 105 ; 125 106 mov.l #_hardware_init_hook, r5 … … 129 110 130 111 ; 131 ; åæå¤ããå¤æ°é åã®åæå112 ; 初期値あり変数領域の初期化 132 113 ; 133 114 init_D: 134 115 mov.l #(_edata - _data), r3 135 116 cmp #0, r3 136 beq.b clear_B ; ãµã¤ãº0ãªãåæåå¿ 137 è¦ãªã 117 beq.b clear_B ; サイズ0なら初期化必要なし 138 118 mov.l #(_data), r1 139 119 mov.l #(_mdata), r2 … … 141 121 142 122 ; 143 ; åæå¤ãªãå¤æ°é åã®åæå123 ; 初期値なし変数領域の初期化 144 124 ; 145 125 clear_B: … … 150 130 151 131 ; 152 ; software_init_hook ãå¼åºãï¼0 ã§ãªãå ´åï¼132 ; software_init_hook を呼出し(0 でない場合) 153 133 ; 154 ; ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾åãã¦å¿ 155 è¦ãªåæåå¦ç 156 ; ãããå ´åã¯ï¼software_init_hook ã¨ããé¢æ°ãç¨æããã°ãã. 134 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理 135 ; がある場合は,software_init_hook という関数を用意すればよい. 157 136 ; 158 137 mov.l #_software_init_hook, r5 … … 162 141 163 142 ; 164 ; ã«ã¼ãã«ã¹ã¿ã¼ã143 ; カーネルスタート 165 144 ; 166 145 kernel_link: -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.