付録B  メモリ容量
 B.1	 概  要
 RI850V4が使用/管理するメモリ領域は,その用途により,8種類のセクションに大別されます。
 
 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | 
 RI850V4のカーネル初期化フラグが割り付けられる領域
 | 
|  |  | 
|  |  | 
|  | 
 システム・スタック,タスク・スタック,データ・キュー領域,固定長メモリ・プール,可変長メモリ・プールが割り付けられる領域
 | 
|  | 
 タスク・スタック,データ・キュー領域,固定長メモリ・プール,可変長メモリ
 | 
 
 .kernel_systemのメモリ容量は,トレース・モードの種類と使用するカーネル・ライブラリの種類に依存しています。
 
 使用するカーネル・ライブラリは,下記の4種類が存在します。
 
 なお,トレース・モードの種類は,プロパティ パネル→[タスク・アナライザ]タブ→[トレース]カテゴリ→[トレース・モードの選択]で選択したものとなります。
 
 
|  |  | 
|  |  | 
| 
 ハードウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,長時間統計を取得
 |  | 
 
 
|  |  | 
|  |  | 
| 
 ハードウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,長時間統計を取得
 |  | 
 
 
|  |  | 
|  |  | 
| 
 ハードウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,長時間統計を取得
 |  | 
 
 
|  |  | 
|  |  | 
| 
 ハードウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,長時間統計を取得
 |  | 
 
 備考	 上記の値は,RI850V4が提供している全サービス・コールを利用した場合の最大値であり,処理プログラムの利用するサービス・コールの種類により,該当値は変動します。
 
 .kernel_constのメモリ容量は,情報(
メモリ領域情報,
タスク情報など)の定義数,および定義内容に依存しています。
 
 以下に,.kernel_constのメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 KERNEL_CONST =
 
     224
     + 8 * MEM_AREA_num
     + 24 * CRE_TSK_num
     + 8 * CRE_SEM_num
     + 8 * CRE_FLG_num
     + 8 * CRE_DTQ_num
     + 4 * CRE_MBX_num
     + align4(2 * CRE_MTX_num)
     + 12 * CRE_MPF_num
     + 12 * CRE_MPL_num
     + 20 * CRE_CYC_num
     + 8 * DEF_INH_num
     + 8 * DEF_SVC_num
     + 12 * ATT_INI_num
     + 8 * VATT_IDL_num
     + align4(maxint)
     + align4(TA_ACT_num)
     + align4(TA_STA_num)
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 MEM_AREA_num
 |  | 
| 
 CRE_TSK_num
 |  | 
| 
 CRE_SEM_num
 |  | 
| 
 CRE_FLG_num
 |  | 
| 
 CRE_DTQ_num
 |  | 
| 
 CRE_MBX_num
 |  | 
| 
 CRE_MTX_num
 |  | 
| 
 CRE_MPF_num
 |  | 
| 
 CRE_MPL_num
 |  | 
| 
 CRE_CYC_num
 |  | 
| 
 DEF_INH_num
 |  | 
| 
 DEF_SVC_num
 |  | 
| 
 ATT_INI_num
 |  | 
| 
 VATT_IDL_num
 |  | 
| 
 maxint
 |  | 
| 
 TA_ACT_num
 |  | 
| 
 TA_STA_num
 |  | 
 
 .kernel_dataのメモリ容量は,情報(
タスク情報,
セマフォ情報など)の定義数,および定義内容に依存しています。
 
 以下に,.kernel_dataのメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 KERNEL_DATA =
 
     68
     + 32 * CRE_TSK_num
     + 8 * CRE_SEM_num
     + 8 * CRE_FLG_num
     + 8 * CRE_DTQ_num
     + 12 * CRE_MBX_num
     + 8 * CRE_MTX_num
     + 8 * CRE_MPF_num
     + 8 * CRE_MPL_num
     + 8 * CRE_CYC_num
     + align4(maxtpri)
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 CRE_TSK_num
 |  | 
| 
 CRE_SEM_num
 |  | 
| 
 CRE_FLG_num
 |  | 
| 
 CRE_DTQ_num
 |  | 
| 
 CRE_MBX_num
 |  | 
| 
 CRE_MTX_num
 |  | 
| 
 CRE_MPF_num
 |  | 
| 
 CRE_MPL_num
 |  | 
| 
 CRE_CYC_num
 |  | 
| 
 maxtpri
 |  | 
 
 .kernel_data_initのメモリ容量は,4バイトとなります。
 
 B.1.5	 .kernel_const_trace.const
 
 .kernel_const_trace.constのメモリ容量は,トレース・モードの種類に依存しています。
 
 なお,トレース・モードの種類は,プロパティ パネル→[タスク・アナライザ]タブ→[トレース]カテゴリ→[トレース・モードの選択]で選択したものとなります。
 
 また,下表における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
|  |  | 
|  |  | 
| 
 ハードウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,トレース・チャートを取得
 |  | 
| 
 ソフトウエア・トレース・モードで,長時間統計を取得
 |  | 
 
 B.1.6	 .kernel_data_trace.bss
 
 .kernel_data_trace.bssのメモリ容量は,トレース・モードの種類に依存しています。
 
 なお,トレース・モードの種類は,プロパティ パネル→[タスク・アナライザ]タブ→[トレース]カテゴリ→[トレース・モードの選択]で選択したものとなります。
 
 .kernel_data_trace.bssのメモリ容量は,0バイトとなります。
 
 2 )	 ハードウエア・トレース・モードで,トレース・チャートを取得
 
 .kernel_data_trace.bssのメモリ容量は,4バイトとなります。
 
 3 )	 ソフトウエア・トレース・モードで,トレース・チャートを取得
 
 .kernel_data_trace.bssのメモリ容量は,プロパティ パネル→[タスク・アナライザ]タブ→[トレース]カテゴリ→[バッファ・サイズ]の定義内容に依存しています。
 
 以下に,.kernel_data_Trace.bssのメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 KERNEL_DATA_TRACE.BSS =
 
     24
     + align4(TRC_BUF_size)
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 TRC_BUF_size
 | 
 プロパティ パネル→[タスク・アナライザ]タブ→[トレース]カテゴリ→[バッファ・サイズ]で定義した値
 | 
 
 4 )	 ソフトウエア・トレース・モードで,長時間統計を取得
 
 .kernel_data_trace.bssのメモリ容量は,
タスク情報の定義数,および
基本情報の定義内容に依存しています。
 
 以下に,.kernel_data_Trace.bssのメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 KERNEL_DATA_TRACE.BSS =
 
     24
     + 8 * CRE_TSK_num
     + align4(10 * (intlvl - maxintpri))
     + 8 * maxint
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 CRE_TSK_num
 |  | 
| 
 intlvl
 |  | 
| 
 maxintpri
 |  | 
| 
 maxint
 |  | 
 
 .kernel_workのメモリ容量は,情報(
基本情報,
タスク情報など)の定義内容に依存しています。
 
 以下に,.kernel_workのメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 KERNEL_WORK =
 
     116
     + SYSSTK
     + TSKSTK_total
     + DTQ_total
     + MPF_total
     + MPL_total
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 SYSSTK
 |  | 
| 
 TSKSTK_total
 |  | 
| 
 DTQ_total
 |  | 
| 
 MPF_total
 |  | 
| 
 MPL_total
 |  | 
 
 システム・スタックのメモリ容量は,
タスク情報の定義内容,およびタスクの処理内容に依存しています。
 
 以下に,RI850V4がシステム・スタック用に必要とするメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“max(
a, 
b, 
c)”は,候補“
a”,“
b”,“
c”の中から最大値を選び出した結果(max(1, 2, 3)の場合は,3)を意味しています
 
 
| 
 SYSSTK =
 
     max(align4(INT) + align4(CYC), align4(INI), align4(IDL))
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 
|  |  | 
| 
 INT
 | 
 割り込みハンドラの処理内容に応じた値(割り込みハンドラの処理がネストする場合は,処理内容に応じた値の総和,割り込みハンドラ情報 が未定義の場合は0)
 | 
| 
 CYC
 | 
 周期ハンドラの処理内容に応じた値(複数の周期ハンドラが存在する場合は,その中の最大値,周期ハンドラ情報 が未定義の場合は0)
 | 
| 
 INI
 | 
 初期化ルーチンの処理内容に応じた値(複数の初期化ルーチンが存在する場合は,その中の最大値,初期化ルーチン情報 が未定義の場合は0)
 | 
| 
 IDL
 |  | 
 
 タスク・スタックのメモリ容量は,
タスク情報の定義内容,およびタスクの処理内容に依存しています。
 
 以下に,
タスク情報で定義された個々のタスクがタスク・スタック用に必要とするメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 以下に,
データ・キュー情報で定義された個々のデータ・キューがデータ・キュー領域用に必要とするメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 以下に,
固定長メモリ・プール情報で定義された個々の固定長メモリ・プールが必要とするメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 
| 
 MPF =
 
     align4(blksz) * blkcnt
 | 
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。
 
 以下に,
可変長メモリ・プール情報で定義された個々の可変長メモリ・プールが必要とするメモリ容量を見積もる際の計算式(単位:バイト)を示します。
 
 なお,下記計算式における“align4(
x)”は,数値“
x”を4バイト・アラインした結果を意味しています。
 
 備考	 上記計算式のキーワードは,以下に示した意味を持ちます。