20.9 メモリ・オブジェクト定義(memory_object[])
ここでは,各メモリ・オブジェクトを定義します。

必ず「3.11 メモリ・マップ設計」も参照してください。

形式

< >内は,ユーザが記述する部分を示します。

 memory_object[ ] {
     start_address = <1. メモリ・オブジェクトの先頭アドレス(start_address)>;
     end_address   = <2. メモリ・オブジェクトの終端アドレス(end_address)>;
     acptn1        = <3. アクセス許可パターン(acptn1,acptn2,acptn3)>;
     acptn2        = <3. アクセス許可パターン(acptn1,acptn2,acptn3)>;
     acptn3        = <3. アクセス許可パターン(acptn1,acptn2,acptn3)>;
 };


1 ) メモリ・オブジェクトの先頭アドレス(start_address

- 説明
メモリ・オブジェクトの先頭アドレスを,数値またはセクション名で定義します。
セクション名を指定した場合,そのセクションはリンク時に16バイト境界アドレスに配置する必要があるため,リンク時に“aligned_section”リンカ・オプションを指定してください。
数値で指定する場合は,16の倍数でなければなりません。




- 定義形式
シンボルまたは数値


- 定義範囲
数値の場合は,0〜0xFFFFFFF0で,かつ16の倍数


- 省略時の扱い
省略不可


2 ) メモリ・オブジェクトの終端アドレス(end_address

- 説明
メモリ・オブジェクトの終端アドレスを,数値またはセクション名で定義します。
セクション名を指定した場合,そのセクションの終端アドレスを16の倍数+15に切り上げたアドレスをメモリ・オブジェクトの終端アドレスと扱います。リンク時にこのセクションの終端アドレスが16の倍数+15以外となる場合は,セクション終端アドレス+1〜16の倍数+15に切り上げたアドレスまでの範囲に他のセクションを配置してはなりません。リンク時に,このセクションの後続セクションに“aligned_section”リンカ・オプションを指定することで,この条件が満たされるようになります。
数値で指定する場合は,16の倍数+15でなければなりません。




- 定義形式
シンボルまたは数値


- 定義範囲
数値の場合は,0x0000000F〜0xFFFFFFFFで,かつの16の倍数+15


- 省略時の扱い
省略不可


3 ) アクセス許可パターン(acptn1acptn2acptn3

- 説明
オペランド・リード・アクセス(acptn1), オペランド・ライト・アクセス(acptn2), 実行アクセス(acptn3)のアクセス許可パターンを,シンボルまたは数値で定義します。
シンボルとしては,TACP_SHARED(全ドメインにアクセスを許可)のみを指定できます。
ドメインごとに許可/禁止を個別に指定するには,図20−1に従って数値で指定します。
最大ドメインIDを超えるドメインIDに対するビットがセットされていた場合,cfg600pxはエラーを検出せず,RI600PX起動時にシステム・ダウンとなります。





図20−1  アクセス許可パターン

- 定義形式
シンボルまたは数値


- 定義範囲
シンボル:TACP_SHARED(全ドメインにアクセスを許可)
数値:0〜0x7FFF



- 省略時の扱い
デフォルト・システム・コンフィギュレーション・ファイルの設定値(出荷時はTACP_SHARED)を適用