UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 15292

MicroBlaze - LMB と OPB の命令メモリについて

説明

キーワード : linker, GNU, LMB, OPB, instruction, memory, segmented, code, リンカ, 命令, メモリ, セグメント, コード

重要度 : 標準

概要 :
LMB と OPB など、CRT0 とアプリケーション コードを別々のテキスト セクションに配置する ELF ファイルを作成するには、どうしたらよいですか。

ソリューション

次のリンカ スクリプトを使用すると、この問題を解決できます。 このリンカ スクリプトを使用するには、mb-gcc コマンド ラインに次のオプションを追加する必要があります。

--save-temps
-Wl,--script linker_script

/*
* メモリのレイアウトを定義し、開始アドレスおよび各メモリの領域の範囲を指定します。
*/
MEMORY
{
LMB : ORIGIN = 0x00000000, LENGTH = 2K
OPB : ORIGIN = 0x00800000, LENGTH = 4K
}

/*
* プログラムへのデフォルトのエントリ ポイントを指定します。
*/
ENTRY(_start)

/*
* セクションおよび各セクションがマップされる場所を定義します。
*/

SECTIONS
{

/*
* すべての入力オブジェクト ファイルから成る .text セクションが LMB メモリの出力ファイル
* セクション .text に配置されるように指定します。 mb-gdb では、実行ファイルに
* .text セクションが必要です。
*/
.text : {
*(EXCLUDE_FILE(system.o).text)
} >LMB

/* スタックおよびヒープの空間を定義します。*/
/* 変数 _heap はこの領域の最初に設定し、*/
/* _stack はこの領域の最後に設定する必要があります。*/
. = ALIGN(4);
_heap = .;

.bss : {
_STACK_SIZE = 0x400;
. += _STACK_SIZE;
. = ALIGN(4);
} >OPB
_stack = .;

/* */
/* OPB メモリの開始 */
/* */

/* 次の行は実行セクションを OPB メモリに追加します。*/
.opb_text : {
system.o(.text)
} >OPB
. = ALIGN(4);

.rodata : {
*(.rodata)
} >OPB
/* 8 ビットで配置すると _SDA2_BASE_ がワードの境界に配置されます。*/
. = ALIGN(8);
_ssrw = .;

.sdata2 : {
*(.sdata2)
} >OPB
. = ALIGN(8);
_essrw = .;
_ssrw_size = _essrw - _ssrw;
_SDA2_BASE_ = _ssrw + (_ssrw_size / 2 );
. = ALIGN(4);

.data : {
*(.data)
} >OPB
/* 8 ビットで配置すると _SDA_BASE_ がワードの境界に配置されます。*/
/* .sdata と .sbss は隣接させる必要があります。*/
. = ALIGN(8);
_ssro = .;

.sdata : {
*(.sdata)
} >OPB
. = ALIGN(4);

.sbss : {
*(.sbss)
} >OPB
. = ALIGN(8);
_essro = .;
_ssro_size = _essro - _ssro;
_SDA_BASE_ = _ssro + (_ssro_size / 2 );
. = ALIGN(4);

.opb_bss : {
*(.bss) *(COMMON)
} > OPB
. = ALIGN(4);
_end = .;
}
AR# 15292
日付 04/28/2006
ステータス アーカイブ
種類 一般
このページをブックマークに追加