Softune V3 for 16FXでカスタムINITセクションを定義する方法 – KBA219887 - Community Translated (JA)

Version 1

    Community Translated by NoTa_4591161       Version: **

     

    Translation - English: How to Define a Custom INIT Section in Softune V3 for 16FX – KBA219887

     

    質問:

    初期値を持つ変数は、RAMの特定の領域に配置されることが期待されています。Softune16FXのカスタムINITセクションを定義するにはどうすればよいでしょうか?

     

    回答:

    Softune V3 for 16-bit MCUで、初期化された変数を特定のRAM領域に格納するカスタムINITセクションを定義するには、次の手順を実行します。

    1. SoftuneプロジェクトのセットアップでRAM領域とカスタムセクションを定義します。

    Softuneで、Project > Setup Project をクリックし、[ Linker ]タブを選択します。次に、[ Category: Disposition/Connection ]を選択して、RAM領域とセクション名を定義します。

    1. SoftuneRAM領域とセクション名を定義する手順

    Figure 1

    Figure 1 

    ここでは、_INRAM02RAM領域0x70000x7FFFを設定し、初期値の変数を格納します。_INRAM02領域にTESTINITセクションを定義します。セクション名は、図2に示すように、オプションウィンドウに「-sc TESTINIT/Data/BYTE=_INRAM02」を直接追加して定義することもできます。

    2.オプションウィンドウにコマンドを追加してセクション名を定義する

    Figure 2 

    2. start.asmファイルを変更して、起動時にTESTINITセクションで定義された変数を初期化します。図3に示す手順に従ってください

    3. start.asmを変更する手順

    Figure 3 

    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)の結果

    Figure 4 

    Softuneコンパイラのデフォルトセクションについては、F2MC-16ファミリSOFTUNE™Cコンパイラマニュアルをご参照願います。