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

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

FAQ詳細情報

ID 10810871
FAQカテゴリ(大) コンパイラ
最終更新日 2015-12-23

質問内容

TN52791: ROM コンテンツのサイズを変数にセーブする

回答内容

ターゲット:  ARM 
コンポーネント  リンカ 
公開  2014/10/01 14:31 

 

概要
私のブートローダーは、アプリケーションを起動する前に、起動するアプリケーションのCRCを計算します。私のブートローダは起動アドレスは知っていますが、CRCを計算するために必要な、アプリケーションのサイズは知りません。

私は、テクニカルノート62709 (IELFTOOL Checksum - Placing the checksum)より、代替ソリューションである checksum-start と checksum-end マーカーを使用しています。.

できたら、フラッシュのROM コンテンツのサイズを、"ROM_length_used" という名前のセクションに格納したいです。

define block ROM_CONTENT with fixed order

{
 readonly section checksum,
 readonly section ROM_length_used,
 readonly section checksum_start_mark,
 readonly,
 readonly section checksum_end_mark
};

place in ROM_region { block ROM_CONTENT };

 

Cを使用したソリューション

#pragma section = "ROM_CONTENT"
const size_t ROM_CONTENT_size @ "ROM_length_used" = __section_size("ROM_CONTENT");

 

アセンブラを使用したソリューション

   SECTION ROM_length_used:CODE:NOROOT(2)
   EXTERN ROM_CONTENT$$Length

   DATA
   DC32 ROM_CONTENT$$Length ; Number of RO bytes

   END

 


サンプルプロジェクトは Example project (TN 52791).zip にあります。

 

 

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


参考資料URL