12.07.2015 Views

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

コーディング 慣 行関 数 が static (または __inline) と して 明 示 的 に 宣 言 されていない 限 り、 コンパ イ ラ は、 他 のモジ ュールか ら 呼 び 出 さ れた 場 合 に 備 え、 関 数 のア ウ ト オブラインバージョンを 保 持 する 必 要 があります。 以 下 のいずれかの 方 法 を 使 用し て 未 使 用 のア ウ ト オブ ラ イ ン 関 数 が 独 自 のセ ク シ ョ ンに 配 置 さ れない 場 合 、リ ンカはこれらの 関 数 をオブジェ ク ト から 削 除 でき ません。• 『コンパイ ラ リ ファレンスガイ ド』 の 「--split_sections」 (ページ2-132)• 『コンパイ ラ リ ファレンスガイ ド』 の「__attribute__((section("name")))」 (ページ 4-57)• 『コンパイ ラ リ ファレンスガイ ド』 の 「#pragma arm section[section_sort_list]」 (ページ 4-63)• リンカのフィードバックモジ ュールの 外 部 か ら 呼 び 出 さ れない 関 数 を static として 宣 言 しなかった 場合 、 コー ド が 悪 影 響 を 受 け る こ と があ り ます。 具 体 的 には 以 下 のデ メ リ ッ トが 挙 げられます。• コードサイズの 拡 大 ( 関 数 のアウ ト オブラ インバージ ョ ンはイ メージ 内に 保 持 される ため)。関 数 が 自 動 的 に イ ン ラ イ ン 展 開 さ れる と 、 関 数 が static として 宣 言 されていなければ、 そのイ ン ラ イ ンバージ ョ ン と ア ウ ト オブ ラ イ ンバージ ョンの 両 方 が 最 終 イ メ ージに 含 まれる 可 能 性 があ り ます。 これは、 コードサイズ 増 大 の 原 因 になる 場 合 があり ます。• 無 駄 に 複 雑 化 し たデバ ッ グ ビ ュー ( 関 数 の イ ン ラ イ ンバージ ョ ン と ア ウト オブ ラ イ ンバージ ョ ンの 両 方 が 表 示 さ れる ため)関 数 のインラインコピーとアウトオブラインコピーの 両 方 をコード 内 に保 持 する と 、 ブレー ク ポ イ ン ト の 設 定 時 ま たはデバ ッ グ ビ ューでのシングルステ ッ プ 実 行 時 に 混 乱 を 招 きかねません。 デバ ッ ガは、 ユーザが イン ラ イ ンバージ ョ ン と ア ウ ト オブ ラ イ ンバージ ョ ンのいずれかを ス テ ップ 実 行 する 際 に 何 が 起 こっているかを 確 認 できるように、 インターリーブされたソースビューでインラインバージョンとアウ トオブラインバージ ョ ンの 両 方 を 表 示 する 必 要 があ り ます。このよ うな 問 題 のため、 別 のモジュールから 呼 び 出 されるこ とが 決 してないと 確 信 できる 非 インライン 関 数 については、static と し て 宣 言 する こ と が 重要 です。<strong>ARM</strong> DUI 0205IJ Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. 5-27ID 100419Non-Confidential,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!