Renesas Synergy™

FAQ 1007952 : CA850に変数のオーバーレイ機能(変数群(セクション)を同じアドレスに配置する機能)は ありますか?

回答

そのような機能はありませんが、デバイスのイメージを利用して、 デバイス上で同じアドレスに配置することは可能です。
CA850は、アドレスとして0x00000000~0xffffffffまで認識できます。

リンク・ディレクティブでは、イメージでは同じになる異なるアドレスに、 それぞれのセグメントを配置します。
また、それぞれに対してgpシンボルを指定しますが、 イメージでは同じになる異なるアドレスに設定します。


例) V853の場合

・リンク・ディレクティブの記述例(抜粋)
------------------------------------------------------------
DATA	: !LOAD ?RW V0x3ffc000 {
	.data		= $PROGBITS	?AW	.data;
	.sdata		= $PROGBITS	?AWG	.sdata;
	.sbss		= $NOBITS	?AWG	.sbss;
	.bss		= $NOBITS	?AW	.bss;
};
DATA1	: !LOAD ?RW V0x13ffc000 {
	data1.data		= $PROGBITS	?AW	data1.data;
	data1.sdata		= $PROGBITS	?AWG	data1.sdata;
	data1.sbss		= $NOBITS	?AWG	data1.sbss;
	data1.bss		= $NOBITS	?AW	data1.bss;
};
__gp_DATA @ %GP_SYMBOL &__tp_TEXT{DATA} V0x4004000;
__gp_DATA1 @ %GP_SYMBOL &__tp_TEXT{DATA1} V0x14004000;
------------------------------------------------------------

gpシンボルは、イメージでは同じアドレスになるため、スタート・アップ・モジュールでは、 どちらかのシンボルをgpレジスタに設定します。

 ・スタート・アップ・モジュールの記述例(抜粋)

------------------------------------------------------------
mov	#__gp_DATA, gp		-- set gp register offset
add	tp, gp			-- set gp register
------------------------------------------------------------

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください