Renesas Synergy™

FAQ 1009853 : HEWのツールチェーンバージョン変更時のエラー(C/C++)

Q: 質問

M16Cシリーズ, R8Cファミリ用Cコンパイラパッケージ(M3T-NC30WA)V.5.xxを使用して作成したHigh-performance Embedded Workshopのプロジェクトをツールチェーンバージョンを変更し、M3T-NC30WA V.6.xxでビルドすると、以下の様な__sget,__iob, $_sput等のシンボルが未定義とのリンクエラーが出るようになりました。 L2310 (E) Undefined external symbol "_


A: 回答

このエラーの対処方法については、"M3T-NC30WA V.6.xx C/C++コンパイラユーザーズマニュアル" の「K.2.6 標準ライブラリのsprintf、vsprintf,sscanf関数だけを使用する場合」および「2.2.2 アセンブラスタートアップ プログラムのカスタマイズ C (1) 標準入出力関数を使用しないときの設定」に掲載されておりますので、参照して下さい。

なお、「2.2.2 C (1) 標準入出力関数を使用しないときの設定」に記載 のソース例に誤記のある場合があります。
正しいソース例を以下に示します。

.if     __PROGRAM_NO_ALIGN__==1
    .section program,code
.else
    .section program,code,align
.endif
    .glb $__fp, $__pc, ___fs, ___sc
$__fp:
$__pc:
___fs:
___sc:
    rts
    .end

 

適用製品

M16Cシリーズ,R8Cファミリ用C/C++コンパイラパッケージ [M3T-NC30WA]
他にご質問がございましたら、リクエストを送信してください