Changeset 315 for rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note:
See TracChangeset
for help on using the changeset viewer.