Softune V3 for 16FXでカスタムINITセクションを定義する方法 – KBA219887 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by NoTa_4591161
Version: **
Translation - English: How to Define a Custom INIT Section in Softune V3 for 16FX – KBA219887
質問:
初期値を持つ変数は、RAMの特定の領域に配置されることが期待されています。Softuneで16FXのカスタムINITセクションを定義するにはどうすればよいでしょうか?
回答:
Softune V3 for 16-bit MCUで、初期化された変数を特定のRAM領域に格納するカスタムINITセクションを定義するには、次の手順を実行します。
1. SoftuneプロジェクトのセットアップでRAM領域とカスタムセクションを定義します。
Softuneで、Project > Setup Project をクリックし、[ Linker ]タブを選択します。次に、[ Category: Disposition/Connection ]を選択して、RAM領域とセクション名を定義します。
図1. SoftuneでRAM領域とセクション名を定義する手順
ここでは、_INRAM02にRAM領域0x7000〜0x7FFFを設定し、初期値の変数を格納します。_INRAM02領域にTESTINITセクションを定義します。セクション名は、図2に示すように、オプションウィンドウに「-sc TESTINIT/Data/BYTE=_INRAM02」を直接追加して定義することもできます。
図2.オプションウィンドウにコマンドを追加してセクション名を定義する
2. start.asmファイルを変更して、起動時にTESTINITセクションで定義された変数を初期化します。図3に示す手順に従ってください
図3. start.asmを変更する手順
3. #pragmaセグメントを使用して、カスタムセクションで初期化された変数を定義します。
//Eg. Test.c
#pragma segment DCONST=TESTDCONST,attr=CONST
#pragma segment INIT=TESTINIT,attr=DATA
unsigned char test1=0x1;
unsigned char test2=0x2;
4. Softuneプロジェクトをビルドし、マップファイル(.mp1)の変数のアドレスを確認します。変数test1およびtest2は、_INRAM02領域にあります。
図4.マップファイル(.mp1)の結果
Softuneコンパイラのデフォルトセクションについては、F2MC-16ファミリSOFTUNE™Cコンパイラマニュアルをご参照願います。