Renesas Synergy™

FAQ 1008083 : デフォルトで添付されているスタート・アップ・モジュールのソース・コードにある"$__argc"、"$__argv"は何ですか?

	ld.w	$__argc、 r6
	movea	$__argv、 gp、 r7

この部分を削除しても問題ありますか?

 

回答

main関数に対する引数を渡しています。 main関数の引数は、次のようになります。

	int main(int argc, char *argv[]) 

__argc、__argv は、下記の部分でメモリ上に確保されたシンボルです。

#-----------------------------------------------------------------------------
#       for argv
#-----------------------------------------------------------------------------
        .data
        .size   __argc、 4
        .align  4
__argc:
        .word   0
        .size   __argv、 4
__argv:
        .word   #.L16
.L16:
        .byte   0
        .byte   0
        .byte   0
        .byte   0

サンプルでは、このエリアに対してスタート・アップ・モジュールが始まる前に 外部より値が設定されるようなシステムの場合に main関数に引数を渡せるようにしています。

そのようなシステムでなければ、この部分は削除しても問題ありません。
その場合には、main関数の引数を void にしてください。

	int main( void ) 



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