2.4.8. ビルド 3 のサンプルコード

ビルド 3 のサンプルでは、スキャッタローディングが実装され、再実装された __user_initial_stackheap() が含まれています。詳細については、主なサンプルディレクトリ ...\emb_sw_dev\build3 にあるサンプルビルドのファイルを参照して下さい。

ビルド 3 では、ビルド 2 のサンプルプロジェクトに以下の変更が加えられています。

スキャッタローディング

単純なスキャッタローディング記述ファイルがリンカに渡されます。

ターゲットが変更された __user_initial_stackheap()

1 領域モデルと 2 領域モデルのどちらを実装するかを選択できます。デフォルトのビルドでは、1 領域モデルが使用されます。2 領域モデルの実装は、アセンブルする際に TWO_REGION_MODEL を定義することによって選択できます。

C ライブラリのセミホスティングの無効化

イメージに C ライブラリのセミホスティング関数が存在しないため、シンボル __use_no_semihosting がビルド 3 にインポートされます。

Note

clock() にセミホスティングが使用されないようにするため、Integrator AP 上のリアルタイムクロック(RTC)を読み出すようにターゲットが変更されます。この分解能は 1 秒であるため、Dhrystone では正確な結果が得られません。このメカニズムは、ビルド 4(ビルド 4 のサンプルコード参照)で改善されています。

このビルドを Integrator AP 上で実行するには、ROM/RAM のリマップを実行する必要があります。リマップを実行するには、スイッチ 1 および 4 をオンに設定してブートモニタを起動します。

詳細については、Integrator 上での Dhrystone ビルドの実行を参照して下さい。

Note

ARM7 コアベースのターゲットを使用している場合は、すべてのベクタキャッチとセミホスティングをディセーブルする必要があります。ディセーブルしない場合は、デバッガによって、アドレス 0x00x1C 間で実行された命令は例外として解釈され、ダイアログボックスにこの解釈がレポートされます。ベクタキャッチとセミホスティングをディセーブルする方法の詳細については、デバッガのマニュアルを参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential