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

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

FAQ詳細情報

ID 10810707
FAQカテゴリ(大) コンパイラ
最終更新日 2014-03-20

質問内容

バイナリファイルを取り込んでいますが、バイナルファイルのサイズはコードから取得できますか?

回答内容

FAQ作成対象製品:EWARM  バージョン:6.70

バイナリファイル直接のサイズの取得はできないのですが、
バイナリファイルを配置されたセクションのサイズは

#pragma sectionを指定することで
__section_size関数から取得可能です。

セクションにバイナリファイルのみ配置している場合、セクションサイズはバイナリファイルのサイズと同一となります。
下記、弊社開発ガイドマニュアルの記述となります。

 

#pragma section = "MYSECTION"
#pragma section = "MYSECTION_init"
void DoInit()
{
  char * from = __section_begin("MYSECTION_init");
  char * to   = __section_begin("MYSECTION");
  memcpy(to, from, __section_size("MYSECTION")); }
}

 

参考資料URL