RENESAS TOOL NEWS 2006年12月01日 : 061201/tn3
M16Cシリーズ用Cコンパイラパッケージ
ご使用上のお願い |
M16Cシリーズ*用Cコンパイラパッケージ(M3T-NC30WA)の使用上の注意事項を連絡します。
*M16C/60, /30, /20, /10, /TinyおよびR8C/Tinyシリーズの総称です。
- アセンブラスタートアップファイルを使用する際の注意
- C言語スタートアップファイルを使用する際の注意
- アセンブラスタートアップファイルを使用する際の注意
| 1.1 |
|
該当製品 M16Cシリーズ用Cコンパイラパッケージ V.5.42 Release 00
|
| 1.2 |
|
内容 ユーザスタックポインタが正常に設定されません。
|
| 1.3 |
|
発生条件 ワークスペース作成時、ユーザスタックを使用するように設定(デフォルト状態)している場合に発生します。 この場合、生成ファイル nc_define.inc内の__STACKSIZE__の値は0以外となっています。
|
| 1.4 |
|
回避策 改修したスタートアップファイルncrt0.a30を提供します。
ZIPファイル (3KB) をダウンロードしてください。
ZIPファイルを解凍して入手したst_upフォルダを以下のディレクトリに あるst_upフォルダに上書きコピーしてください。 これにより以降、新規ワークスペース作成時に生成されるncrt0.a30では問題は解消いたします。
Hew¥System¥Pg¥Renesas¥M16C¥V5_42_0¥Generate
(High-performance Embedded Workshopがインストールされているディレク トリです。
デフォルトでは、 C:¥ProgramFiles¥Renesas¥Hew¥System¥Pg¥Renesas¥M16C¥V5_42_0¥Generateにインストールされます。)
既に作成済のワークスペースについては、ncrt0.a30ファイルを以下のとおり変更してください。
R8C/Tiny用ncrt0.a30ファイルの場合:35行目と36行目を入れ替える。
M16C family用ncrt0.a30ファイルの場合:41行目と42行目を入れ替える。
【変更前】
.if __STACKSIZE__ != 0
ldc #stack_top,sp ;set stack pointer
ldc #0080h,flg
.else
ldc #0000h,flg
.endif
|
【変更後】
.if __STACKSIZE__ != 0
ldc #0080h,flg
ldc #stack_top,sp ;set stack pointer
.else
ldc #0000h,flg
.endif
|
|
| 1.5 |
|
恒久対策 次期バージョンで改修する予定です。 |
- C言語スタートアップファイルを使用する際の注意
| 2.1 |
|
該当製品 M16Cシリーズ用Cコンパイラパッケージ V.5.40 Release 00およびV.5.42 Release 00
|
| 2.2 |
|
内容 初期値をもつ外部変数の配置されるセクションが、正常に初期化されない場合があります。
|
| 2.3 |
|
発生条件 以下の条件をすべて満たす場合に発生します。
| (1) |
|
initsct.cファイルが先頭でリンクされていない。 |
| (2) |
|
initsct.cの直前でリンクされているファイルのセクション末尾が奇数アドレスである。 |
|
| 2.4 |
|
回避策 initsct.cファイルを以下の方法で最初にリンクしてください。
| (1) |
|
ビルドメニューの「リンク順の指定」コマンドを選択して「リンク順のカスタマイズ」ウィンドウを開く。 |
| (2) |
|
「リンク順序のカスタマイズの使用」チェックボックスをチェックする。 |
| (3) |
|
表示されたリストのinitsct.r30をクリックして「上端へ」ボタンを押し、initsct.r30を一番上にもっていく。 |
| (4) |
|
OKボタンを押してウィンドウを閉じる。 |
|
| 2.5 |
|
恒久対策
次期バージョンで改修する予定です。 |