カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810609
FAQカテゴリ(大) リンカ
最終更新日 2014-01-19

質問内容

TN39271: MSP430 の information memory にコードを置く

回答内容

EWのターゲット : 430
EWのコンポーネント : 一般
キーワード : フラッシュ
更新日 : June 14, 2013


背景
もし、アプリケーションを、MSP430の小さい派生品用に作成している場合、アプリケーションの一部を Information Memory に置くことは有効です。


ソリューション
名前付きセグメントに関数を配置する
方法を用いる簡易な方法か、xcl ファイルを書き換える効果的な方法を用います。

 

名前付きセグメントに関数を配置する方法
@ 演算子または #pragma location ディレクティブを使用して、特定の関数を INFO メモリに配置することができます。

以下のように書きます。
void g(void) @ INFO
{
}

#pragma location=INFO
void h(void)
{
}

.xcl ファイルを書き換える
上記の方法は速くて簡単ですが、これだけではリンカはコードをそこに配置してくれません。XLINKリンカに配置を最適化させる (すなわち、関数を選択し Information Memory に配置する) には、プロジェクト用にコピーした .xcl ファイルを編集する必要があります。

(このサンプルは、プログラムメモリが 1 kB フラッシュ、Information Memory 128 バイトのフラッシュ、128 バイトの RAM のMSP430F1101A用に作成されています。)

、プロジェクトファイル .ewp と同じフォルダにコピーします。
• EW430 を起動し、Projectメニュー > Options > Linker > Config タブを開き Linker command file のブロックにある、□Override Defaultにチェックを入れ、

$TOOLKIT_DIR$\CONFIG\lnk430F1101.xcl
を、

$PROJ_DIR$\lnk430F1101.xcl
に書き換えます。

• lnk430F1101.xcl ファイルを開き、.
-Z(CODE)CODE=FC00-FFDF
を、

-Z(CODE)CODE=1080-10FF,FC00-FFDF
に書き換えます。

これで、XLINK リンカは Information Memory に CODE を配置します。

(注 : もし .xcl ファイルが他の方法で変更されていない場合、 INFO セグメントに配置されたシンボル (データー / 関数) は、CODEセグメントに配置されるシンボルより優先します。理由は、INFOを配置する -Z オプションが .xcl ファイル CODE を配置する -Z オプションより前に書かれているからです。)

 

全ての製品の名前は、それぞれの所有者の商標または登録商標です。

参考資料URL